[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
This commit is contained in:
Jacky Wang
2024-12-02 16:44:17 +08:00
parent aaee1a1511
commit 0f591ca220

View File

@@ -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")