From d0a9cea74e6375b0a38de43c0acaf3fe7d80a3de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Wed, 4 Jul 2018 13:42:43 +0200 Subject: [PATCH] disabled keys for RemoteDeduplicatePresenter --- .../ui/dialog/RemoteDeduplicatePresenter.java | 15 ++++++++++++++- .../keychain/ui/adapter/KeyChoiceAdapter.java | 4 ++++ 2 files changed, 18 insertions(+), 1 deletion(-) 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); }