aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java
diff options
context:
space:
mode:
authorDominik Schürmann <dominik@dominikschuermann.de>2014-09-21 17:58:26 +0200
committerDominik Schürmann <dominik@dominikschuermann.de>2014-09-21 17:58:26 +0200
commit9bd3383b49c98ed823f5d7df4a26f148bb3c1329 (patch)
treee50898af0169b437d03433f3c23d200307f1c89d /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java
parent1d38365a61cb3580978238c6768831680673b682 (diff)
downloadopen-keychain-9bd3383b49c98ed823f5d7df4a26f148bb3c1329.tar.gz
open-keychain-9bd3383b49c98ed823f5d7df4a26f148bb3c1329.tar.bz2
open-keychain-9bd3383b49c98ed823f5d7df4a26f148bb3c1329.zip
Merge user ids in import list for better display
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java49
1 files changed, 32 insertions, 17 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java
index 377a3d66e..7b378ae79 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java
@@ -21,7 +21,6 @@ import android.annotation.TargetApi;
import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
-import android.media.Image;
import android.os.Build;
import android.view.LayoutInflater;
import android.view.View;
@@ -35,12 +34,16 @@ import android.widget.TextView;
import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.keyimport.ImportKeysListEntry;
import org.sufficientlysecure.keychain.pgp.KeyRing;
+import org.sufficientlysecure.keychain.ui.util.FormattingUtils;
import org.sufficientlysecure.keychain.ui.util.Highlighter;
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
public class ImportKeysAdapter extends ArrayAdapter<ImportKeysListEntry> {
protected LayoutInflater mInflater;
@@ -112,16 +115,16 @@ public class ImportKeysAdapter extends ArrayAdapter<ImportKeysListEntry> {
ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
- convertView = mInflater.inflate(R.layout.import_keys_list_entry, null);
- holder.mainUserId = (TextView) convertView.findViewById(R.id.mainUserId);
- holder.mainUserIdRest = (TextView) convertView.findViewById(R.id.mainUserIdRest);
- holder.keyId = (TextView) convertView.findViewById(R.id.subkey_item_key_id);
- holder.fingerprint = (TextView) convertView.findViewById(R.id.view_key_fingerprint);
- holder.algorithm = (TextView) convertView.findViewById(R.id.algorithm);
- holder.status = (ImageView) convertView.findViewById(R.id.status);
- holder.userIdsDivider = convertView.findViewById(R.id.user_ids_divider);
- holder.userIdsList = (LinearLayout) convertView.findViewById(R.id.user_ids_list);
- holder.checkBox = (CheckBox) convertView.findViewById(R.id.selected);
+ convertView = mInflater.inflate(R.layout.import_keys_list_item, null);
+ holder.mainUserId = (TextView) convertView.findViewById(R.id.import_item_user_id);
+ holder.mainUserIdRest = (TextView) convertView.findViewById(R.id.import_item_user_id_email);
+ holder.keyId = (TextView) convertView.findViewById(R.id.import_item_key_id);
+ holder.fingerprint = (TextView) convertView.findViewById(R.id.import_item_fingerprint);
+ holder.algorithm = (TextView) convertView.findViewById(R.id.import_item_algorithm);
+ holder.status = (ImageView) convertView.findViewById(R.id.import_item_status);
+ holder.userIdsDivider = convertView.findViewById(R.id.import_item_status_divider);
+ holder.userIdsList = (LinearLayout) convertView.findViewById(R.id.import_item_user_ids_list);
+ holder.checkBox = (CheckBox) convertView.findViewById(R.id.import_item_selected);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
@@ -192,15 +195,27 @@ public class ImportKeysAdapter extends ArrayAdapter<ImportKeysListEntry> {
// destroyLoader view from holder
holder.userIdsList.removeAllViews();
- Iterator<String> it = entry.getUserIds().iterator();
- // skip primary user id
- it.next();
- while (it.hasNext()) {
- String uid = it.next();
+ HashMap<String, HashSet<String>> mergedUserIds = entry.getMergedUserIds();
+ for (Map.Entry<String, HashSet<String>> pair : mergedUserIds.entrySet()) {
+ String cUserId = pair.getKey();
+ HashSet<String> cEmails = pair.getValue();
+
TextView uidView = (TextView) mInflater.inflate(
R.layout.import_keys_list_entry_user_id, null);
- uidView.setText(highlighter.highlight(uid));
+ uidView.setText(highlighter.highlight(cUserId));
+ uidView.setPadding(0, 0, FormattingUtils.dpToPx(getContext(), 8), 0);
+
holder.userIdsList.addView(uidView);
+
+ for (String email : cEmails) {
+ TextView emailView = (TextView) mInflater.inflate(
+ R.layout.import_keys_list_entry_user_id, null);
+ emailView.setPadding(
+ FormattingUtils.dpToPx(getContext(), 16), 0,
+ FormattingUtils.dpToPx(getContext(), 8), 0);
+ emailView.setText(highlighter.highlight(email));
+ holder.userIdsList.addView(emailView);
+ }
}
}