From 575caa53d3a125ff73969f1cc3f5ff1630e7c1cb Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Fri, 24 Apr 2020 18:37:12 -0400 Subject: [PATCH] Fix some storage service consistency issues. --- .../thoughtcrime/securesms/database/RecipientDatabase.java | 6 +----- .../thoughtcrime/securesms/jobs/DirectoryRefreshJob.java | 2 +- .../org/thoughtcrime/securesms/jobs/StorageSyncJob.java | 2 +- .../securesms/registration/RegistrationUtil.java | 7 ++++++- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.java index ae96caab7e..8bda02cdd2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.java @@ -1174,13 +1174,9 @@ public class RecipientDatabase extends Database { @Deprecated public void setRegistered(@NonNull RecipientId id, RegisteredState registeredState) { - ContentValues contentValues = new ContentValues(2); + ContentValues contentValues = new ContentValues(1); contentValues.put(REGISTERED, registeredState.getId()); - if (registeredState == RegisteredState.REGISTERED) { - contentValues.put(STORAGE_SERVICE_ID, Base64.encodeBytes(StorageSyncHelper.generateKey())); - } - if (update(id, contentValues)) { if (registeredState == RegisteredState.REGISTERED) { markDirty(id, DirtyState.INSERT); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/DirectoryRefreshJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/DirectoryRefreshJob.java index ccae62c3a8..10edb8b0ee 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/DirectoryRefreshJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/DirectoryRefreshJob.java @@ -35,7 +35,7 @@ public class DirectoryRefreshJob extends BaseJob { boolean notifyOfNewUsers) { this(new Job.Parameters.Builder() - .setQueue("DirectoryRefreshJob") + .setQueue(StorageSyncJob.QUEUE_KEY) .addConstraint(NetworkConstraint.KEY) .setMaxAttempts(10) .build(), diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/StorageSyncJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/StorageSyncJob.java index b67591b001..e1b356c963 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/StorageSyncJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/StorageSyncJob.java @@ -275,7 +275,7 @@ public class StorageSyncJob extends BaseJob { case ManifestRecord.Identifier.Type.GROUPV2_VALUE: RecipientSettings settings = recipientDatabase.getByStorageId(id.getRaw()); if (settings != null) { - + records.add(StorageSyncModels.localToRemoteRecord(settings, archivedRecipients)); } else { Log.w(TAG, "Missing local recipient model! Type: " + id.getType()); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/registration/RegistrationUtil.java b/app/src/main/java/org/thoughtcrime/securesms/registration/RegistrationUtil.java index 35acdcad30..7d0c8dc039 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/registration/RegistrationUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/registration/RegistrationUtil.java @@ -1,5 +1,8 @@ package org.thoughtcrime.securesms.registration; +import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob; +import org.thoughtcrime.securesms.jobs.StorageSyncJob; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.recipients.Recipient; @@ -21,7 +24,9 @@ public final class RegistrationUtil { if (!SignalStore.registrationValues().isRegistrationComplete() && SignalStore.kbsValues().hasPin() && !Recipient.self().getProfileName().isEmpty()) { Log.i(TAG, "Marking registration completed.", new Throwable()); SignalStore.registrationValues().setRegistrationComplete(); - StorageSyncHelper.scheduleSyncForDataChange(); + ApplicationDependencies.getJobManager().startChain(new StorageSyncJob()) + .then(new DirectoryRefreshJob(false)) + .enqueue(); } else if (!SignalStore.registrationValues().isRegistrationComplete()) { Log.i(TAG, "Registration is not yet complete.", new Throwable()); }