diff --git a/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java b/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java index 20cfdb8a91..a8a8667af1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java +++ b/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java @@ -205,7 +205,7 @@ public class ApplicationContext extends Application implements AppForegroundObse .addNonBlocking(AppDependencies::getBillingApi) .addNonBlocking(this::ensureProfileUploaded) .addNonBlocking(() -> AppDependencies.getExpireStoriesManager().scheduleIfNecessary()) - .addNonBlocking(BackupRepository::maybeFixAnyDanglingAttachmentUploads) + .addNonBlocking(BackupRepository::maybeFixAnyDanglingUploadProgress) .addPostRender(() -> AppDependencies.getDeletedCallEventManager().scheduleIfNecessary()) .addPostRender(() -> RateLimitUtil.retryAllRateLimitedMessages(this)) .addPostRender(this::initializeExpiringMessageManager) diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt index 1d5257ce5d..957b5042e6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt @@ -116,6 +116,7 @@ import org.thoughtcrime.securesms.keyvalue.BackupValues.ArchiveServiceCredential import org.thoughtcrime.securesms.keyvalue.KeyValueStore import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.keyvalue.isDecisionPending +import org.thoughtcrime.securesms.keyvalue.protos.ArchiveUploadProgressState import org.thoughtcrime.securesms.logsubmit.SubmitDebugLogRepository import org.thoughtcrime.securesms.net.SignalNetwork import org.thoughtcrime.securesms.notifications.NotificationChannels @@ -548,7 +549,13 @@ object BackupRepository { } @JvmStatic - fun maybeFixAnyDanglingAttachmentUploads() { + fun maybeFixAnyDanglingUploadProgress() { + if (SignalStore.backup.archiveUploadState?.backupPhase == ArchiveUploadProgressState.BackupPhase.Message && AppDependencies.jobManager.find { it.factoryKey == BackupMessagesJob.KEY }.isEmpty()) { + SignalStore.backup.archiveUploadState = null + BackupMessagesJob.enqueue() + return + } + if (!SignalStore.backup.backsUpMedia || !AppDependencies.jobManager.areQueuesEmpty(UploadAttachmentToArchiveJob.QUEUES)) { return } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsViewModel.kt index fc8c78b64d..f706ec41aa 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsViewModel.kt @@ -159,7 +159,7 @@ class RemoteBackupsSettingsViewModel : ViewModel() { } viewModelScope.launch(Dispatchers.IO) { - BackupRepository.maybeFixAnyDanglingAttachmentUploads() + BackupRepository.maybeFixAnyDanglingUploadProgress() } }