mirror of
https://github.com/moparisthebest/open-keychain
synced 2024-11-27 11:12:15 -05:00
load yubikey fragment after mMasterKeyId is available
This commit is contained in:
parent
c1e7fcf024
commit
48f6e20f6c
@ -131,6 +131,8 @@ public class ViewKeyActivity extends BaseNfcActivity implements
|
|||||||
private boolean mIsRevoked = false;
|
private boolean mIsRevoked = false;
|
||||||
private boolean mIsExpired = false;
|
private boolean mIsExpired = false;
|
||||||
|
|
||||||
|
private boolean mShowYubikeyAfterCreation = false;
|
||||||
|
|
||||||
private MenuItem mRefreshItem;
|
private MenuItem mRefreshItem;
|
||||||
private boolean mIsRefreshing;
|
private boolean mIsRefreshing;
|
||||||
private Animation mRotate, mRotateSpin;
|
private Animation mRotate, mRotateSpin;
|
||||||
@ -286,13 +288,9 @@ public class ViewKeyActivity extends BaseNfcActivity implements
|
|||||||
.replace(R.id.view_key_fragment, frag)
|
.replace(R.id.view_key_fragment, frag)
|
||||||
.commit();
|
.commit();
|
||||||
|
|
||||||
if (getIntent().hasExtra(EXTRA_NFC_AID)) {
|
// need to postpone loading of the yubikey fragment until after mMasterKeyId
|
||||||
Intent intent = getIntent();
|
// is available, but we mark here that this should be done
|
||||||
byte[] nfcFingerprints = intent.getByteArrayExtra(EXTRA_NFC_FINGERPRINTS);
|
mShowYubikeyAfterCreation = true;
|
||||||
String nfcUserId = intent.getStringExtra(EXTRA_NFC_USER_ID);
|
|
||||||
byte[] nfcAid = intent.getByteArrayExtra(EXTRA_NFC_AID);
|
|
||||||
showYubiKeyFragment(nfcFingerprints, nfcUserId, nfcAid);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -586,18 +584,26 @@ public class ViewKeyActivity extends BaseNfcActivity implements
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showYubiKeyFragment(byte[] nfcFingerprints, String nfcUserId, byte[] nfcAid) {
|
public void showYubiKeyFragment(
|
||||||
ViewKeyYubiKeyFragment frag = ViewKeyYubiKeyFragment.newInstance(
|
final byte[] nfcFingerprints, final String nfcUserId, final byte[] nfcAid) {
|
||||||
mMasterKeyId, nfcFingerprints, nfcUserId, nfcAid);
|
|
||||||
|
|
||||||
FragmentManager manager = getSupportFragmentManager();
|
new Handler().post(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
ViewKeyYubiKeyFragment frag = ViewKeyYubiKeyFragment.newInstance(
|
||||||
|
mMasterKeyId, nfcFingerprints, nfcUserId, nfcAid);
|
||||||
|
|
||||||
|
FragmentManager manager = getSupportFragmentManager();
|
||||||
|
|
||||||
|
manager.popBackStack("yubikey", FragmentManager.POP_BACK_STACK_INCLUSIVE);
|
||||||
|
manager.beginTransaction()
|
||||||
|
.addToBackStack("yubikey")
|
||||||
|
.replace(R.id.view_key_fragment, frag)
|
||||||
|
// if this is called while the activity wasn't resumed, just forget it happened
|
||||||
|
.commitAllowingStateLoss();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
manager.popBackStack("yubikey", FragmentManager.POP_BACK_STACK_INCLUSIVE);
|
|
||||||
manager.beginTransaction()
|
|
||||||
.addToBackStack("yubikey")
|
|
||||||
.replace(R.id.view_key_fragment, frag)
|
|
||||||
// if this is called while the activity wasn't resumed, just forget it happened
|
|
||||||
.commitAllowingStateLoss();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void encrypt(Uri dataUri, boolean text) {
|
private void encrypt(Uri dataUri, boolean text) {
|
||||||
@ -813,6 +819,16 @@ public class ViewKeyActivity extends BaseNfcActivity implements
|
|||||||
mMasterKeyId = data.getLong(INDEX_MASTER_KEY_ID);
|
mMasterKeyId = data.getLong(INDEX_MASTER_KEY_ID);
|
||||||
mFingerprint = KeyFormattingUtils.convertFingerprintToHex(data.getBlob(INDEX_FINGERPRINT));
|
mFingerprint = KeyFormattingUtils.convertFingerprintToHex(data.getBlob(INDEX_FINGERPRINT));
|
||||||
|
|
||||||
|
// if it wasn't shown yet, display yubikey fragment
|
||||||
|
if (mShowYubikeyAfterCreation && getIntent().hasExtra(EXTRA_NFC_AID)) {
|
||||||
|
mShowYubikeyAfterCreation = false;
|
||||||
|
Intent intent = getIntent();
|
||||||
|
byte[] nfcFingerprints = intent.getByteArrayExtra(EXTRA_NFC_FINGERPRINTS);
|
||||||
|
String nfcUserId = intent.getStringExtra(EXTRA_NFC_USER_ID);
|
||||||
|
byte[] nfcAid = intent.getByteArrayExtra(EXTRA_NFC_AID);
|
||||||
|
showYubiKeyFragment(nfcFingerprints, nfcUserId, nfcAid);
|
||||||
|
}
|
||||||
|
|
||||||
mIsSecret = data.getInt(INDEX_HAS_ANY_SECRET) != 0;
|
mIsSecret = data.getInt(INDEX_HAS_ANY_SECRET) != 0;
|
||||||
mHasEncrypt = data.getInt(INDEX_HAS_ENCRYPT) != 0;
|
mHasEncrypt = data.getInt(INDEX_HAS_ENCRYPT) != 0;
|
||||||
mIsRevoked = data.getInt(INDEX_IS_REVOKED) > 0;
|
mIsRevoked = data.getInt(INDEX_IS_REVOKED) > 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user