From c9f9af660345632426662363754af3f656f2f7e6 Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Fri, 29 May 2015 21:07:56 +0200 Subject: preserve state in CertifyKeyFragment --- .../keychain/ui/adapter/MultiUserIdsAdapter.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/MultiUserIdsAdapter.java') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/MultiUserIdsAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/MultiUserIdsAdapter.java index 028f0fc9c..6b16e8445 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/MultiUserIdsAdapter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/MultiUserIdsAdapter.java @@ -40,20 +40,19 @@ public class MultiUserIdsAdapter extends CursorAdapter { private LayoutInflater mInflater; private final ArrayList mCheckStates; - public MultiUserIdsAdapter(Context context, Cursor c, int flags) { + public MultiUserIdsAdapter(Context context, Cursor c, int flags, ArrayList preselectStates) { super(context, c, flags); mInflater = LayoutInflater.from(context); - mCheckStates = new ArrayList<>(); + mCheckStates = preselectStates == null ? new ArrayList() : preselectStates; } @Override public Cursor swapCursor(Cursor newCursor) { - mCheckStates.clear(); if (newCursor != null) { int count = newCursor.getCount(); mCheckStates.ensureCapacity(count); - // initialize to true (use case knowledge: we usually want to sign all uids) - for (int i = 0; i < count; i++) { + // initialize new fields to true (use case knowledge: we usually want to sign all uids) + for (int i = mCheckStates.size(); i < count; i++) { mCheckStates.add(true); } } @@ -151,6 +150,10 @@ public class MultiUserIdsAdapter extends CursorAdapter { } + public ArrayList getCheckStates() { + return mCheckStates; + } + public ArrayList getSelectedCertifyActions() { LongSparseArray actions = new LongSparseArray<>(); for (int i = 0; i < mCheckStates.size(); i++) { -- cgit v1.2.3