From 794b1dc8e043fdb92df6f2629c419ef680d33250 Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Tue, 3 Jul 2018 22:28:23 +0200 Subject: [PATCH] group non-letters in "#" group, display keys with only an address in-order --- .../keychain/ui/adapter/FlexibleKeyItemFactory.java | 11 ++++++++++- .../org/sufficientlysecure/keychain/Keys.sq | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/FlexibleKeyItemFactory.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/FlexibleKeyItemFactory.java index 3008dd4ac..139b7cb20 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/FlexibleKeyItemFactory.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/FlexibleKeyItemFactory.java @@ -58,6 +58,15 @@ public class FlexibleKeyItemFactory { @NonNull private String getHeaderText(UnifiedKeyInfo unifiedKeyInfo) { String headerText = unifiedKeyInfo.name(); - return headerText == null || headerText.isEmpty() ? "" : headerText.substring(0, 1).toUpperCase(); + if (headerText == null || headerText.isEmpty()) { + headerText = unifiedKeyInfo.email(); + } + if (headerText == null || headerText.isEmpty()) { + return ""; + } + if (!Character.isLetter(headerText.codePointAt(0))) { + return "#"; + } + return headerText.substring(0, 1).toUpperCase(); } } diff --git a/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/Keys.sq b/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/Keys.sq index be5b21b48..afa21ed90 100644 --- a/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/Keys.sq +++ b/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/Keys.sq @@ -42,7 +42,7 @@ CREATE VIEW unifiedKeyView AS selectAllUnifiedKeyInfo: SELECT * FROM unifiedKeyView - ORDER BY has_any_secret_int DESC, name COLLATE NOCASE ASC, creation DESC; + ORDER BY has_any_secret_int DESC, IFNULL(name, email) COLLATE NOCASE ASC, creation DESC; selectUnifiedKeyInfoByMasterKeyId: SELECT * FROM unifiedKeyView