From 2988ac6e7b9fd997dad7ce9da66645a2d84e74a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Thu, 3 Jul 2014 15:48:46 +0200 Subject: Cache passphrase for edit --- .../keychain/ui/EditKeyFragment.java | 23 ++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java index 9d5a7e4ff..46d3e9718 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java @@ -91,6 +91,8 @@ public class EditKeyFragment extends LoaderFragment implements private SaveKeyringParcel mSaveKeyringParcel; + private String mCurrentPassphrase; + /** * Creates new instance of this fragment */ @@ -125,6 +127,8 @@ public class EditKeyFragment extends LoaderFragment implements public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); + cachePassphraseForEdit(); + // Inflate a "Done"/"Cancel" custom action bar view ActionBarHelper.setTwoButtonView(((ActionBarActivity) getActivity()).getSupportActionBar(), R.string.btn_save, R.drawable.ic_action_save, @@ -132,7 +136,7 @@ public class EditKeyFragment extends LoaderFragment implements @Override public void onClick(View v) { // Save - save(); + save(mCurrentPassphrase); } }, R.string.menu_key_edit_cancel, R.drawable.ic_action_cancel, new OnClickListener() { @@ -296,7 +300,7 @@ public class EditKeyFragment extends LoaderFragment implements Messenger messenger = new Messenger(returnHandler); SetPassphraseDialogFragment setPassphraseDialog = SetPassphraseDialogFragment.newInstance( - messenger, R.string.title_change_passphrase); + messenger, mCurrentPassphrase, R.string.title_change_passphrase); setPassphraseDialog.show(getActivity().getSupportFragmentManager(), "setPassphraseDialog"); } @@ -350,29 +354,28 @@ public class EditKeyFragment extends LoaderFragment implements mSubkeysAddedAdapter.add(new SaveKeyringParcel.SubkeyAdd(Constants.choice.algorithm.rsa, 4096, KeyFlags.SIGN_DATA, null)); } - private void save() { - String passphrase = PassphraseCacheService.getCachedPassphrase(getActivity(), + private void cachePassphraseForEdit() { + mCurrentPassphrase = PassphraseCacheService.getCachedPassphrase(getActivity(), mSaveKeyringParcel.mMasterKeyId); - if (passphrase == null) { + if (mCurrentPassphrase == null) { PassphraseDialogFragment.show(getActivity(), mSaveKeyringParcel.mMasterKeyId, new Handler() { @Override public void handleMessage(Message message) { if (message.what == PassphraseDialogFragment.MESSAGE_OKAY) { - String passphrase = + mCurrentPassphrase = message.getData().getString(PassphraseDialogFragment.MESSAGE_DATA_PASSPHRASE); Log.d(Constants.TAG, "after caching passphrase"); - saveFinal(passphrase); + } else { + EditKeyFragment.this.getActivity().finish(); } } } ); - } else { - saveFinal(passphrase); } } - private void saveFinal(String passphrase) { + private void save(String passphrase) { Log.d(Constants.TAG, "add userids to parcel: " + mUserIdsAddedAdapter.getDataAsStringList()); mSaveKeyringParcel.addUserIds = mUserIdsAddedAdapter.getDataAsStringList(); -- cgit v1.2.3