From 0f591ca22053e88897a564df0fbf55aa33816b0a Mon Sep 17 00:00:00 2001 From: Jacky Wang Date: Mon, 2 Dec 2024 16:44:17 +0800 Subject: [PATCH] [Catalyst] Use lifecycleScope for BatterySaverPreference NO_IFTTT=Catalyst only Bug: 377993674 Flag: com.android.settings.flags.catalyst_battery_saver_screen Test: manual Change-Id: Ie66882cd74300ced4914cd2c67fe130f66530100 --- .../batterysaver/BatterySaverPreference.kt | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverPreference.kt b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverPreference.kt index 84bba00bab3..93da40dc045 100644 --- a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverPreference.kt +++ b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverPreference.kt @@ -16,8 +16,6 @@ package com.android.settings.fuelgauge.batterysaver import android.content.Context -import android.os.Handler -import android.os.Looper import android.os.PowerManager import com.android.settings.R import com.android.settings.fuelgauge.BatterySaverReceiver @@ -33,6 +31,8 @@ import com.android.settingslib.metadata.PreferenceLifecycleContext import com.android.settingslib.metadata.PreferenceLifecycleProvider import com.android.settingslib.metadata.ReadWritePermit import com.android.settingslib.metadata.SensitivityLevel +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch // LINT.IfChange class BatterySaverPreference : @@ -40,7 +40,6 @@ class BatterySaverPreference : PreferenceLifecycleProvider { private var batterySaverReceiver: BatterySaverReceiver? = null - private val handler by lazy { Handler(Looper.getMainLooper()) } override fun storage(context: Context) = BatterySaverStore(context) @@ -62,10 +61,10 @@ class BatterySaverPreference : setBatterySaverListener( object : BatterySaverListener { override fun onPowerSaveModeChanged() { - handler.postDelayed( - { context.notifyPreferenceChange(KEY) }, - SWITCH_ANIMATION_DURATION, - ) + context.lifecycleScope.launch { + delay(SWITCH_ANIMATION_DURATION) + context.notifyPreferenceChange(KEY) + } } override fun onBatteryChanged(pluggedIn: Boolean) = @@ -79,7 +78,6 @@ class BatterySaverPreference : override fun onStop(context: PreferenceLifecycleContext) { batterySaverReceiver?.setListening(false) batterySaverReceiver = null - handler.removeCallbacksAndMessages(null /* token */) } @Suppress("UNCHECKED_CAST")