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 faa4924aa..3de798938 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 @@ -25,7 +25,6 @@ import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.TextView; import org.openintents.openpgp.util.OpenPgpUtils; import org.sufficientlysecure.keychain.Constants; @@ -55,9 +54,7 @@ import org.sufficientlysecure.keychain.util.ParcelableFileCache; import java.io.IOException; import java.util.ArrayList; -import java.util.HashSet; import java.util.List; -import java.util.Map; public class ImportKeysAdapter extends RecyclerView.Adapter implements ImportKeysResultListener { @@ -151,7 +148,7 @@ public class ImportKeysAdapter extends RecyclerView.Adapter>> sortedIds = entry.getSortedUserIds(); - for (Map.Entry> pair : sortedIds) { - String cUserId = pair.getKey(); - HashSet cEmails = pair.getValue(); - - LayoutInflater inflater = LayoutInflater.from(mActivity); - - TextView uidView = (TextView) inflater.inflate( - R.layout.import_keys_list_entry_user_id, null); - uidView.setText(highlighter.highlight(cUserId)); - uidView.setPadding(0, 0, FormattingUtils.dpToPx(mActivity, 8), 0); - - if (entry.isRevoked() || entry.isExpired()) { - uidView.setTextColor(mActivity.getResources().getColor(R.color.key_flag_gray)); - } else { - uidView.setTextColor(FormattingUtils.getColorFromAttr(mActivity, R.attr.colorText)); - } - b.userIdsList.addView(uidView); - - for (String email : cEmails) { - TextView emailView = (TextView) inflater.inflate( - R.layout.import_keys_list_entry_user_id, null); - emailView.setPadding( - FormattingUtils.dpToPx(mActivity, 16), 0, - FormattingUtils.dpToPx(mActivity, 8), 0); - emailView.setText(highlighter.highlight(email)); - - if (entry.isRevoked() || entry.isExpired()) { - emailView.setTextColor(mActivity.getResources().getColor(R.color.key_flag_gray)); - } else { - emailView.setTextColor(FormattingUtils.getColorFromAttr(mActivity, R.attr.colorText)); - } - b.userIdsList.addView(emailView); - } - } + b.extraUserIds.setEntry(entry); } + b.extraContainer.setVisibility(showed ? View.VISIBLE : View.GONE); } @Override diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/ImportUserIdsView.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/ImportUserIdsView.java new file mode 100644 index 000000000..509a8619f --- /dev/null +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/ImportUserIdsView.java @@ -0,0 +1,68 @@ +package org.sufficientlysecure.keychain.ui.widget; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.LayoutInflater; +import android.widget.LinearLayout; +import android.widget.TextView; + +import org.sufficientlysecure.keychain.R; +import org.sufficientlysecure.keychain.keyimport.ImportKeysListEntry; +import org.sufficientlysecure.keychain.ui.util.FormattingUtils; +import org.sufficientlysecure.keychain.ui.util.Highlighter; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Map; + +public class ImportUserIdsView extends LinearLayout { + + public ImportUserIdsView(Context context, AttributeSet attrs) { + super(context, attrs); + setOrientation(VERTICAL); + } + + public void setEntry(ImportKeysListEntry entry) { + removeAllViews(); + + Context context = getContext(); + Highlighter highlighter = new Highlighter(context, entry.getQuery()); + + // we want conventional gpg UserIDs first, then Keybase ”proofs” + ArrayList>> sortedIds = entry.getSortedUserIds(); + for (Map.Entry> pair : sortedIds) { + String cUserId = pair.getKey(); + HashSet cEmails = pair.getValue(); + + LayoutInflater inflater = LayoutInflater.from(context); + + TextView uidView = (TextView) inflater.inflate( + R.layout.import_keys_list_entry_user_id, null); + uidView.setText(highlighter.highlight(cUserId)); + uidView.setPadding(0, 0, FormattingUtils.dpToPx(context, 8), 0); + + if (entry.isRevoked() || entry.isExpired()) { + uidView.setTextColor(context.getResources().getColor(R.color.key_flag_gray)); + } else { + uidView.setTextColor(FormattingUtils.getColorFromAttr(context, R.attr.colorText)); + } + addView(uidView); + + for (String email : cEmails) { + TextView emailView = (TextView) inflater.inflate( + R.layout.import_keys_list_entry_user_id, null); + emailView.setPadding( + FormattingUtils.dpToPx(context, 16), 0, + FormattingUtils.dpToPx(context, 8), 0); + emailView.setText(highlighter.highlight(email)); + + if (entry.isRevoked() || entry.isExpired()) { + emailView.setTextColor(context.getResources().getColor(R.color.key_flag_gray)); + } else { + emailView.setTextColor(FormattingUtils.getColorFromAttr(context, R.attr.colorText)); + } + addView(emailView); + } + } + } +} diff --git a/OpenKeychain/src/main/res/layout/import_keys_list_item.xml b/OpenKeychain/src/main/res/layout/import_keys_list_item.xml index 09a69bb5b..5a6bb67d9 100644 --- a/OpenKeychain/src/main/res/layout/import_keys_list_item.xml +++ b/OpenKeychain/src/main/res/layout/import_keys_list_item.xml @@ -1,24 +1,58 @@ + + - + - - - - + - - - + - - - - + + + + + + + + + + + + + + + + + - + android:layout_height="wrap_content" /> +