diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/daos/KeyRepository.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/daos/KeyRepository.java index 57cefe4f1..59d457b5c 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/daos/KeyRepository.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/daos/KeyRepository.java @@ -164,6 +164,11 @@ public class KeyRepository extends AbstractDao { return mapAllRows(query, SubKey.UNIFIED_KEY_INFO_MAPPER); } + public List getAllUnifiedKeyInfoWithAuthKeySecret() { + SqlDelightQuery query = SubKey.FACTORY.selectAllUnifiedKeyInfoWithAuthKeySecret(); + return mapAllRows(query, SubKey.UNIFIED_KEY_INFO_MAPPER); + } + public List getUserIds(long... masterKeyIds) { SqlDelightQuery query = UserPacket.FACTORY.selectUserIdsByMasterKeyId(masterKeyIds); return mapAllRows(query, UserPacket.USER_ID_MAPPER); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/RemoteSelectAuthenticationKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/RemoteSelectAuthenticationKeyActivity.java index 931ddb44a..e320d5e1c 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/RemoteSelectAuthenticationKeyActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/RemoteSelectAuthenticationKeyActivity.java @@ -104,7 +104,7 @@ public class RemoteSelectAuthenticationKeyActivity extends FragmentActivity { if (keyInfoLiveData == null) { keyInfoLiveData = new GenericLiveData<>(context, () -> { KeyRepository keyRepository = KeyRepository.create(context); - return keyRepository.getAllUnifiedKeyInfoWithSecret(); + return keyRepository.getAllUnifiedKeyInfoWithAuthKeySecret(); }); } return keyInfoLiveData; diff --git a/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/Keys.sq b/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/Keys.sq index 73209f029..db208a4bf 100644 --- a/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/Keys.sq +++ b/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/Keys.sq @@ -92,6 +92,11 @@ SELECT * FROM unifiedKeyView WHERE has_any_secret_int = 1 ORDER BY creation DESC; +selectAllUnifiedKeyInfoWithAuthKeySecret: +SELECT * FROM unifiedKeyView + WHERE has_any_secret_int = 1 AND has_auth_key_int IS NOT NULL + ORDER BY creation DESC; + selectMasterKeyIdBySubkey: SELECT master_key_id FROM keys