diff options
Diffstat (limited to 'OpenKeychain/src/main/java')
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java | 59 |
1 files changed, 33 insertions, 26 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java index 8ef74a15f..9239a5466 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java @@ -241,30 +241,7 @@ public class KeyListFragment extends LoaderFragment } case R.id.menu_key_list_multi_export: { ids = mAdapter.getCurrentSelectedMasterKeyIds(); - mIdsForRepeatAskPassphrase = new ArrayList<Long>(); - for(long id: ids) { - try { - if (PassphraseCacheService.getCachedPassphrase( - getActivity(), id, id) == null) { - mIdsForRepeatAskPassphrase.add(Long.valueOf(id)); - } - } catch (PassphraseCacheService.KeyNotFoundException e) { - // This happens when the master key is stripped - // and ignore this key. - continue; - } - } - mIndex = 0; - if (mIdsForRepeatAskPassphrase.size() != 0) { - startPassphraseActivity(); - break; - } - long[] idsForMultiExport = new long[mIdsForRepeatAskPassphrase.size()]; - for(int i=0; i<mIdsForRepeatAskPassphrase.size(); ++i) - idsForMultiExport[i] = mIdsForRepeatAskPassphrase.get(i).longValue(); - mExportHelper.showExportKeysDialog(idsForMultiExport, - Constants.Path.APP_DIR_FILE, - mAdapter.isAnySecretSelected()); + showMultiExportDialog(ids); break; } case R.id.menu_key_list_multi_select_all: { @@ -728,6 +705,34 @@ public class KeyListFragment extends LoaderFragment getActivity().startService(intent); } + private void showMultiExportDialog(long[] masterKeyIds) { + mIdsForRepeatAskPassphrase = new ArrayList<Long>(); + for(long id: masterKeyIds) { + try { + if (PassphraseCacheService.getCachedPassphrase( + getActivity(), id, id) == null) { + mIdsForRepeatAskPassphrase.add(Long.valueOf(id)); + } + } catch (PassphraseCacheService.KeyNotFoundException e) { + // This happens when the master key is stripped + // and ignore this key. + continue; + } + } + mIndex = 0; + if (mIdsForRepeatAskPassphrase.size() != 0) { + startPassphraseActivity(); + break; + } + long[] idsForMultiExport = new long[mIdsForRepeatAskPassphrase.size()]; + for(int i=0; i<mIdsForRepeatAskPassphrase.size(); ++i) { + idsForMultiExport[i] = mIdsForRepeatAskPassphrase.get(i).longValue(); + } + mExportHelper.showExportKeysDialog(idsForMultiExport, + Constants.Path.APP_DIR_FILE, + mAdapter.isAnySecretSelected()); + } + private void startPassphraseActivity() { Intent intent = new Intent(getActivity(), PassphraseDialogActivity.class); long masterKeyId = mIdsForRepeatAskPassphrase.get(mIndex++).longValue(); @@ -738,15 +743,17 @@ public class KeyListFragment extends LoaderFragment @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_REPEAT_PASSPHRASE) { - if(resultCode != Activity.RESULT_OK) + if(resultCode != Activity.RESULT_OK) { return; + } if (mIndex < mIdsForRepeatAskPassphrase.size()) { startPassphraseActivity(); return; } long[] idsForMultiExport = new long[mIdsForRepeatAskPassphrase.size()]; - for(int i=0; i<mIdsForRepeatAskPassphrase.size(); ++i) + for(int i=0; i<mIdsForRepeatAskPassphrase.size(); ++i) { idsForMultiExport[i] = mIdsForRepeatAskPassphrase.get(i).longValue(); + } mExportHelper.showExportKeysDialog(idsForMultiExport, Constants.Path.APP_DIR_FILE, mAdapter.isAnySecretSelected()); |