diff options
| author | Dominik Schürmann <dominik@dominikschuermann.de> | 2015-03-15 02:40:31 +0100 | 
|---|---|---|
| committer | Dominik Schürmann <dominik@dominikschuermann.de> | 2015-03-15 02:40:31 +0100 | 
| commit | c2593f29fffe858074f23512e5f4d6859c816bf0 (patch) | |
| tree | 97ea7e3dcfe2bc94b9e39cdea06be5021592688c /OpenKeychain/src/main/java | |
| parent | 6c9b2ce0c039c536003f01f04c9a7f14671e9ce3 (diff) | |
| download | open-keychain-c2593f29fffe858074f23512e5f4d6859c816bf0.tar.gz open-keychain-c2593f29fffe858074f23512e5f4d6859c816bf0.tar.bz2 open-keychain-c2593f29fffe858074f23512e5f4d6859c816bf0.zip | |
Query for duplicate user ids
Diffstat (limited to 'OpenKeychain/src/main/java')
3 files changed, 14 insertions, 2 deletions
| diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainContract.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainContract.java index 5856589c4..6af5f4217 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainContract.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainContract.java @@ -123,6 +123,7 @@ public class KeychainContract {          public static final String HAS_SIGN = "has_sign";          public static final String HAS_CERTIFY = "has_certify";          public static final String HAS_AUTHENTICATE = "has_authenticate"; +        public static final String HAS_DUPLICATE_USER_ID = "has_duplicate_user_id";          public static final String PUBKEY_DATA = "pubkey_data";          public static final String PRIVKEY_DATA = "privkey_data"; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java index 4ccfc3cd9..1351e0cbc 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java @@ -273,7 +273,15 @@ public class KeychainProvider extends ContentProvider {                  projectionMap.put(KeyRings.EXPIRY, Tables.KEYS + "." + Keys.EXPIRY);                  projectionMap.put(KeyRings.ALGORITHM, Tables.KEYS + "." + Keys.ALGORITHM);                  projectionMap.put(KeyRings.FINGERPRINT, Tables.KEYS + "." + Keys.FINGERPRINT); -                projectionMap.put(KeyRings.USER_ID, UserPackets.USER_ID); +                projectionMap.put(KeyRings.USER_ID, Tables.USER_PACKETS + "." + UserPackets.USER_ID); +                projectionMap.put(KeyRings.HAS_DUPLICATE_USER_ID, +                        "(SELECT COUNT (*) FROM " + Tables.USER_PACKETS + " AS dups" +                                + " WHERE dups." + UserPackets.MASTER_KEY_ID +                                    + " != " + Tables.KEYS + "." + Keys.MASTER_KEY_ID +                                + " AND dups." + UserPackets.RANK + " = 0" +                                + " AND dups." + UserPackets.USER_ID +                                    + " = "+ Tables.USER_PACKETS + "." + UserPackets.USER_ID +                                + ") AS " + KeyRings.HAS_DUPLICATE_USER_ID);                  projectionMap.put(KeyRings.VERIFIED, KeyRings.VERIFIED);                  projectionMap.put(KeyRings.PUBKEY_DATA,                          Tables.KEY_RINGS_PUBLIC + "." + KeyRingData.KEY_RING_DATA diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java index b7f9bc99f..8c34efba2 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java @@ -270,7 +270,8 @@ public class KeyListFragment extends LoaderFragment              KeyRings.IS_REVOKED,              KeyRings.IS_EXPIRED,              KeyRings.VERIFIED, -            KeyRings.HAS_ANY_SECRET +            KeyRings.HAS_ANY_SECRET, +            KeyRings.HAS_DUPLICATE_USER_ID,      };      static final int INDEX_MASTER_KEY_ID = 1; @@ -279,6 +280,7 @@ public class KeyListFragment extends LoaderFragment      static final int INDEX_IS_EXPIRED = 4;      static final int INDEX_VERIFIED = 5;      static final int INDEX_HAS_ANY_SECRET = 6; +    static final int INDEX_HAS_DUPLICATE_USER_ID = 7;      static final String ORDER =              KeyRings.HAS_ANY_SECRET + " DESC, UPPER(" + KeyRings.USER_ID + ") ASC"; @@ -707,6 +709,7 @@ public class KeyListFragment extends LoaderFragment                  boolean isRevoked = cursor.getInt(INDEX_IS_REVOKED) > 0;                  boolean isExpired = cursor.getInt(INDEX_IS_EXPIRED) != 0;                  boolean isVerified = cursor.getInt(INDEX_VERIFIED) > 0; +                boolean hasDuplicate = cursor.getInt(INDEX_HAS_DUPLICATE_USER_ID) == 1;                  h.mMasterKeyId = masterKeyId; | 
