mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-22 09:49:30 +01:00
Calculate remote backup media quota usage locally.
This commit is contained in:
committed by
Greyson Parrelli
parent
efa9dd6ec3
commit
882a11c420
@@ -25,6 +25,7 @@ import org.signal.core.util.billing.BillingPurchaseResult
|
||||
import org.signal.core.util.bytes
|
||||
import org.signal.core.util.logging.Log
|
||||
import org.signal.core.util.money.FiatMoney
|
||||
import org.signal.core.util.throttleLatest
|
||||
import org.signal.donations.InAppPaymentType
|
||||
import org.thoughtcrime.securesms.backup.ArchiveUploadProgress
|
||||
import org.thoughtcrime.securesms.backup.DeletionState
|
||||
@@ -39,6 +40,7 @@ import org.thoughtcrime.securesms.components.settings.app.subscription.InAppPaym
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.RecurringInAppPaymentRepository
|
||||
import org.thoughtcrime.securesms.database.InAppPaymentTable
|
||||
import org.thoughtcrime.securesms.database.SignalDatabase
|
||||
import org.thoughtcrime.securesms.database.attachmentUpdates
|
||||
import org.thoughtcrime.securesms.database.model.InAppPaymentSubscriberRecord
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies
|
||||
import org.thoughtcrime.securesms.jobs.BackupMessagesJob
|
||||
@@ -63,7 +65,6 @@ class RemoteBackupsSettingsViewModel : ViewModel() {
|
||||
RemoteBackupsSettingsState(
|
||||
backupsEnabled = SignalStore.backup.areBackupsEnabled,
|
||||
lastBackupTimestamp = SignalStore.backup.lastBackupTime,
|
||||
backupMediaSize = SignalStore.backup.totalBackupSize,
|
||||
backupsFrequency = SignalStore.backup.backupFrequency,
|
||||
canBackUpUsingCellular = SignalStore.backup.backupWithCellular,
|
||||
canRestoreUsingCellular = SignalStore.backup.restoreWithCellular
|
||||
@@ -77,6 +78,10 @@ class RemoteBackupsSettingsViewModel : ViewModel() {
|
||||
val restoreState: StateFlow<BackupRestoreState> = _restoreState
|
||||
|
||||
init {
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
_state.update { it.copy(backupMediaSize = SignalDatabase.attachments.getEstimatedArchiveMediaSize()) }
|
||||
}
|
||||
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
SignalStore.backup.deletionStateFlow.collectLatest {
|
||||
refresh()
|
||||
@@ -91,6 +96,16 @@ class RemoteBackupsSettingsViewModel : ViewModel() {
|
||||
}
|
||||
}
|
||||
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
AppDependencies
|
||||
.databaseObserver
|
||||
.attachmentUpdates()
|
||||
.throttleLatest(5.seconds)
|
||||
.collectLatest {
|
||||
_state.update { it.copy(backupMediaSize = SignalDatabase.attachments.getEstimatedArchiveMediaSize()) }
|
||||
}
|
||||
}
|
||||
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
val restoreProgress = MediaRestoreProgressBanner()
|
||||
|
||||
@@ -222,7 +237,7 @@ class RemoteBackupsSettingsViewModel : ViewModel() {
|
||||
backupsEnabled = SignalStore.backup.areBackupsEnabled,
|
||||
backupState = RemoteBackupsSettingsState.BackupState.Loading,
|
||||
lastBackupTimestamp = SignalStore.backup.lastBackupTime,
|
||||
backupMediaSize = SignalStore.backup.totalBackupSize,
|
||||
backupMediaSize = SignalDatabase.attachments.getEstimatedArchiveMediaSize(),
|
||||
backupsFrequency = SignalStore.backup.backupFrequency,
|
||||
canBackUpUsingCellular = SignalStore.backup.backupWithCellular,
|
||||
canRestoreUsingCellular = SignalStore.backup.restoreWithCellular
|
||||
@@ -392,7 +407,4 @@ class RemoteBackupsSettingsViewModel : ViewModel() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun refreshLocalState() {
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user