Add support for watermarking backup failure sheet.

This commit is contained in:
Alex Hart
2024-11-01 13:23:57 -03:00
committed by Greyson Parrelli
parent 2c3a3f9ea9
commit faa6d743c0
2 changed files with 39 additions and 11 deletions

View File

@@ -93,7 +93,6 @@ import java.io.OutputStream
import java.time.ZonedDateTime
import java.util.Locale
import java.util.concurrent.atomic.AtomicLong
import kotlin.time.Duration.Companion.days
import kotlin.time.Duration.Companion.milliseconds
import org.signal.libsignal.messagebackup.MessageBackupKey as LibSignalMessageBackupKey
@@ -158,6 +157,13 @@ object BackupRepository {
SignalStore.backup.updateMessageBackupFailureWatermark()
}
/**
* Updates the watermark for the sheet display.
*/
fun markBackupFailedSheetDismissed() {
SignalStore.backup.updateMessageBackupFailureSheetWatermark()
}
/**
* Whether or not the "Could not complete backup" sheet should be displayed.
*/
@@ -167,15 +173,7 @@ object BackupRepository {
return false
}
val lastBackupTime = SignalStore.backup.lastBackupTime.milliseconds
val isTimeoutElapsed = when (SignalStore.backup.backupFrequency) {
BackupFrequency.DAILY -> lastBackupTime > 7.days
BackupFrequency.WEEKLY -> lastBackupTime > 14.days
BackupFrequency.MONTHLY -> lastBackupTime > 44.days
BackupFrequency.MANUAL -> false
}
return isTimeoutElapsed && false // TODO [backups] -- watermarking necessary, otherwise this'll show up on every resume.
return System.currentTimeMillis().milliseconds > SignalStore.backup.nextBackupFailureSheetSnoozeTime
}
private fun shouldNotDisplayBackupFailedMessaging(): Boolean {