aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/MultiUserIdsAdapter.java
diff options
context:
space:
mode:
authorVincent Breitmoser <valodim@mugenguild.com>2014-10-04 23:30:42 +0200
committerVincent Breitmoser <valodim@mugenguild.com>2014-10-04 23:30:42 +0200
commitf96f289891cb1e4e700ff010f15a592d7c5a0959 (patch)
tree5193677597200d304a2a3dbbb1f08089bb51d49c /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/MultiUserIdsAdapter.java
parent0a264bad28618139af0da128039a67ce85c66e53 (diff)
downloadopen-keychain-f96f289891cb1e4e700ff010f15a592d7c5a0959.tar.gz
open-keychain-f96f289891cb1e4e700ff010f15a592d7c5a0959.tar.bz2
open-keychain-f96f289891cb1e4e700ff010f15a592d7c5a0959.zip
merge key ids in getSelectedCertifyActions
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/MultiUserIdsAdapter.java')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/MultiUserIdsAdapter.java28
1 files changed, 25 insertions, 3 deletions
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 2e1752dce..69e94bdbb 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
@@ -20,6 +20,7 @@ package org.sufficientlysecure.keychain.ui.adapter;
import android.content.Context;
import android.database.Cursor;
import android.os.Parcel;
+import android.support.v4.util.LongSparseArray;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
@@ -33,6 +34,7 @@ import android.widget.TextView;
import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.pgp.KeyRing;
+import org.sufficientlysecure.keychain.service.CertifyActionsParcel.CertifyAction;
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
import org.sufficientlysecure.keychain.util.Log;
@@ -147,14 +149,34 @@ public class MultiUserIdsAdapter extends CursorAdapter {
}
- public ArrayList<String> getSelectedUserIds() {
- ArrayList<String> result = new ArrayList<String>();
+ public ArrayList<CertifyAction> getSelectedCertifyActions() {
+ LongSparseArray<CertifyAction> actions = new LongSparseArray<CertifyAction>();
for (int i = 0; i < mCheckStates.size(); i++) {
if (mCheckStates.get(i)) {
mCursor.moveToPosition(i);
- result.add(mCursor.getString(0));
+
+ long keyId = mCursor.getLong(0);
+ byte[] data = mCursor.getBlob(1);
+
+ Parcel p = Parcel.obtain();
+ p.unmarshall(data, 0, data.length);
+ p.setDataPosition(0);
+ ArrayList<String> uids = p.createStringArrayList();
+ p.recycle();
+
+ CertifyAction action = actions.get(keyId);
+ if (actions.get(keyId) == null) {
+ actions.put(keyId, new CertifyAction(keyId, uids));
+ } else {
+ action.mUserIds.addAll(uids);
+ }
}
}
+
+ ArrayList<CertifyAction> result = new ArrayList<CertifyAction>(actions.size());
+ for (int i = 0; i < actions.size(); i++) {
+ result.add(actions.valueAt(i));
+ }
return result;
}