Fix e164 NPE for numberless accounts during restore.

This commit is contained in:
Greyson Parrelli
2026-09-09 16:44:25 -04:00
committed by Cody Henthorne
parent e61dd283c7
commit 6a8ab2e1b6
6 changed files with 10 additions and 10 deletions
@@ -1730,8 +1730,8 @@ object BackupRepository {
data class SelfData(
val aci: ACI,
val pni: PNI,
val e164: String,
val pni: PNI?,
val e164: String?,
val profileKey: ProfileKey
)
@@ -1838,7 +1838,7 @@ object BackupRepository {
}
val self = Recipient.self()
val selfData = SelfData(self.aci.get(), self.pni.get(), self.e164.get(), ProfileKey(self.profileKey))
val selfData = SelfData(self.aci.get(), self.pni.orElse(null), self.e164.orElse(null), ProfileKey(self.profileKey))
Log.i(TAG, "[remoteRestore] Importing backup")
val result = importSignalBackup(
length = tempBackupFile.length(),
@@ -1924,7 +1924,7 @@ object BackupRepository {
)
val self = Recipient.self()
val selfData = SelfData(self.aci.get(), self.pni.get(), self.e164.get(), ProfileKey(self.profileKey))
val selfData = SelfData(self.aci.get(), self.pni.orElse(null), self.e164.orElse(null), ProfileKey(self.profileKey))
Log.i(TAG, "[restoreLinkAndSyncBackup] Importing backup")
val result = importLinkAndSyncSignalBackup(
length = tempBackupFile.length(),
@@ -185,7 +185,7 @@ class InternalBackupPlaygroundViewModel : ViewModel() {
val self = Recipient.self()
val aci = customCredentials?.aci ?: self.aci.get()
val selfData = BackupRepository.SelfData(aci, self.pni.get(), self.e164.get(), ProfileKey(self.profileKey))
val selfData = BackupRepository.SelfData(aci, self.pni.orElse(null), self.e164.orElse(null), ProfileKey(self.profileKey))
val backupKey = customCredentials?.messageBackupKey ?: SignalStore.backup.messageBackupKey
disposables += Single.fromCallable { BackupRepository.importForDebugging(length, inputStreamFactory, selfData, backupKey) }
@@ -84,7 +84,7 @@ class RestoreLocalBackupActivityViewModel : ViewModel() {
internalState.update { it.copy(restorePhase = RestorePhase.RESTORING) }
val self = Recipient.self()
val selfData = BackupRepository.SelfData(self.aci.get(), self.pni.get(), self.e164.get(), ProfileKey(self.profileKey))
val selfData = BackupRepository.SelfData(self.aci.get(), self.pni.orElse(null), self.e164.orElse(null), ProfileKey(self.profileKey))
val backupDirectory = SignalStore.backup.newLocalBackupsDirectory
if (backupDirectory == null) {
@@ -439,7 +439,7 @@ class AppRegistrationStorageController(private val context: Context) : StorageCo
val selfPni = SignalStore.account.pni
val selfE164 = SignalStore.account.e164
if (selfAci == null || selfPni == null || selfE164 == null) {
if (selfAci == null) {
trySend(LocalBackupRestoreProgress.Error(IllegalStateException("Account not registered, cannot restore V2 backup")))
return@launch
}
@@ -132,7 +132,7 @@ class QuickstartRestoreActivity : BaseActivity() {
lifecycleScope.launch(Dispatchers.IO) {
try {
val self = Recipient.self()
val selfData = BackupRepository.SelfData(self.aci.get(), self.pni.get(), self.e164.get(), ProfileKey(self.profileKey))
val selfData = BackupRepository.SelfData(self.aci.get(), self.pni.orElse(null), self.e164.orElse(null), ProfileKey(self.profileKey))
val backupDir = QuickstartInitializer.pendingBackupDir!!
@@ -82,7 +82,7 @@ class BackupPlugin : Plugin {
}
val self = Recipient.self()
val selfData = BackupRepository.SelfData(self.aci.get(), self.pni.get(), self.e164.get(), ProfileKey(self.profileKey))
val selfData = BackupRepository.SelfData(self.aci.get(), self.pni.orElse(null), self.e164.orElse(null), ProfileKey(self.profileKey))
val backupKey = SignalStore.backup.messageBackupKey
@@ -116,7 +116,7 @@ class BackupPlugin : Plugin {
val snapshotFS = SnapshotFileSystem(AppDependencies.application, snapshot.file)
val self = Recipient.self()
val selfData = BackupRepository.SelfData(self.aci.get(), self.pni.get(), self.e164.get(), ProfileKey(self.profileKey))
val selfData = BackupRepository.SelfData(self.aci.get(), self.pni.orElse(null), self.e164.orElse(null), ProfileKey(self.profileKey))
val backupKey = SignalStore.backup.messageBackupKey