diff options
author | Dominik Schürmann <dominik@dominikschuermann.de> | 2015-03-06 11:16:06 +0100 |
---|---|---|
committer | Dominik Schürmann <dominik@dominikschuermann.de> | 2015-03-06 11:16:06 +0100 |
commit | def44921073f1d33eebf3030b70a4b329dc10e8e (patch) | |
tree | 84e545d08682c8d72f588103e763dd150ae9307e | |
parent | a03f6d35d6a39e18c81a794e746863792c14a447 (diff) | |
parent | 443feef27a30ee141750fae025c8b0f475034c7b (diff) | |
download | open-keychain-def44921073f1d33eebf3030b70a4b329dc10e8e.tar.gz open-keychain-def44921073f1d33eebf3030b70a4b329dc10e8e.tar.bz2 open-keychain-def44921073f1d33eebf3030b70a4b329dc10e8e.zip |
Merge branch 'development' of github.com:open-keychain/open-keychain into development
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java | 112 |
1 files changed, 74 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 1b4fc503c..c94b29bac 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java @@ -89,6 +89,8 @@ public class ViewKeyActivity extends BaseActivity implements LoaderManager.LoaderCallbacks<Cursor> { static final int REQUEST_QR_FINGERPRINT = 1; + static final int REQUEST_DELETE= 2; + static final int REQUEST_EXPORT= 3; ExportHelper mExportHelper; ProviderHelper mProviderHelper; @@ -298,48 +300,63 @@ public class ViewKeyActivity extends BaseActivity implements @Override public boolean onOptionsItemSelected(MenuItem item) { - try { - switch (item.getItemId()) { - case android.R.id.home: { - Intent homeIntent = new Intent(this, MainActivity.class); - homeIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); - startActivity(homeIntent); - return true; - } - case R.id.menu_key_view_export_file: { - exportToFile(mDataUri, mExportHelper, mProviderHelper); - return true; - } - case R.id.menu_key_view_delete: { - deleteKey(mDataUri, mExportHelper); - return true; - } - case R.id.menu_key_view_advanced: { - Intent advancedIntent = new Intent(this, ViewKeyAdvActivity.class); - advancedIntent.setData(mDataUri); - startActivity(advancedIntent); - return true; - } - case R.id.menu_key_view_refresh: { - try { - updateFromKeyserver(mDataUri, mProviderHelper); - } catch (ProviderHelper.NotFoundException e) { - Notify.showNotify(this, R.string.error_key_not_found, Notify.Style.ERROR); - } - return true; + switch (item.getItemId()) { + case android.R.id.home: { + Intent homeIntent = new Intent(this, MainActivity.class); + homeIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + startActivity(homeIntent); + return true; + } + case R.id.menu_key_view_export_file: { + Intent mIntent = new Intent(this,PassphraseDialogActivity.class); + long keyId=0; + try { + keyId = new ProviderHelper(this) + .getCachedPublicKeyRing(mDataUri) + .extractOrGetMasterKeyId(); + } catch (PgpKeyNotFoundException e) { + e.printStackTrace(); } - case R.id.menu_key_view_edit: { - editKey(mDataUri); - return true; + mIntent.putExtra(PassphraseDialogActivity.EXTRA_SUBKEY_ID,keyId); + startActivityForResult(mIntent,REQUEST_EXPORT); + return true; + } + case R.id.menu_key_view_delete: { + Intent mIntent = new Intent(this,PassphraseDialogActivity.class); + long keyId=0; + try { + keyId = new ProviderHelper(this) + .getCachedPublicKeyRing(mDataUri) + .extractOrGetMasterKeyId(); + } catch (PgpKeyNotFoundException e) { + e.printStackTrace(); } - case R.id.menu_key_view_certify_fingerprint: { - certifyFingeprint(mDataUri); - return true; + mIntent.putExtra(PassphraseDialogActivity.EXTRA_SUBKEY_ID,keyId); + startActivityForResult(mIntent,REQUEST_DELETE); + return true; + } + case R.id.menu_key_view_advanced: { + Intent advancedIntent = new Intent(this, ViewKeyAdvActivity.class); + advancedIntent.setData(mDataUri); + startActivity(advancedIntent); + return true; + } + case R.id.menu_key_view_refresh: { + try { + updateFromKeyserver(mDataUri, mProviderHelper); + } catch (ProviderHelper.NotFoundException e) { + Notify.showNotify(this, R.string.error_key_not_found, Notify.Style.ERROR); } + return true; + } + case R.id.menu_key_view_edit: { + editKey(mDataUri); + return true; + } + case R.id.menu_key_view_certify_fingerprint: { + certifyFingeprint(mDataUri); + return true; } - } catch (ProviderHelper.NotFoundException e) { - Notify.showNotify(this, R.string.error_key_not_found, Notify.Style.ERROR); - Log.e(Constants.TAG, "Key not found", e); } return super.onOptionsItemSelected(item); } @@ -427,6 +444,12 @@ public class ViewKeyActivity extends BaseActivity implements startActivityForResult(intent, 0); } + @Override + protected void onSaveInstanceState(Bundle outState) { + //Note:-Done due to the same weird crashes as for commitAllowingStateLoss() + //super.onSaveInstanceState(outState); + } + private void showQrCodeDialog() { Intent qrCodeIntent = new Intent(this, QrCodeViewActivity.class); @@ -500,6 +523,19 @@ public class ViewKeyActivity extends BaseActivity implements return; } + if (requestCode == REQUEST_DELETE && resultCode == Activity.RESULT_OK){ + deleteKey(mDataUri, mExportHelper); + } + if (requestCode == REQUEST_EXPORT && resultCode == Activity.RESULT_OK){ + try { + exportToFile(mDataUri, mExportHelper, mProviderHelper); + } catch (ProviderHelper.NotFoundException e) { + Notify.showNotify(this, R.string.error_key_not_found, Notify.Style.ERROR); + Log.e(Constants.TAG, "Key not found", e); + } + } + + if (data != null && data.hasExtra(OperationResult.EXTRA_RESULT)) { OperationResult result = data.getParcelableExtra(OperationResult.EXTRA_RESULT); result.createNotify(this).show(); |