@@ -34,13 +34,10 @@ import androidx.compose.material.OutlinedButton
34
34
import androidx.compose.material.Switch
35
35
import androidx.compose.material.Text
36
36
import androidx.compose.runtime.Composable
37
- import androidx.compose.runtime.DisposableEffect
38
37
import androidx.compose.runtime.LaunchedEffect
39
38
import androidx.compose.runtime.MutableState
40
39
import androidx.compose.runtime.getValue
41
40
import androidx.compose.runtime.livedata.observeAsState
42
- import androidx.compose.runtime.mutableStateOf
43
- import androidx.compose.runtime.remember
44
41
import androidx.compose.runtime.setValue
45
42
import androidx.compose.ui.Alignment
46
43
import androidx.compose.ui.Modifier
@@ -329,11 +326,11 @@ class BatteryOptimizationsFragment: Fragment() {
329
326
val isWhitelisted = MutableLiveData <Boolean >()
330
327
val dontShowBattery: MutableState <Boolean >
331
328
@Composable
332
- get() = observePreference (key = HINT_BATTERY_OPTIMIZATIONS ) { it == false }
329
+ get() = settings.observeBoolean (key = HINT_BATTERY_OPTIMIZATIONS ) { it == false }
333
330
334
331
val dontShowAutostart: MutableState <Boolean >
335
332
@Composable
336
- get() = observePreference (key = HINT_AUTOSTART_PERMISSION ) { it == false }
333
+ get() = settings.observeBoolean (key = HINT_AUTOSTART_PERMISSION ) { it == false }
337
334
338
335
fun checkWhitelisted () {
339
336
val whitelisted = isWhitelisted(getApplication())
@@ -344,37 +341,6 @@ class BatteryOptimizationsFragment: Fragment() {
344
341
if (whitelisted)
345
342
settings.remove(HINT_BATTERY_OPTIMIZATIONS )
346
343
}
347
-
348
- @Composable
349
- private fun observePreference (
350
- key : String ,
351
- map : (Boolean? ) -> Boolean = { it == true }
352
- ): MutableState <Boolean > {
353
- val state = remember {
354
- mutableStateOf(
355
- settings.getBooleanOrNull(key).let (map)
356
- )
357
- }
358
- DisposableEffect (Unit ) {
359
- val observer = object : SettingsManager .OnChangeListener {
360
- override fun onSettingsChanged () {
361
- state.value = settings.getBooleanOrNull(key).let (map)
362
- }
363
- }
364
- settings.addOnChangeListener(observer)
365
- onDispose {
366
- settings.removeOnChangeListener(observer)
367
- }
368
- }
369
- LaunchedEffect (state) {
370
- val value = settings.getBooleanOrNull(key).let (map)
371
- if (state.value != value) {
372
- settings.putBoolean(key, state.value.let (map))
373
- }
374
- }
375
- return state
376
- }
377
-
378
344
}
379
345
380
346
0 commit comments