Explicitly persist message backup tier.
This commit is contained in:
parent
b59932cd88
commit
e647b31f29
3 changed files with 17 additions and 14 deletions
|
@ -7,6 +7,7 @@ package org.thoughtcrime.securesms.backup.v2
|
||||||
|
|
||||||
import org.signal.core.util.Base64
|
import org.signal.core.util.Base64
|
||||||
import org.signal.core.util.EventTimer
|
import org.signal.core.util.EventTimer
|
||||||
|
import org.signal.core.util.LongSerializer
|
||||||
import org.signal.core.util.logging.Log
|
import org.signal.core.util.logging.Log
|
||||||
import org.signal.core.util.withinTransaction
|
import org.signal.core.util.withinTransaction
|
||||||
import org.signal.libsignal.messagebackup.MessageBackup
|
import org.signal.libsignal.messagebackup.MessageBackup
|
||||||
|
@ -689,7 +690,17 @@ class BackupMetadata(
|
||||||
val mediaCount: Long
|
val mediaCount: Long
|
||||||
)
|
)
|
||||||
|
|
||||||
enum class MessageBackupTier {
|
enum class MessageBackupTier(val value: Int) {
|
||||||
FREE,
|
FREE(0),
|
||||||
PAID
|
PAID(1);
|
||||||
|
|
||||||
|
companion object Serializer : LongSerializer<MessageBackupTier> {
|
||||||
|
override fun serialize(data: MessageBackupTier): Long {
|
||||||
|
return data.value.toLong()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun deserialize(data: Long): MessageBackupTier {
|
||||||
|
return values().firstOrNull { it.value == data.toInt() } ?: FREE
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -73,6 +73,7 @@ class MessageBackupsFlowViewModel : ViewModel() {
|
||||||
|
|
||||||
private fun validateTypeAndUpdateState(): MessageBackupsScreen {
|
private fun validateTypeAndUpdateState(): MessageBackupsScreen {
|
||||||
SignalStore.backup().areBackupsEnabled = true
|
SignalStore.backup().areBackupsEnabled = true
|
||||||
|
SignalStore.backup().backupTier = state.value.selectedMessageBackupTier!!
|
||||||
return MessageBackupsScreen.COMPLETED
|
return MessageBackupsScreen.COMPLETED
|
||||||
// return MessageBackupsScreen.CHECKOUT_SHEET TODO [message-backups] Switch back to payment flow
|
// return MessageBackupsScreen.CHECKOUT_SHEET TODO [message-backups] Switch back to payment flow
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,12 +17,12 @@ internal class BackupValues(store: KeyValueStore) : SignalStoreValues(store) {
|
||||||
companion object {
|
companion object {
|
||||||
val TAG = Log.tag(BackupValues::class.java)
|
val TAG = Log.tag(BackupValues::class.java)
|
||||||
private const val KEY_CREDENTIALS = "backup.credentials"
|
private const val KEY_CREDENTIALS = "backup.credentials"
|
||||||
private const val KEY_CDN_CAN_READ_WRITE = "backup.cdn.canReadWrite"
|
|
||||||
private const val KEY_CDN_READ_CREDENTIALS = "backup.cdn.readCredentials"
|
private const val KEY_CDN_READ_CREDENTIALS = "backup.cdn.readCredentials"
|
||||||
private const val KEY_CDN_READ_CREDENTIALS_TIMESTAMP = "backup.cdn.readCredentials.timestamp"
|
private const val KEY_CDN_READ_CREDENTIALS_TIMESTAMP = "backup.cdn.readCredentials.timestamp"
|
||||||
private const val KEY_RESTORE_STATE = "backup.restoreState"
|
private const val KEY_RESTORE_STATE = "backup.restoreState"
|
||||||
private const val KEY_BACKUP_USED_MEDIA_SPACE = "backup.usedMediaSpace"
|
private const val KEY_BACKUP_USED_MEDIA_SPACE = "backup.usedMediaSpace"
|
||||||
private const val KEY_BACKUP_LAST_PROTO_SIZE = "backup.lastProtoSize"
|
private const val KEY_BACKUP_LAST_PROTO_SIZE = "backup.lastProtoSize"
|
||||||
|
private const val KEY_BACKUP_TIER = "backup.backupTier"
|
||||||
|
|
||||||
private const val KEY_NEXT_BACKUP_TIME = "backup.nextBackupTime"
|
private const val KEY_NEXT_BACKUP_TIME = "backup.nextBackupTime"
|
||||||
private const val KEY_LAST_BACKUP_TIME = "backup.lastBackupTime"
|
private const val KEY_LAST_BACKUP_TIME = "backup.lastBackupTime"
|
||||||
|
@ -60,6 +60,7 @@ internal class BackupValues(store: KeyValueStore) : SignalStoreValues(store) {
|
||||||
var nextBackupTime: Long by longValue(KEY_NEXT_BACKUP_TIME, -1)
|
var nextBackupTime: Long by longValue(KEY_NEXT_BACKUP_TIME, -1)
|
||||||
var lastBackupTime: Long by longValue(KEY_LAST_BACKUP_TIME, -1)
|
var lastBackupTime: Long by longValue(KEY_LAST_BACKUP_TIME, -1)
|
||||||
var backupFrequency: BackupFrequency by enumValue(KEY_BACKUP_FREQUENCY, BackupFrequency.MANUAL, BackupFrequency.Serializer)
|
var backupFrequency: BackupFrequency by enumValue(KEY_BACKUP_FREQUENCY, BackupFrequency.MANUAL, BackupFrequency.Serializer)
|
||||||
|
var backupTier: MessageBackupTier by enumValue(KEY_BACKUP_TIER, MessageBackupTier.FREE, MessageBackupTier.Serializer)
|
||||||
|
|
||||||
val totalBackupSize: Long get() = lastBackupProtoSize + usedBackupMediaSpace
|
val totalBackupSize: Long get() = lastBackupProtoSize + usedBackupMediaSpace
|
||||||
|
|
||||||
|
@ -81,16 +82,6 @@ internal class BackupValues(store: KeyValueStore) : SignalStoreValues(store) {
|
||||||
.apply()
|
.apply()
|
||||||
}
|
}
|
||||||
|
|
||||||
val backupTier: MessageBackupTier? = if (areBackupsEnabled) {
|
|
||||||
if (backsUpMedia) {
|
|
||||||
MessageBackupTier.PAID
|
|
||||||
} else {
|
|
||||||
MessageBackupTier.FREE
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
null
|
|
||||||
}
|
|
||||||
|
|
||||||
var backupsInitialized: Boolean by booleanValue(KEY_BACKUPS_INITIALIZED, false)
|
var backupsInitialized: Boolean by booleanValue(KEY_BACKUPS_INITIALIZED, false)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Add table
Reference in a new issue