From 45f85bcfdfa65d3c25cbcd66935fe2c17c56c09d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Mon, 6 Jul 2015 14:12:33 +0200 Subject: Poll if yubikey has been taken away --- .../keychain/ui/NfcOperationActivity.java | 18 +++++++++++------- .../keychain/ui/base/BaseNfcActivity.java | 5 +++-- 2 files changed, 14 insertions(+), 9 deletions(-) (limited to 'OpenKeychain') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/NfcOperationActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/NfcOperationActivity.java index 1e900242a..cacfd2e52 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/NfcOperationActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/NfcOperationActivity.java @@ -24,7 +24,6 @@ import org.sufficientlysecure.keychain.service.PassphraseCacheService; import org.sufficientlysecure.keychain.service.input.CryptoInputParcel; import org.sufficientlysecure.keychain.service.input.RequiredInputParcel; import org.sufficientlysecure.keychain.ui.base.BaseNfcActivity; -import org.sufficientlysecure.keychain.ui.util.Notify; import org.sufficientlysecure.keychain.util.Log; import org.sufficientlysecure.keychain.util.Passphrase; import org.sufficientlysecure.keychain.util.Preferences; @@ -217,13 +216,18 @@ public class NfcOperationActivity extends BaseNfcActivity { new AsyncTask() { @Override protected Void doInBackground(Void... params) { - // wait some 1000ms here, give the user time to appreciate the displayed finish - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - // never mind + // check all 200ms if YubiKey has been taken away + while (true) { + if (isNfcConnected()) { + try { + Thread.sleep(200); + } catch (InterruptedException e) { + // never mind + } + } else { + return null; + } } - return null; } @Override protected void onPostExecute(Void result) { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseNfcActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseNfcActivity.java index dc5991f7a..02e8271cb 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseNfcActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseNfcActivity.java @@ -399,9 +399,10 @@ public abstract class BaseNfcActivity extends BaseActivity { doNfcInBackground(); - mIsoDep.close(); - mIsoDep = null; + } + public boolean isNfcConnected() { + return mIsoDep.isConnected(); } /** Return the key id from application specific data stored on tag, or null -- cgit v1.2.3