Include backup size when fetching archive upload form.

This commit is contained in:
Greyson Parrelli
2025-07-21 13:02:42 -04:00
parent b95a3a2554
commit eca75ca3fb
3 changed files with 15 additions and 6 deletions

View File

@@ -1333,10 +1333,10 @@ object BackupRepository {
}
}
fun getResumableMessagesBackupUploadSpec(): NetworkResult<ResumableMessagesBackupUploadSpec> {
fun getResumableMessagesBackupUploadSpec(backupFileSize: Long): NetworkResult<ResumableMessagesBackupUploadSpec> {
return initBackupAndFetchAuth()
.then { credential ->
SignalNetwork.archive.getMessageBackupUploadForm(SignalStore.account.requireAci(), credential.messageBackupAccess)
SignalNetwork.archive.getMessageBackupUploadForm(SignalStore.account.requireAci(), credential.messageBackupAccess, backupFileSize)
.also { Log.i(TAG, "UploadFormResult: ${it::class.simpleName}") }
}
.then { form ->

View File

@@ -158,7 +158,7 @@ class BackupMessagesJob private constructor(
this.syncTime = currentTime
this.dataFile = tempBackupFile.path
val backupSpec: ResumableMessagesBackupUploadSpec = resumableMessagesBackupUploadSpec ?: when (val result = BackupRepository.getResumableMessagesBackupUploadSpec()) {
val backupSpec: ResumableMessagesBackupUploadSpec = resumableMessagesBackupUploadSpec ?: when (val result = BackupRepository.getResumableMessagesBackupUploadSpec(tempBackupFile.length())) {
is NetworkResult.Success -> {
Log.i(TAG, "Successfully generated a new upload spec.")
@@ -173,7 +173,15 @@ class BackupMessagesJob private constructor(
}
is NetworkResult.StatusCodeError -> {
Log.i(TAG, "Status code failure", result.getCause())
when (result.code) {
413 -> {
Log.i(TAG, "Backup file is too large! Size: ${tempBackupFile.length()} bytes", result.getCause())
// TODO [backup] Need to show the user an error
}
else -> {
Log.i(TAG, "Status code failure", result.getCause())
}
}
return Result.retry(defaultBackoff())
}