From a549938b61a93fc87235acfce23d7684a768776b Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Thu, 9 Jul 2015 02:33:47 +0200 Subject: multi-decrypt: save currentInputUri state --- .../keychain/ui/DecryptListFragment.java | 18 ++++++++++++++---- .../keychain/ui/PassphraseDialogActivity.java | 2 ++ 2 files changed, 16 insertions(+), 4 deletions(-) (limited to 'OpenKeychain') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptListFragment.java index 3d0e51a85..567589821 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptListFragment.java @@ -89,6 +89,7 @@ public class DecryptListFragment public static final String ARG_RESULTS = "results"; private static final int REQUEST_CODE_OUTPUT = 0x00007007; + public static final String ARG_CURRENT_URI = "current_uri"; private ArrayList mInputUris; private HashMap mOutputUris; @@ -158,6 +159,7 @@ public class DecryptListFragment outState.putParcelable(ARG_RESULTS, new ParcelableHashMap<>(results)); outState.putParcelable(ARG_OUTPUT_URIS, new ParcelableHashMap<>(mOutputUris)); outState.putParcelableArrayList(ARG_CANCELLED_URIS, mCancelledInputUris); + outState.putParcelable(ARG_CURRENT_URI, mCurrentInputUri); } @@ -171,18 +173,20 @@ public class DecryptListFragment ArrayList cancelledUris = args.getParcelableArrayList(ARG_CANCELLED_URIS); ParcelableHashMap outputUris = args.getParcelable(ARG_OUTPUT_URIS); ParcelableHashMap results = args.getParcelable(ARG_RESULTS); + Uri currentInputUri = args.getParcelable(ARG_CURRENT_URI); - displayInputUris(inputUris, cancelledUris, + displayInputUris(inputUris, currentInputUri, cancelledUris, outputUris != null ? outputUris.getMap() : null, results != null ? results.getMap() : null ); } - private void displayInputUris(ArrayList inputUris, ArrayList cancelledUris, - HashMap outputUris, + private void displayInputUris(ArrayList inputUris, Uri currentInputUri, + ArrayList cancelledUris, HashMap outputUris, HashMap results) { mInputUris = inputUris; + mCurrentInputUri = currentInputUri; mOutputUris = outputUris != null ? outputUris : new HashMap(inputUris.size()); mCancelledInputUris = cancelledUris != null ? cancelledUris : new ArrayList(); @@ -191,6 +195,10 @@ public class DecryptListFragment for (final Uri uri : inputUris) { mAdapter.add(uri); + if (uri.equals(mCurrentInputUri)) { + continue; + } + if (mCancelledInputUris.contains(uri)) { mAdapter.setCancelled(uri, new OnClickListener() { @Override @@ -209,7 +217,9 @@ public class DecryptListFragment } } - cryptoOperation(); + if (mCurrentInputUri == null) { + cryptoOperation(); + } } private void askForOutputFilename(Uri inputUri, String originalFilename, String mimeType) { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PassphraseDialogActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PassphraseDialogActivity.java index 1ca1ec046..57bb0a25a 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PassphraseDialogActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PassphraseDialogActivity.java @@ -26,6 +26,7 @@ import android.content.DialogInterface; import android.content.Intent; import android.os.AsyncTask; import android.os.Bundle; +import android.support.annotation.NonNull; import android.support.v4.app.DialogFragment; import android.support.v4.app.FragmentActivity; import android.text.InputType; @@ -175,6 +176,7 @@ public class PassphraseDialogActivity extends FragmentActivity { private Intent mServiceIntent; + @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { final Activity activity = getActivity(); -- cgit v1.2.3