From 7c97829ca979bb00c1094069554fa97eb65d50bc Mon Sep 17 00:00:00 2001 From: segfault-bilibili Date: Sat, 18 Mar 2023 10:45:40 +0800 Subject: [PATCH] enable encrypt for eddsa; fix key usage spinner --- .../ui/dialog/AddSubkeyDialogFragment.java | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddSubkeyDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddSubkeyDialogFragment.java index f4bee9dbc..efbebedfc 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddSubkeyDialogFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddSubkeyDialogFragment.java @@ -197,19 +197,18 @@ public class AddSubkeyDialogFragment extends DialogFragment { mUsageNone.setChecked(true); } - if (keyType == SupportedKeyType.ECC_P521 || keyType == SupportedKeyType.ECC_P256) { - mUsageSignAndEncrypt.setEnabled(false); - if (mWillBeMasterKey) { - mUsageEncrypt.setEnabled(false); - } - } else if (keyType == SupportedKeyType.EDDSA) { - mUsageSignAndEncrypt.setEnabled(false); - mUsageEncrypt.setEnabled(false); - } else { - // need to enable if previously disabled for ECC masterkey - mUsageEncrypt.setEnabled(true); - mUsageSignAndEncrypt.setEnabled(true); + boolean signAndEncryptAvailable = true; + boolean encryptAvailable = true; + switch (keyType) { + case ECC_P256: + case ECC_P521: + case EDDSA: + signAndEncryptAvailable = false; + if (mWillBeMasterKey) encryptAvailable = false; + break; } + mUsageSignAndEncrypt.setEnabled(signAndEncryptAvailable); + mUsageEncrypt.setEnabled(encryptAvailable); } @Override