From e48c1bf20756be501d59d156a06f294e8a6602b5 Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Mon, 3 Jan 2022 12:25:36 -0500 Subject: [PATCH] Fix bad UI state when changing backup status. --- .../components/settings/app/chats/ChatsSettingsFragment.kt | 5 +++++ .../settings/app/chats/ChatsSettingsViewModel.kt | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/ChatsSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/ChatsSettingsFragment.kt index 9ba820e45..9dd30962d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/ChatsSettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/ChatsSettingsFragment.kt @@ -14,6 +14,11 @@ class ChatsSettingsFragment : DSLSettingsFragment(R.string.preferences_chats__ch private lateinit var viewModel: ChatsSettingsViewModel + override fun onResume() { + super.onResume() + viewModel.refresh() + } + override fun bindAdapter(adapter: DSLSettingsAdapter) { val repository = ChatsSettingsRepository() val factory = ChatsSettingsViewModel.Factory(repository) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/ChatsSettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/ChatsSettingsViewModel.kt index b16800250..e22c7294f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/ChatsSettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/ChatsSettingsViewModel.kt @@ -52,6 +52,13 @@ class ChatsSettingsViewModel(private val repository: ChatsSettingsRepository) : SignalStore.settings().isEnterKeySends = enabled } + fun refresh() { + val backupsEnabled = SignalStore.settings().isBackupEnabled && BackupUtil.canUserAccessBackupDirectory(ApplicationDependencies.getApplication()) + if (store.state.chatBackupsEnabled != backupsEnabled) { + store.update { it.copy(chatBackupsEnabled = backupsEnabled) } + } + } + class Factory(private val repository: ChatsSettingsRepository) : ViewModelProvider.Factory { override fun create(modelClass: Class): T { return requireNotNull(modelClass.cast(ChatsSettingsViewModel(repository)))