diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/RemoteDeduplicatePresenter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/RemoteDeduplicatePresenter.java index 43ec37551..5b9de599c 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/RemoteDeduplicatePresenter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/RemoteDeduplicatePresenter.java @@ -24,6 +24,7 @@ import android.arch.lifecycle.LifecycleOwner; import android.content.Context; import android.support.v7.widget.RecyclerView.Adapter; +import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.model.SubKey.UnifiedKeyInfo; import org.sufficientlysecure.keychain.remote.AutocryptInteractor; import org.sufficientlysecure.keychain.remote.ui.dialog.RemoteDeduplicateActivity.DeduplicateViewModel; @@ -62,7 +63,19 @@ class RemoteDeduplicatePresenter { private void onLoadKeyInfos(List data) { if (keyChoiceAdapter == null) { - keyChoiceAdapter = KeyChoiceAdapter.createSingleChoiceAdapter(data); + keyChoiceAdapter = KeyChoiceAdapter.createSingleChoiceAdapter(data, (keyInfo -> { + if (keyInfo.is_revoked()) { + return R.string.keychoice_revoked; + } else if (keyInfo.is_expired()) { + return R.string.keychoice_expired; + } else if (!keyInfo.is_secure()) { + return R.string.keychoice_insecure; + } else if (!keyInfo.has_encrypt_key()) { + return R.string.keychoice_cannot_encrypt; + } else { + return null; + } + })); view.setKeyListAdapter(keyChoiceAdapter); } else { keyChoiceAdapter.setUnifiedKeyInfoItems(data); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/KeyChoiceAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/KeyChoiceAdapter.java index 3d1dd655a..b2f49278b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/KeyChoiceAdapter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/KeyChoiceAdapter.java @@ -50,6 +50,10 @@ public class KeyChoiceAdapter extends FlexibleAdapter { return new KeyChoiceAdapter(items, null, Mode.SINGLE, null); } + public static KeyChoiceAdapter createSingleChoiceAdapter(List items, KeyDisabledPredicate keyDisabledPredicate) { + return new KeyChoiceAdapter(items, null, Mode.SINGLE, keyDisabledPredicate); + } + public static KeyChoiceAdapter createMultiChoiceAdapter(List items, KeyDisabledPredicate keyDisabledPredicate) { return new KeyChoiceAdapter(items, null, Mode.MULTI, keyDisabledPredicate); }