mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-22 01:40:07 +01:00
Add wiring and notification for out of remote space error.
This commit is contained in:
@@ -511,6 +511,7 @@ private fun RemoteBackupsSettingsContent(
|
||||
backupsFrequency = state.backupsFrequency,
|
||||
canBackUpUsingCellular = state.canBackUpUsingCellular,
|
||||
canRestoreUsingCellular = state.canRestoreUsingCellular,
|
||||
canBackUpNow = !state.isOutOfStorageSpace,
|
||||
contentCallbacks = contentCallbacks
|
||||
)
|
||||
} else {
|
||||
@@ -813,6 +814,7 @@ private fun LazyListScope.appendBackupDetailsItems(
|
||||
backupsFrequency: BackupFrequency,
|
||||
canBackUpUsingCellular: Boolean,
|
||||
canRestoreUsingCellular: Boolean,
|
||||
canBackUpNow: Boolean,
|
||||
contentCallbacks: ContentCallbacks
|
||||
) {
|
||||
item {
|
||||
@@ -845,6 +847,7 @@ private fun LazyListScope.appendBackupDetailsItems(
|
||||
item {
|
||||
LastBackupRow(
|
||||
lastBackupTimestamp = lastBackupTimestamp,
|
||||
enabled = canBackUpNow,
|
||||
onBackupNowClick = contentCallbacks::onBackupNowClick
|
||||
)
|
||||
}
|
||||
@@ -1421,6 +1424,7 @@ private fun getBackupUploadPhaseProgressString(state: ArchiveUploadProgressState
|
||||
@Composable
|
||||
private fun LastBackupRow(
|
||||
lastBackupTimestamp: Long,
|
||||
enabled: Boolean,
|
||||
onBackupNowClick: () -> Unit
|
||||
) {
|
||||
Row(
|
||||
@@ -1462,7 +1466,7 @@ private fun LastBackupRow(
|
||||
}
|
||||
}
|
||||
|
||||
Buttons.MediumTonal(onClick = onBackupNowClick) {
|
||||
Buttons.MediumTonal(onClick = onBackupNowClick, enabled = enabled) {
|
||||
Text(text = stringResource(id = R.string.RemoteBackupsSettingsFragment__back_up_now))
|
||||
}
|
||||
}
|
||||
@@ -1909,6 +1913,7 @@ private fun LastBackupRowPreview() {
|
||||
Previews.Preview {
|
||||
LastBackupRow(
|
||||
lastBackupTimestamp = -1,
|
||||
enabled = true,
|
||||
onBackupNowClick = {}
|
||||
)
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@ import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.reactive.asFlow
|
||||
import org.signal.core.util.bytes
|
||||
import org.signal.core.util.logging.Log
|
||||
import org.signal.core.util.mebiBytes
|
||||
import org.signal.core.util.throttleLatest
|
||||
import org.signal.donations.InAppPaymentType
|
||||
import org.thoughtcrime.securesms.backup.ArchiveUploadProgress
|
||||
@@ -223,6 +224,25 @@ class RemoteBackupsSettingsViewModel : ViewModel() {
|
||||
}
|
||||
|
||||
private suspend fun performStateRefresh(lastPurchase: InAppPaymentTable.InAppPayment?) {
|
||||
if (BackupRepository.shouldDisplayOutOfStorageSpaceUx()) {
|
||||
val paidType = BackupRepository.getBackupsType(MessageBackupTier.PAID) as? MessageBackupsType.Paid
|
||||
|
||||
if (paidType != null) {
|
||||
val remoteStorageAllowance = paidType.storageAllowanceBytes.bytes
|
||||
val estimatedSize = SignalDatabase.attachments.getEstimatedArchiveMediaSize().bytes
|
||||
|
||||
if (estimatedSize + 300.mebiBytes <= remoteStorageAllowance) {
|
||||
BackupRepository.clearOutOfRemoteStorageError()
|
||||
}
|
||||
|
||||
_state.update {
|
||||
it.copy(
|
||||
totalAllowedStorageSpace = estimatedSize.toUnitString()
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
_state.update {
|
||||
it.copy(
|
||||
tier = SignalStore.backup.backupTier,
|
||||
@@ -237,17 +257,6 @@ class RemoteBackupsSettingsViewModel : ViewModel() {
|
||||
)
|
||||
}
|
||||
|
||||
if (BackupRepository.shouldDisplayOutOfStorageSpaceUx()) {
|
||||
val paidType = BackupRepository.getBackupsType(MessageBackupTier.PAID) as? MessageBackupsType.Paid
|
||||
if (paidType != null) {
|
||||
_state.update {
|
||||
it.copy(
|
||||
totalAllowedStorageSpace = paidType.storageAllowanceBytes.bytes.toUnitString()
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val state = BackupStateRepository.resolveBackupState(lastPurchase)
|
||||
_state.update {
|
||||
it.copy(backupState = state)
|
||||
|
||||
@@ -70,6 +70,7 @@ import org.signal.core.util.Base64
|
||||
import org.signal.core.util.Hex
|
||||
import org.signal.core.util.getLength
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.backup.v2.BackupRepository
|
||||
import org.thoughtcrime.securesms.backup.v2.MessageBackupTier
|
||||
import org.thoughtcrime.securesms.components.settings.app.internal.backup.InternalBackupPlaygroundViewModel.DialogState
|
||||
import org.thoughtcrime.securesms.components.settings.app.internal.backup.InternalBackupPlaygroundViewModel.ScreenState
|
||||
@@ -521,6 +522,13 @@ fun Screen(
|
||||
}
|
||||
)
|
||||
|
||||
Rows.TextRow(
|
||||
text = "Mark out of remote storage space",
|
||||
onClick = {
|
||||
BackupRepository.markOutOfRemoteStorageError()
|
||||
}
|
||||
)
|
||||
|
||||
Spacer(modifier = Modifier.height(8.dp))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user