aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org
diff options
context:
space:
mode:
authorVincent Breitmoser <valodim@mugenguild.com>2015-03-02 17:44:50 +0100
committerVincent Breitmoser <valodim@mugenguild.com>2015-03-02 17:44:50 +0100
commit817afffecc5454e7a185a85c4f9dcdc11fb9cd32 (patch)
tree4f54745c9b2e5037e49c4409809eb83b8dbda59b /OpenKeychain/src/main/java/org
parent1f828528d37ba272a07af67babc85cc7f362f4d9 (diff)
parentdae0873f5eabadc83b4eab3dfbbc2fd0c9336974 (diff)
downloadopen-keychain-817afffecc5454e7a185a85c4f9dcdc11fb9cd32.tar.gz
open-keychain-817afffecc5454e7a185a85c4f9dcdc11fb9cd32.tar.bz2
open-keychain-817afffecc5454e7a185a85c4f9dcdc11fb9cd32.zip
Merge branch 'development' of github.com:open-keychain/open-keychain into development
Diffstat (limited to 'OpenKeychain/src/main/java/org')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java27
1 files changed, 20 insertions, 7 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java
index 60bc846b2..3cf201ed7 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java
@@ -57,10 +57,20 @@ public class ContactHelper {
KeychainContract.KeyRings.MASTER_KEY_ID,
KeychainContract.KeyRings.EXPIRY,
KeychainContract.KeyRings.IS_REVOKED};
+
+ public static final int INDEX_USER_ID = 0;
+ public static final int INDEX_FINGERPRINT = 1;
+ public static final int INDEX_KEY_ID = 2;
+ public static final int INDEX_MASTER_KEY_ID = 3;
+ public static final int INDEX_EXPIRY = 4;
+ public static final int INDEX_IS_REVOKED = 5;
+
public static final String[] USER_IDS_PROJECTION = new String[]{
UserPackets.USER_ID
};
+ public static final int INDEX_USER_IDS_USER_ID = 0;
+
public static final String NON_REVOKED_SELECTION = UserPackets.IS_REVOKED + "=0";
public static final String[] ID_PROJECTION = new String[]{ContactsContract.RawContacts._ID};
@@ -301,23 +311,26 @@ public class ContactHelper {
null, null, null);
if (cursor != null) {
while (cursor.moveToNext()) {
- String[] primaryUserId = KeyRing.splitUserId(cursor.getString(0));
- String fingerprint = KeyFormattingUtils.convertFingerprintToHex(cursor.getBlob(1));
+ String[] primaryUserId = KeyRing.splitUserId(cursor.getString(INDEX_USER_ID));
+ String fingerprint = KeyFormattingUtils.convertFingerprintToHex(cursor.getBlob(INDEX_FINGERPRINT));
contactFingerprints.remove(fingerprint);
- String keyIdShort = KeyFormattingUtils.convertKeyIdToHexShort(cursor.getLong(2));
- long masterKeyId = cursor.getLong(3);
- boolean isExpired = !cursor.isNull(4) && new Date(cursor.getLong(4) * 1000).before(new Date());
- boolean isRevoked = cursor.getInt(5) > 0;
+ String keyIdShort = KeyFormattingUtils.convertKeyIdToHexShort(cursor.getLong(INDEX_KEY_ID));
+ long masterKeyId = cursor.getLong(INDEX_MASTER_KEY_ID);
+ boolean isExpired = !cursor.isNull(INDEX_EXPIRY)
+ && new Date(cursor.getLong(INDEX_EXPIRY) * 1000).before(new Date());
+ boolean isRevoked = cursor.getInt(INDEX_IS_REVOKED) > 0;
int rawContactId = findRawContactId(resolver, fingerprint);
ArrayList<ContentProviderOperation> ops = new ArrayList<>();
+ Log.d(Constants.TAG, "raw contact id: "+rawContactId);
+
// Do not store expired or revoked keys in contact db - and remove them if they already exist
if (isExpired || isRevoked) {
if (rawContactId != -1) {
resolver.delete(ContactsContract.RawContacts.CONTENT_URI, ID_SELECTION,
new String[]{Integer.toString(rawContactId)});
}
- } else {
+ } else if (primaryUserId[0] != null) {
// Create a new rawcontact with corresponding key if it does not exist yet
if (rawContactId == -1) {