From 03cbc36e234e7bd74bd2cd5ec55e323cecb8a1e3 Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Mon, 12 Mar 2018 22:11:40 +0100 Subject: [PATCH] some fixes for last updated times --- .../keychain/operations/CertifyOperation.java | 6 ++++++ .../provider/KeyWritableRepository.java | 20 +++++++++++++------ .../provider/LastUpdateInteractor.java | 2 +- .../keychain/provider/InteropTest.java | 3 ++- 4 files changed, 23 insertions(+), 8 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/CertifyOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/CertifyOperation.java index e5661934b..e2372fdd8 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/CertifyOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/CertifyOperation.java @@ -41,6 +41,7 @@ import org.sufficientlysecure.keychain.pgp.exception.PgpGeneralException; import org.sufficientlysecure.keychain.provider.CachedPublicKeyRing; import org.sufficientlysecure.keychain.provider.KeyRepository.NotFoundException; import org.sufficientlysecure.keychain.provider.KeyWritableRepository; +import org.sufficientlysecure.keychain.provider.LastUpdateInteractor; import org.sufficientlysecure.keychain.service.CertifyActionsParcel; import org.sufficientlysecure.keychain.service.CertifyActionsParcel.CertifyAction; import org.sufficientlysecure.keychain.service.ContactSyncAdapterService; @@ -61,10 +62,13 @@ import org.sufficientlysecure.keychain.util.Passphrase; * @see CertifyActionsParcel */ public class CertifyOperation extends BaseReadWriteOperation { + private final LastUpdateInteractor lastUpdateInteractor; public CertifyOperation(Context context, KeyWritableRepository databaseInteractor, Progressable progressable, AtomicBoolean cancelled) { super(context, databaseInteractor, progressable, cancelled); + + this.lastUpdateInteractor = LastUpdateInteractor.create(context); } @NonNull @@ -230,6 +234,8 @@ public class CertifyOperation extends BaseReadWriteOperation getTrustedMasterKeys() { @@ -560,9 +563,14 @@ public class KeyWritableRepository extends KeyRepository { return null; } + Boolean seenOnKeyservers = lastUpdateInteractor.getSeenOnKeyservers(masterKeyId); + ContentValues lastUpdatedEntry = new ContentValues(2); lastUpdatedEntry.put(UpdatedKeys.MASTER_KEY_ID, masterKeyId); lastUpdatedEntry.put(UpdatedKeys.LAST_UPDATED, lastUpdateTime); + if (seenOnKeyservers != null){ + lastUpdatedEntry.put(UpdatedKeys.SEEN_ON_KEYSERVERS, seenOnKeyservers); + } return ContentProviderOperation .newInsert(UpdatedKeys.CONTENT_URI) .withValues(lastUpdatedEntry) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/LastUpdateInteractor.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/LastUpdateInteractor.java index 7a2c49419..83f58ae2c 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/LastUpdateInteractor.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/LastUpdateInteractor.java @@ -26,7 +26,7 @@ public class LastUpdateInteractor { } @Nullable - private Boolean getSeenOnKeyservers(long masterKeyId) { + public Boolean getSeenOnKeyservers(long masterKeyId) { Cursor cursor = contentResolver.query( UpdatedKeys.CONTENT_URI, new String[] { UpdatedKeys.SEEN_ON_KEYSERVERS }, diff --git a/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/provider/InteropTest.java b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/provider/InteropTest.java index 4fb6971da..457fc2adb 100644 --- a/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/provider/InteropTest.java +++ b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/provider/InteropTest.java @@ -243,7 +243,8 @@ public class InteropTest { KeyRings.buildUnifiedKeyRingsFindBySubkeyUri(verify.getMasterKeyId()) : null; KeyWritableRepository helper = new KeyWritableRepository(RuntimeEnvironment.application, - LocalPublicKeyStorage.getInstance(RuntimeEnvironment.application)) { + LocalPublicKeyStorage.getInstance(RuntimeEnvironment.application), + LastUpdateInteractor.create(RuntimeEnvironment.application)) { @Override public CachedPublicKeyRing getCachedPublicKeyRing(Uri queryUri) throws PgpKeyNotFoundException {