From b5b197a9c4edde87cc36d61b13058c58520bafb0 Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Sun, 15 Nov 2015 20:54:29 +0100 Subject: decryptlist: fix iterators --- .../keychain/ui/DecryptListFragment.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) 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 000de6e40..8adaa0670 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptListFragment.java @@ -22,6 +22,7 @@ import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; +import java.util.Iterator; import java.util.List; import android.Manifest; @@ -676,11 +677,13 @@ public class DecryptListFragment if (permissionWasGranted) { // permission granted -> retry all cancelled file uris - for (Uri uri : mCancelledInputUris) { + Iterator it = mCancelledInputUris.iterator(); + while (it.hasNext()) { + Uri uri = it.next(); if ( ! "file".equals(uri.getScheme())) { continue; } - mCancelledInputUris.remove(uri); + it.remove(); mPendingInputUris.add(uri); mAdapter.setCancelled(uri, false); } @@ -688,12 +691,17 @@ public class DecryptListFragment } else { // permission denied -> cancel current, and all pending file uris + mCancelledInputUris.add(mCurrentInputUri); + mAdapter.setCancelled(mCurrentInputUri, true); + mCurrentInputUri = null; - for (final Uri uri : mPendingInputUris) { + Iterator it = mPendingInputUris.iterator(); + while (it.hasNext()) { + Uri uri = it.next(); if ( ! "file".equals(uri.getScheme())) { continue; } - mPendingInputUris.remove(uri); + it.remove(); mCancelledInputUris.add(uri); mAdapter.setCancelled(uri, true); } -- cgit v1.2.3