[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:
@@ -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")
|
||||
|
Reference in New Issue
Block a user