From 2180b7846608c2ee0d760754a4751868c11ac9f1 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Mon, 16 Sep 2024 12:53:36 -0400 Subject: [PATCH] Ensure username is reclaimed after account restore. --- .../thoughtcrime/securesms/pin/SvrRepository.kt | 1 - .../registration/ui/RegistrationViewModel.kt | 17 ++++++++--------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/pin/SvrRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/pin/SvrRepository.kt index 8b5b6ad14d..067acecb39 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/pin/SvrRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/pin/SvrRepository.kt @@ -156,7 +156,6 @@ object SvrRepository { SignalStore.svr.isRegistrationLockEnabled = false SignalStore.pin.resetPinReminders() SignalStore.svr.isPinForgottenOrSkipped = false - SignalStore.storageService.setNeedsAccountRestore(false) SignalStore.pin.keyboardType = pinKeyboardType SignalStore.storageService.setNeedsAccountRestore(false) diff --git a/app/src/main/java/org/thoughtcrime/securesms/registration/ui/RegistrationViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/registration/ui/RegistrationViewModel.kt index f75dfafd6a..6ec4cb3833 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/registration/ui/RegistrationViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/registration/ui/RegistrationViewModel.kt @@ -827,26 +827,25 @@ class RegistrationViewModel : ViewModel() { if (reglockEnabled) { SignalStore.onboarding.clearAll() - val stopwatch = Stopwatch("RegistrationLockRestore") + } + + if (reglockEnabled || SignalStore.storageService.lastSyncTime == 0L) { + val stopwatch = Stopwatch("post-reg-storage-service") AppDependencies.jobManager.runSynchronously(StorageAccountRestoreJob(), StorageAccountRestoreJob.LIFESPAN) - stopwatch.split("AccountRestore") + stopwatch.split("account-restore") AppDependencies.jobManager .startChain(StorageSyncJob()) .then(ReclaimUsernameAndLinkJob()) .enqueueAndBlockUntilCompletion(TimeUnit.SECONDS.toMillis(10)) - stopwatch.split("ContactRestore") - - refreshRemoteConfig() - - stopwatch.split("RemoteConfig") + stopwatch.split("storage-sync") stopwatch.stop(TAG) - } else { - refreshRemoteConfig() } + refreshRemoteConfig() + store.update { it.copy( registrationCheckpoint = RegistrationCheckpoint.LOCAL_REGISTRATION_COMPLETE,