diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshOwnProfileJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshOwnProfileJob.kt index 4b65faeabd..a694678376 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshOwnProfileJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshOwnProfileJob.kt @@ -397,6 +397,11 @@ class RefreshOwnProfileJob private constructor(parameters: Parameters) : BaseJob } private fun checkUsernameIsInSync() { + if (SignalStore.misc.needsUsernameRestore) { + Log.d(TAG, "Username restore is still pending. Skipping consistency check.") + return + } + try { val localUsername = SignalStore.account.username diff --git a/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameRepository.kt index 89dedea97a..5957fec078 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameRepository.kt @@ -549,7 +549,12 @@ object UsernameRepository { val link = username.generateLink(usernameLinkComponents.entropy) return when (val result = SignalNetwork.account.confirmUsername(username, link)) { - is NetworkResult.Success -> UsernameReclaimResult.SUCCESS + is NetworkResult.Success -> { + SignalStore.account.usernameLink = UsernameLinkComponents(usernameLinkComponents.entropy, result.result) + SignalDatabase.recipients.markNeedsSync(Recipient.self().id) + StorageSyncHelper.scheduleSyncForDataChange() + UsernameReclaimResult.SUCCESS + } is NetworkResult.StatusCodeError -> { when (result.code) { 409 -> {