mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-19 08:09:12 +01:00
Fail gracefully when crash occurs during backup restore.
This commit is contained in:
committed by
jeffrey-signal
parent
1a39119c2b
commit
e690c54f7c
@@ -1129,20 +1129,25 @@ object BackupRepository {
|
||||
forwardSecrecyToken: BackupForwardSecrecyToken,
|
||||
cancellationSignal: () -> Boolean = { false }
|
||||
): ImportResult {
|
||||
val frameReader = if (backupKey == null) {
|
||||
PlainTextBackupReader(inputStreamFactory(), length)
|
||||
} else {
|
||||
EncryptedBackupReader.createForSignalBackup(
|
||||
key = backupKey,
|
||||
aci = selfData.aci,
|
||||
forwardSecrecyToken = forwardSecrecyToken,
|
||||
length = length,
|
||||
dataStream = inputStreamFactory
|
||||
)
|
||||
}
|
||||
try {
|
||||
val frameReader = if (backupKey == null) {
|
||||
PlainTextBackupReader(inputStreamFactory(), length)
|
||||
} else {
|
||||
EncryptedBackupReader.createForSignalBackup(
|
||||
key = backupKey,
|
||||
aci = selfData.aci,
|
||||
forwardSecrecyToken = forwardSecrecyToken,
|
||||
length = length,
|
||||
dataStream = inputStreamFactory
|
||||
)
|
||||
}
|
||||
|
||||
return frameReader.use { reader ->
|
||||
import(reader, selfData, cancellationSignal)
|
||||
return frameReader.use { reader ->
|
||||
import(reader, selfData, cancellationSignal)
|
||||
}
|
||||
} catch (e: IOException) {
|
||||
Log.w(TAG, "Unable to restore signal backup", e)
|
||||
return ImportResult.Failure
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user