From c23de67cd2944da9cd246a69ec51450969a74d89 Mon Sep 17 00:00:00 2001 From: darken Date: Sat, 9 Apr 2022 14:08:07 +0200 Subject: [PATCH] Fix ANR --- .../reaction/settings/ui/ReactionSettingsFragment.kt | 8 ++++---- .../reaction/settings/ui/ReactionSettingsFragmentVM.kt | 5 +++++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/eu/darken/capod/reaction/settings/ui/ReactionSettingsFragment.kt b/app/src/main/java/eu/darken/capod/reaction/settings/ui/ReactionSettingsFragment.kt index c69e4a7d..f4c033f8 100644 --- a/app/src/main/java/eu/darken/capod/reaction/settings/ui/ReactionSettingsFragment.kt +++ b/app/src/main/java/eu/darken/capod/reaction/settings/ui/ReactionSettingsFragment.kt @@ -12,13 +12,11 @@ import dagger.hilt.android.AndroidEntryPoint import eu.darken.capod.R import eu.darken.capod.common.uix.PreferenceFragment2 import eu.darken.capod.common.upgrade.UpgradeRepo -import eu.darken.capod.common.upgrade.isPro import eu.darken.capod.main.core.GeneralSettings import eu.darken.capod.main.core.MonitorMode import eu.darken.capod.main.ui.settings.general.DeviceSelectionDialogFactory import eu.darken.capod.reaction.autoconnect.AutoConnectCondition import eu.darken.capod.reaction.settings.ReactionSettings -import kotlinx.coroutines.runBlocking import javax.inject.Inject @Keep @@ -36,6 +34,7 @@ class ReactionSettingsFragment : PreferenceFragment2() { override val preferenceFile: Int = R.xml.preferences_reactions + private var isPro: Boolean = false private val autoConnectConditionPref by lazy { findPreference(settings.autoConnectCondition.key)!! } override fun onPreferencesCreated() { @@ -44,12 +43,11 @@ class ReactionSettingsFragment : PreferenceFragment2() { entryValues = AutoConnectCondition.values().map { settings.autoConnectCondition.rawWriter(it) as String } .toTypedArray() } + super.onPreferencesCreated() } override fun onPreferenceTreeClick(preference: Preference): Boolean { - val isPro = runBlocking { upgradeRepo.isPro() } - if (preference.key == reactionSettings.autoPlay.key && !isPro) { preference as CheckBoxPreference upgradeRepo.launchBillingFlow(requireActivity()) @@ -95,6 +93,8 @@ class ReactionSettingsFragment : PreferenceFragment2() { autoConnectConditionPref.isEnabled = it } + vm.isPro.observe2 { isPro = true } + super.onViewCreated(view, savedInstanceState) } diff --git a/app/src/main/java/eu/darken/capod/reaction/settings/ui/ReactionSettingsFragmentVM.kt b/app/src/main/java/eu/darken/capod/reaction/settings/ui/ReactionSettingsFragmentVM.kt index 91b3a5b4..3f58342f 100644 --- a/app/src/main/java/eu/darken/capod/reaction/settings/ui/ReactionSettingsFragmentVM.kt +++ b/app/src/main/java/eu/darken/capod/reaction/settings/ui/ReactionSettingsFragmentVM.kt @@ -6,6 +6,8 @@ import eu.darken.capod.common.bluetooth.BluetoothManager2 import eu.darken.capod.common.coroutine.DispatcherProvider import eu.darken.capod.common.debug.logging.logTag import eu.darken.capod.common.uix.ViewModel3 +import eu.darken.capod.common.upgrade.UpgradeRepo +import kotlinx.coroutines.flow.map import javax.inject.Inject @HiltViewModel @@ -13,10 +15,13 @@ class ReactionSettingsFragmentVM @Inject constructor( private val handle: SavedStateHandle, private val dispatcherProvider: DispatcherProvider, private val bluetoothManager: BluetoothManager2, + private val upgradeRepo: UpgradeRepo, ) : ViewModel3(dispatcherProvider) { val bondedDevices = bluetoothManager.bondedDevices().toList() + val isPro = upgradeRepo.upgradeInfo.map { it.isPro }.asLiveData2() + companion object { private val TAG = logTag("Settings", "Reaction", "VM") }