decryptlist: fix iterators

This commit is contained in:
Vincent Breitmoser
2015-11-15 20:54:29 +01:00
parent c4599798f9
commit b5b197a9c4

View File

@@ -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<Uri> 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<Uri> 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);
}