mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-20 16:49:40 +01:00
Refactor backup creation failures, add case for file too large.
This commit is contained in:
committed by
Michelle Tang
parent
ad0b240550
commit
945453cb81
@@ -6,7 +6,6 @@ import androidx.lifecycle.map
|
||||
import io.reactivex.rxjava3.disposables.CompositeDisposable
|
||||
import io.reactivex.rxjava3.kotlin.plusAssign
|
||||
import io.reactivex.rxjava3.kotlin.subscribeBy
|
||||
import org.thoughtcrime.securesms.backup.v2.BackupRepository
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.InAppDonations
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.RecurringInAppPaymentRepository
|
||||
import org.thoughtcrime.securesms.conversationlist.model.UnreadPaymentsLiveData
|
||||
@@ -72,18 +71,13 @@ class AppSettingsViewModel : ViewModel() {
|
||||
}
|
||||
|
||||
private fun getBackupFailureState(): BackupFailureState {
|
||||
return if (BackupRepository.shouldDisplayOutOfRemoteStorageSpaceUx()) {
|
||||
BackupFailureState.OUT_OF_STORAGE_SPACE
|
||||
} else if (BackupRepository.shouldDisplayBackupFailedSettingsRow()) {
|
||||
BackupFailureState.BACKUP_FAILED
|
||||
} else if (BackupRepository.shouldDisplayCouldNotCompleteBackupSettingsRow()) {
|
||||
BackupFailureState.COULD_NOT_COMPLETE_BACKUP
|
||||
} else if (SignalStore.backup.subscriptionStateMismatchDetected) {
|
||||
BackupFailureState.SUBSCRIPTION_STATE_MISMATCH
|
||||
} else if (SignalStore.backup.hasBackupAlreadyRedeemedError) {
|
||||
BackupFailureState.ALREADY_REDEEMED
|
||||
} else {
|
||||
BackupFailureState.NONE
|
||||
return when {
|
||||
!SignalStore.account.isRegistered || !SignalStore.backup.areBackupsEnabled -> BackupFailureState.NONE
|
||||
SignalStore.backup.isNotEnoughRemoteStorageSpace -> BackupFailureState.OUT_OF_STORAGE_SPACE
|
||||
SignalStore.backup.hasBackupCreationError -> BackupFailureState.COULD_NOT_COMPLETE_BACKUP
|
||||
SignalStore.backup.subscriptionStateMismatchDetected -> BackupFailureState.SUBSCRIPTION_STATE_MISMATCH
|
||||
SignalStore.backup.hasBackupAlreadyRedeemedError -> BackupFailureState.ALREADY_REDEEMED
|
||||
else -> BackupFailureState.NONE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -539,11 +539,10 @@ private fun RemoteBackupsSettingsContent(
|
||||
contentCallbacks = contentCallbacks
|
||||
)
|
||||
} else {
|
||||
if (state.showBackupCreateFailedError || state.showBackupCreateCouldNotCompleteError) {
|
||||
if (state.backupCreationError != null) {
|
||||
item {
|
||||
BackupCreateErrorRow(
|
||||
showCouldNotComplete = state.showBackupCreateCouldNotCompleteError,
|
||||
showBackupFailed = state.showBackupCreateFailedError,
|
||||
error = state.backupCreationError,
|
||||
onLearnMoreClick = contentCallbacks::onLearnMoreAboutBackupFailure
|
||||
)
|
||||
}
|
||||
@@ -888,11 +887,10 @@ private fun LazyListScope.appendBackupDetailsItems(
|
||||
}
|
||||
}
|
||||
|
||||
if (state.showBackupCreateFailedError || state.showBackupCreateCouldNotCompleteError) {
|
||||
if (state.backupCreationError != null) {
|
||||
item {
|
||||
BackupCreateErrorRow(
|
||||
showCouldNotComplete = state.showBackupCreateCouldNotCompleteError,
|
||||
showBackupFailed = state.showBackupCreateFailedError,
|
||||
error = state.backupCreationError,
|
||||
onLearnMoreClick = contentCallbacks::onLearnMoreAboutBackupFailure
|
||||
)
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ package org.thoughtcrime.securesms.components.settings.app.backups.remote
|
||||
import org.signal.core.util.ByteSize
|
||||
import org.thoughtcrime.securesms.backup.v2.MessageBackupTier
|
||||
import org.thoughtcrime.securesms.components.settings.app.backups.BackupState
|
||||
import org.thoughtcrime.securesms.keyvalue.BackupValues
|
||||
|
||||
/**
|
||||
* @param includeDebuglog The state for whether or not we should include a debuglog in the backup. If `null`, hide the setting.
|
||||
@@ -30,8 +31,7 @@ data class RemoteBackupsSettingsState(
|
||||
val includeDebuglog: Boolean? = null,
|
||||
val canBackupMessagesJobRun: Boolean = false,
|
||||
val backupMediaDetails: BackupMediaDetails? = null,
|
||||
val showBackupCreateFailedError: Boolean = false,
|
||||
val showBackupCreateCouldNotCompleteError: Boolean = false,
|
||||
val backupCreationError: BackupValues.BackupCreationError? = null,
|
||||
val freeTierMediaRetentionDays: Int = -1,
|
||||
val isGooglePlayServicesAvailable: Boolean = false
|
||||
) {
|
||||
|
||||
@@ -77,8 +77,7 @@ class RemoteBackupsSettingsViewModel : ViewModel() {
|
||||
canBackUpUsingCellular = SignalStore.backup.backupWithCellular,
|
||||
canRestoreUsingCellular = SignalStore.backup.restoreWithCellular,
|
||||
includeDebuglog = SignalStore.internal.includeDebuglogInBackup.takeIf { RemoteConfig.internalUser },
|
||||
showBackupCreateFailedError = BackupRepository.shouldDisplayBackupFailedSettingsRow(),
|
||||
showBackupCreateCouldNotCompleteError = BackupRepository.shouldDisplayCouldNotCompleteBackupSettingsRow()
|
||||
backupCreationError = SignalStore.backup.backupCreationError
|
||||
)
|
||||
)
|
||||
|
||||
@@ -349,8 +348,7 @@ class RemoteBackupsSettingsViewModel : ViewModel() {
|
||||
canRestoreUsingCellular = SignalStore.backup.restoreWithCellular,
|
||||
isOutOfStorageSpace = BackupRepository.shouldDisplayOutOfRemoteStorageSpaceUx(),
|
||||
hasRedemptionError = lastPurchase?.data?.error?.data_ == "409",
|
||||
showBackupCreateFailedError = BackupRepository.shouldDisplayBackupFailedSettingsRow(),
|
||||
showBackupCreateCouldNotCompleteError = BackupRepository.shouldDisplayCouldNotCompleteBackupSettingsRow()
|
||||
backupCreationError = SignalStore.backup.backupCreationError
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -82,6 +82,7 @@ import org.thoughtcrime.securesms.jobs.ArchiveAttachmentReconciliationJob
|
||||
import org.thoughtcrime.securesms.jobs.ArchiveThumbnailBackfillJob
|
||||
import org.thoughtcrime.securesms.jobs.BackupRestoreMediaJob
|
||||
import org.thoughtcrime.securesms.jobs.LocalBackupJob
|
||||
import org.thoughtcrime.securesms.keyvalue.BackupValues
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
import org.thoughtcrime.securesms.util.Util
|
||||
|
||||
@@ -561,10 +562,10 @@ fun Screen(
|
||||
)
|
||||
|
||||
Rows.TextRow(
|
||||
text = "Mark backup failure",
|
||||
text = "Mark backup validation failure",
|
||||
label = "This will display the error sheet when returning to the chats list.",
|
||||
onClick = {
|
||||
BackupRepository.markBackupFailure()
|
||||
BackupRepository.markBackupCreationFailed(BackupValues.BackupCreationError.VALIDATION)
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user