mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-02-15 07:28:30 +00:00
Show sheet for validation error.
This commit is contained in:
committed by
Cody Henthorne
parent
ea5a84b3dd
commit
7901cad90b
@@ -564,7 +564,7 @@ object BackupRepository {
|
||||
return false
|
||||
}
|
||||
|
||||
return !SignalStore.backup.hasBackupBeenUploaded && SignalStore.backup.hasBackupFailure && System.currentTimeMillis().milliseconds > SignalStore.backup.nextBackupFailureSheetSnoozeTime
|
||||
return (!SignalStore.backup.hasBackupBeenUploaded || SignalStore.backup.hasValidationError) && SignalStore.backup.hasBackupFailure && System.currentTimeMillis().milliseconds > SignalStore.backup.nextBackupFailureSheetSnoozeTime
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -397,6 +397,7 @@ class BackupMessagesJob private constructor(
|
||||
|
||||
when (val result = ArchiveValidator.validateSignalBackup(tempBackupFile, backupKey, forwardSecrecyToken)) {
|
||||
ArchiveValidator.ValidationResult.Success -> {
|
||||
SignalStore.backup.hasValidationError = false
|
||||
Log.d(TAG, "Successfully passed validation.", true)
|
||||
}
|
||||
|
||||
@@ -407,6 +408,7 @@ class BackupMessagesJob private constructor(
|
||||
|
||||
is ArchiveValidator.ValidationResult.MessageValidationError -> {
|
||||
Log.w(TAG, "The backup file fails validation! Message: ${result.exception.message}, Details: ${result.messageDetails}", true)
|
||||
SignalStore.backup.hasValidationError = true
|
||||
ArchiveUploadProgress.onValidationFailure()
|
||||
return BackupFileResult.Failure
|
||||
}
|
||||
@@ -414,6 +416,7 @@ class BackupMessagesJob private constructor(
|
||||
is ArchiveValidator.ValidationResult.RecipientDuplicateE164Error -> {
|
||||
Log.w(TAG, "The backup file fails validation with a duplicate recipient! Message: ${result.exception.message}, Details: ${result.details}", true)
|
||||
AppDependencies.jobManager.add(E164FormattingJob())
|
||||
SignalStore.backup.hasValidationError = true
|
||||
ArchiveUploadProgress.onValidationFailure()
|
||||
return BackupFileResult.Failure
|
||||
}
|
||||
|
||||
@@ -77,6 +77,7 @@ class BackupValues(store: KeyValueStore) : SignalStoreValues(store) {
|
||||
private const val KEY_NOT_ENOUGH_REMOTE_STORAGE_SPACE = "backup.not.enough.remote.storage.space"
|
||||
private const val KEY_NOT_ENOUGH_REMOTE_STORAGE_SPACE_DISPLAY_SHEET = "backup.not.enough.remote.storage.space.display.sheet"
|
||||
private const val KEY_MANUAL_NO_BACKUP_NOTIFIED = "backup.manual.no.backup.notified"
|
||||
private const val KEY_VALIDATION_ERROR = "backup.validation.error"
|
||||
|
||||
private const val KEY_USER_MANUALLY_SKIPPED_MEDIA_RESTORE = "backup.user.manually.skipped.media.restore"
|
||||
private const val KEY_BACKUP_EXPIRED_AND_DOWNGRADED = "backup.expired.and.downgraded"
|
||||
@@ -300,6 +301,9 @@ class BackupValues(store: KeyValueStore) : SignalStoreValues(store) {
|
||||
/** True if we believe we have successfully uploaded a backup, otherwise false. */
|
||||
var hasBackupBeenUploaded: Boolean by booleanValue(KEY_BACKUP_UPLOADED, false)
|
||||
|
||||
/** Set when we fail to validate a user's backup during the export process */
|
||||
var hasValidationError: Boolean by booleanValue(KEY_VALIDATION_ERROR, false)
|
||||
|
||||
val hasBackupFailure: Boolean get() = getBoolean(KEY_BACKUP_FAIL, false)
|
||||
val nextBackupFailureSnoozeTime: Duration get() = getLong(KEY_BACKUP_FAIL_ACKNOWLEDGED_SNOOZE_TIME, 0L).milliseconds
|
||||
val nextBackupFailureSheetSnoozeTime: Duration get() = getLong(KEY_BACKUP_FAIL_SHEET_SNOOZE_TIME, getNextBackupFailureSheetSnoozeTime(lastBackupTime.milliseconds).inWholeMilliseconds).milliseconds
|
||||
|
||||
Reference in New Issue
Block a user