From 276662026ecc1d40624f921bf9f78992cfb08eff Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Mon, 9 Mar 2026 16:00:27 -0400 Subject: [PATCH] Fix potential username link desync after backup restore. --- .../thoughtcrime/securesms/jobs/RefreshOwnProfileJob.kt | 5 +++++ .../securesms/profiles/manage/UsernameRepository.kt | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) 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 -> {