mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-26 11:51:10 +01:00
Support accounts without pins in AEP restore flows.
This commit is contained in:
@@ -67,11 +67,6 @@ object QuickRegistrationRepository {
|
||||
return TransferAccountResult.FAILED
|
||||
}
|
||||
|
||||
val pin = SignalStore.svr.pin ?: run {
|
||||
Log.w(TAG, "No pin")
|
||||
return TransferAccountResult.FAILED
|
||||
}
|
||||
|
||||
SignalNetwork
|
||||
.provisioning
|
||||
.sendReRegisterDeviceProvisioningMessage(
|
||||
@@ -81,15 +76,15 @@ object QuickRegistrationRepository {
|
||||
e164 = SignalStore.account.requireE164(),
|
||||
aci = SignalStore.account.requireAci().toByteString(),
|
||||
accountEntropyPool = SignalStore.account.accountEntropyPool.value,
|
||||
pin = pin,
|
||||
pin = SignalStore.svr.pin,
|
||||
platform = RegistrationProvisionMessage.Platform.ANDROID,
|
||||
backupTimestampMs = SignalStore.backup.lastBackupTime.coerceAtLeast(0L),
|
||||
backupTimestampMs = SignalStore.backup.lastBackupTime.coerceAtLeast(0L).takeIf { it > 0 },
|
||||
tier = when (SignalStore.backup.backupTier) {
|
||||
MessageBackupTier.PAID -> RegistrationProvisionMessage.Tier.PAID
|
||||
MessageBackupTier.FREE -> RegistrationProvisionMessage.Tier.FREE
|
||||
null -> null
|
||||
},
|
||||
backupSizeBytes = SignalStore.backup.totalBackupSize,
|
||||
backupSizeBytes = SignalStore.backup.totalBackupSize.takeIf { it > 0 },
|
||||
restoreMethodToken = restoreMethodToken
|
||||
)
|
||||
)
|
||||
|
||||
@@ -894,12 +894,12 @@ class RegistrationViewModel : ViewModel() {
|
||||
Log.w(TAG, "Unable to start auth websocket", e)
|
||||
}
|
||||
|
||||
if (!remoteResult.storageCapable && SignalStore.registration.restoreDecisionState.isDecisionPending) {
|
||||
Log.v(TAG, "Not storage capable and still pending restore decision, likely an account with no data to restore, skipping post register restore")
|
||||
if (!remoteResult.storageCapable && !SignalStore.account.restoredAccountEntropyPool && SignalStore.registration.restoreDecisionState.isDecisionPending) {
|
||||
Log.v(TAG, "Not storage capable or restored with AEP, and still pending restore decision, likely an account with no data to restore, skipping post register restore")
|
||||
SignalStore.registration.restoreDecisionState = RestoreDecisionState.NewAccount
|
||||
}
|
||||
|
||||
if (reglockEnabled || SignalStore.svr.hasOptedInWithAccess()) {
|
||||
if (reglockEnabled || SignalStore.account.restoredAccountEntropyPool) {
|
||||
SignalStore.onboarding.clearAll()
|
||||
|
||||
if (SignalStore.registration.restoreDecisionState.isTerminal) {
|
||||
|
||||
@@ -158,17 +158,15 @@ class RestoreViaQrViewModel : ViewModel() {
|
||||
Log.i(TAG, "Saving restore method token: ***${result.message.restoreMethodToken.takeLast(4)}")
|
||||
SignalStore.registration.restoreMethodToken = result.message.restoreMethodToken
|
||||
SignalStore.registration.isOtherDeviceAndroid = result.message.platform == RegistrationProvisionMessage.Platform.ANDROID
|
||||
if (result.message.backupTimestampMs > 0) {
|
||||
SignalStore.backup.backupTier = result.message.tier.let {
|
||||
when (it) {
|
||||
RegistrationProvisionMessage.Tier.FREE -> MessageBackupTier.FREE
|
||||
RegistrationProvisionMessage.Tier.PAID -> MessageBackupTier.PAID
|
||||
null -> null
|
||||
}
|
||||
}
|
||||
SignalStore.backup.lastBackupTime = result.message.backupTimestampMs
|
||||
SignalStore.backup.usedBackupMediaSpace = result.message.backupSizeBytes
|
||||
|
||||
SignalStore.backup.lastBackupTime = result.message.backupTimestampMs ?: 0
|
||||
SignalStore.backup.usedBackupMediaSpace = result.message.backupSizeBytes ?: 0
|
||||
SignalStore.backup.backupTier = when (result.message.tier) {
|
||||
RegistrationProvisionMessage.Tier.FREE -> MessageBackupTier.FREE
|
||||
RegistrationProvisionMessage.Tier.PAID -> MessageBackupTier.PAID
|
||||
null -> null
|
||||
}
|
||||
|
||||
store.update { it.copy(isRegistering = true, provisioningMessage = result.message, qrState = QrState.Scanned) }
|
||||
shutdown()
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user