aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src
diff options
context:
space:
mode:
authorVincent Breitmoser <valodim@mugenguild.com>2015-07-07 19:54:30 +0200
committerVincent Breitmoser <valodim@mugenguild.com>2015-07-07 19:55:27 +0200
commita91fc1c0c9a1c1558e6783a6ea1406aaaaa54ba0 (patch)
tree71caa6c39d091194ff7c7fa47e43f7eb19c9e001 /OpenKeychain/src
parente780d8270f46bbd61a172c67fb803af92ece702c (diff)
downloadopen-keychain-a91fc1c0c9a1c1558e6783a6ea1406aaaaa54ba0.tar.gz
open-keychain-a91fc1c0c9a1c1558e6783a6ea1406aaaaa54ba0.tar.bz2
open-keychain-a91fc1c0c9a1c1558e6783a6ea1406aaaaa54ba0.zip
fix passphrase->deletion ui flow for secret keys, and disregard cache
Diffstat (limited to 'OpenKeychain/src')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java62
1 files changed, 24 insertions, 38 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java
index 0843d3e20..da3aae123 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java
@@ -31,6 +31,7 @@ import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
+import android.os.Handler.Callback;
import android.os.Message;
import android.os.Messenger;
import android.provider.ContactsContract;
@@ -327,31 +328,11 @@ public class ViewKeyActivity extends BaseNfcActivity implements
return true;
}
case R.id.menu_key_view_export_file: {
- try {
- if (PassphraseCacheService.getCachedPassphrase(this, mMasterKeyId, mMasterKeyId) != null) {
- exportToFile(mDataUri, mProviderHelper);
- return true;
- }
-
- startPassphraseActivity(REQUEST_EXPORT);
- } catch (PassphraseCacheService.KeyNotFoundException e) {
- // This happens when the master key is stripped
- exportToFile(mDataUri, mProviderHelper);
- }
+ startPassphraseActivity(REQUEST_EXPORT);
return true;
}
case R.id.menu_key_view_delete: {
- try {
- if (PassphraseCacheService.getCachedPassphrase(this, mMasterKeyId, mMasterKeyId) != null) {
- deleteKey();
- return true;
- }
-
- startPassphraseActivity(REQUEST_DELETE);
- } catch (PassphraseCacheService.KeyNotFoundException e) {
- // This happens when the master key is stripped
- deleteKey();
- }
+ startPassphraseActivity(REQUEST_DELETE);
return true;
}
case R.id.menu_key_view_advanced: {
@@ -476,22 +457,27 @@ public class ViewKeyActivity extends BaseNfcActivity implements
}
private void deleteKey() {
- // Message is received after key is deleted
- Handler returnHandler = new Handler() {
- @Override
- public void handleMessage(Message message) {
- if (message.arg1 == MessageStatus.OKAY.ordinal()) {
- setResult(RESULT_CANCELED);
- finish();
- }
- }
- };
-
- // Create a new Messenger for the communication back
- Messenger messenger = new Messenger(returnHandler);
- DeleteKeyDialogFragment deleteKeyDialog = DeleteKeyDialogFragment.newInstance(messenger,
- new long[]{mMasterKeyId});
- deleteKeyDialog.show(getSupportFragmentManager(), "deleteKeyDialog");
+ new Handler().post(new Runnable() {
+ @Override
+ public void run() {
+ // Message is received after key is deleted
+ Handler returnHandler = new Handler() {
+ @Override
+ public void handleMessage(Message message) {
+ if (message.arg1 == MessageStatus.OKAY.ordinal()) {
+ setResult(RESULT_CANCELED);
+ finish();
+ }
+ }
+ };
+
+ // Create a new Messenger for the communication back
+ Messenger messenger = new Messenger(returnHandler);
+ DeleteKeyDialogFragment deleteKeyDialog = DeleteKeyDialogFragment.newInstance(messenger,
+ new long[]{ mMasterKeyId });
+ deleteKeyDialog.show(getSupportFragmentManager(), "deleteKeyDialog");
+ }
+ });
}
@Override