mirror of
https://github.com/d4rken-org/capod.git
synced 2026-09-14 18:26:11 -04:00
Fix ANR
This commit is contained in:
@@ -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<ListPreference>(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)
|
||||
}
|
||||
|
||||
|
||||
@@ -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")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user