mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-05-14 04:00:13 +01:00
Fix username relost due to bad needs restore state.
This commit is contained in:
@@ -21,6 +21,7 @@ import org.thoughtcrime.securesms.dependencies.AppDependencies
|
||||
import org.thoughtcrime.securesms.jobmanager.Job
|
||||
import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
import org.thoughtcrime.securesms.keyvalue.isTerminal
|
||||
import org.thoughtcrime.securesms.net.SignalNetwork
|
||||
import org.thoughtcrime.securesms.profiles.ProfileName
|
||||
import org.thoughtcrime.securesms.profiles.manage.UsernameRepository
|
||||
@@ -399,6 +400,12 @@ 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.")
|
||||
if (SignalStore.account.isRegistered && SignalStore.account.aci != null && SignalStore.registration.restoreDecisionState.isTerminal) {
|
||||
AppDependencies.jobManager
|
||||
.startChain(ReclaimUsernameAndLinkJob())
|
||||
.then(RefreshOwnProfileJob())
|
||||
.enqueue()
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -442,6 +442,7 @@ object UsernameRepository {
|
||||
SignalDatabase.recipients.setUsername(Recipient.self().id, updatedUsername.username)
|
||||
SignalStore.account.usernameSyncState = AccountValues.UsernameSyncState.IN_SYNC
|
||||
SignalStore.account.usernameSyncErrorCount = 0
|
||||
SignalStore.misc.needsUsernameRestore = false
|
||||
|
||||
SignalDatabase.recipients.markNeedsSync(Recipient.self().id)
|
||||
StorageSyncHelper.scheduleSyncForDataChange()
|
||||
@@ -474,6 +475,7 @@ object UsernameRepository {
|
||||
SignalDatabase.recipients.setUsername(Recipient.self().id, username.username)
|
||||
SignalStore.account.usernameSyncState = AccountValues.UsernameSyncState.IN_SYNC
|
||||
SignalStore.account.usernameSyncErrorCount = 0
|
||||
SignalStore.misc.needsUsernameRestore = false
|
||||
|
||||
SignalDatabase.recipients.markNeedsSync(Recipient.self().id)
|
||||
StorageSyncHelper.scheduleSyncForDataChange()
|
||||
@@ -531,6 +533,7 @@ object UsernameRepository {
|
||||
SignalStore.account.usernameLink = null
|
||||
SignalStore.account.usernameSyncState = AccountValues.UsernameSyncState.IN_SYNC
|
||||
SignalStore.account.usernameSyncErrorCount = 0
|
||||
SignalStore.misc.needsUsernameRestore = false
|
||||
SignalDatabase.recipients.markNeedsSync(Recipient.self().id)
|
||||
StorageSyncHelper.scheduleSyncForDataChange()
|
||||
Log.i(TAG, "[deleteUsername] Successfully deleted the username.")
|
||||
|
||||
Reference in New Issue
Block a user