diff options
author | Dominik Schürmann <dominik@dominikschuermann.de> | 2015-07-03 04:58:30 +0200 |
---|---|---|
committer | Dominik Schürmann <dominik@dominikschuermann.de> | 2015-07-03 04:58:30 +0200 |
commit | d03595f64e264aed21a53c5d238125ce09a90f02 (patch) | |
tree | 9d04e04fcf636cccc0efd625d0ef7ecb964c92c6 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java | |
parent | d6b4d4b4f223f28bcee39cc72c8243f000a55b2b (diff) | |
download | open-keychain-d03595f64e264aed21a53c5d238125ce09a90f02.tar.gz open-keychain-d03595f64e264aed21a53c5d238125ce09a90f02.tar.bz2 open-keychain-d03595f64e264aed21a53c5d238125ce09a90f02.zip |
New NFC dialog design with indeterminate progress, do NFC stuff in background
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java')
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java | 41 |
1 files changed, 26 insertions, 15 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java index 1db93d2c0..c6f02edb3 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java @@ -63,6 +63,11 @@ public class CreateKeyActivity extends BaseNfcActivity { Fragment mCurrentFragment; + + byte[] mScannedFingerprints; + byte[] mNfcAid; + String mNfcUserId; + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -72,8 +77,6 @@ public class CreateKeyActivity extends BaseNfcActivity { if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(getIntent().getAction())) { try { handleTagDiscoveredIntent(getIntent()); - } catch (CardException e) { - handleNfcError(e); } catch (IOException e) { handleNfcError(e); } @@ -142,40 +145,47 @@ public class CreateKeyActivity extends BaseNfcActivity { } @Override - protected void onNfcPerform() throws IOException { + protected void doNfcInBackground() throws IOException { if (mCurrentFragment instanceof NfcListenerFragment) { - ((NfcListenerFragment) mCurrentFragment).onNfcPerform(); + ((NfcListenerFragment) mCurrentFragment).doNfcInBackground(); return; } - byte[] scannedFingerprints = nfcGetFingerprints(); - byte[] nfcAid = nfcGetAid(); - String userId = nfcGetUserId(); + mScannedFingerprints = nfcGetFingerprints(); + mNfcAid = nfcGetAid(); + mNfcUserId = nfcGetUserId(); + } + + @Override + protected void onNfcPostExecute() throws IOException { + if (mCurrentFragment instanceof NfcListenerFragment) { + ((NfcListenerFragment) mCurrentFragment).onNfcPostExecute(); + return; + } - if (containsKeys(scannedFingerprints)) { + if (containsKeys(mScannedFingerprints)) { try { - long masterKeyId = KeyFormattingUtils.getKeyIdFromFingerprint(scannedFingerprints); + long masterKeyId = KeyFormattingUtils.getKeyIdFromFingerprint(mScannedFingerprints); CachedPublicKeyRing ring = new ProviderHelper(this).getCachedPublicKeyRing(masterKeyId); ring.getMasterKeyId(); Intent intent = new Intent(this, ViewKeyActivity.class); intent.setData(KeyRings.buildGenericKeyRingUri(masterKeyId)); - intent.putExtra(ViewKeyActivity.EXTRA_NFC_AID, nfcAid); - intent.putExtra(ViewKeyActivity.EXTRA_NFC_USER_ID, userId); - intent.putExtra(ViewKeyActivity.EXTRA_NFC_FINGERPRINTS, scannedFingerprints); + intent.putExtra(ViewKeyActivity.EXTRA_NFC_AID, mNfcAid); + intent.putExtra(ViewKeyActivity.EXTRA_NFC_USER_ID, mNfcUserId); + intent.putExtra(ViewKeyActivity.EXTRA_NFC_FINGERPRINTS, mScannedFingerprints); startActivity(intent); finish(); } catch (PgpKeyNotFoundException e) { Fragment frag = CreateYubiKeyImportFragment.newInstance( - scannedFingerprints, nfcAid, userId); + mScannedFingerprints, mNfcAid, mNfcUserId); loadFragment(frag, FragAction.TO_RIGHT); } } else { Fragment frag = CreateYubiKeyBlankFragment.newInstance(); loadFragment(frag, FragAction.TO_RIGHT); } - } private boolean containsKeys(byte[] scannedFingerprints) { @@ -246,7 +256,8 @@ public class CreateKeyActivity extends BaseNfcActivity { } interface NfcListenerFragment { - public void onNfcPerform() throws IOException; + public void doNfcInBackground() throws IOException; + public void onNfcPostExecute() throws IOException; } } |