Fix reglock setting incorrect during backup restore.

This commit is contained in:
Cody Henthorne
2025-09-10 12:57:25 -04:00
parent dd67398a70
commit ea772cbf55
4 changed files with 10 additions and 4 deletions

View File

@@ -227,6 +227,7 @@ class SvrValues internal constructor(store: KeyValueStore) : SignalStoreValues(s
.putBoolean(OPTED_OUT, true)
.remove(LOCK_LOCAL_PIN_HASH)
.remove(PIN)
.remove(REGISTRATION_LOCK_ENABLED)
.putLong(LAST_CREATE_FAILED_TIMESTAMP, -1)
.commit()
}

View File

@@ -299,7 +299,8 @@ object SvrRepository {
masterKey: MasterKey?,
userPin: String?,
hasPinToRestore: Boolean,
setRegistrationLockEnabled: Boolean
setRegistrationLockEnabled: Boolean,
restoredAEP: Boolean
) {
Log.i(TAG, "[onRegistrationComplete] Starting", true)
operationLock.withLock {
@@ -321,8 +322,12 @@ object SvrRepository {
AppDependencies.jobManager.add(ResetSvrGuessCountJob())
} else if (masterKey != null) {
Log.i(TAG, "[onRegistrationComplete] ReRegistered with key without pin")
Log.i(TAG, "[onRegistrationComplete] ReRegistered with key without pin", true)
SignalStore.svr.masterKeyForInitialDataRestore = masterKey
if (restoredAEP && setRegistrationLockEnabled) {
Log.i(TAG, "[onRegistrationComplete] Registration Lock", true)
SignalStore.svr.isRegistrationLockEnabled = true
}
} else if (hasPinToRestore) {
Log.i(TAG, "[onRegistrationComplete] Has a PIN to restore.", true)
SignalStore.svr.clearRegistrationLockAndPin()

View File

@@ -219,7 +219,7 @@ object RegistrationRepository {
NotificationManagerCompat.from(context).cancel(NotificationIds.UNREGISTERED_NOTIFICATION_ID)
val masterKey = if (data.masterKey != null) MasterKey(data.masterKey.toByteArray()) else null
SvrRepository.onRegistrationComplete(masterKey, data.pin, hasPin, data.reglockEnabled)
SvrRepository.onRegistrationComplete(masterKey, data.pin, hasPin, data.reglockEnabled, false)
AppDependencies.resetNetwork()
AppDependencies.startNetwork()

View File

@@ -241,7 +241,7 @@ object RegistrationRepository {
NotificationManagerCompat.from(context).cancel(NotificationIds.UNREGISTERED_NOTIFICATION_ID)
val masterKey = if (data.masterKey != null) MasterKey(data.masterKey.toByteArray()) else null
SvrRepository.onRegistrationComplete(masterKey, data.pin, hasPin, data.reglockEnabled)
SvrRepository.onRegistrationComplete(masterKey, data.pin, hasPin, data.reglockEnabled, SignalStore.account.restoredAccountEntropyPool)
AppDependencies.resetNetwork()
AppDependencies.startNetwork()