Merge "[Catalyst] Update PreferenceLifecycleContext.notifyPreferenceChange" into main

This commit is contained in:
Treehugger Robot
2024-11-19 10:39:53 +00:00
committed by Android (Google) Code Review
7 changed files with 29 additions and 24 deletions

View File

@@ -32,7 +32,7 @@ class DataSaverMainSwitchPreference(context: Context) :
private var dataSaverBackendListener: DataSaverBackend.Listener? = null
override val key
get() = "use_data_saver"
get() = KEY
override val title
get() = R.string.data_saver_switch_title
@@ -46,7 +46,7 @@ class DataSaverMainSwitchPreference(context: Context) :
ReadWritePermit.ALLOW
override fun onStart(context: PreferenceLifecycleContext) {
val listener = DataSaverBackend.Listener { context.notifyPreferenceChange(this) }
val listener = DataSaverBackend.Listener { context.notifyPreferenceChange(KEY) }
dataSaverBackendListener = listener
dataSaverBackend.addListener(listener)
}
@@ -71,4 +71,8 @@ class DataSaverMainSwitchPreference(context: Context) :
dataSaverBackend.isDataSaverEnabled = value as Boolean
}
}
companion object {
const val KEY = "use_data_saver"
}
}

View File

@@ -71,7 +71,7 @@ class DataSaverScreen :
override fun hasCompleteHierarchy() = false
override fun onStart(context: PreferenceLifecycleContext) {
val listener = DataSaverBackend.Listener { context.notifyPreferenceChange(this) }
val listener = DataSaverBackend.Listener { context.notifyPreferenceChange(KEY) }
dataSaverBackendListener = listener
dataSaverBackend = DataSaverBackend(context).apply { addListener(listener) }
}

View File

@@ -101,7 +101,7 @@ class AdaptiveSleepPreference :
val receiver =
object : BroadcastReceiver() {
override fun onReceive(receiverContext: Context, intent: Intent) {
context.notifyPreferenceChange(this@AdaptiveSleepPreference)
context.notifyPreferenceChange(KEY)
}
}
context.registerReceiver(
@@ -111,7 +111,7 @@ class AdaptiveSleepPreference :
broadcastReceiver = receiver
val listener = OnSensorPrivacyChangedListener { _, _ ->
context.notifyPreferenceChange(this)
context.notifyPreferenceChange(KEY)
}
SensorPrivacyManager.getInstance(context).addSensorPrivacyListener(CAMERA, listener)
sensorPrivacyChangedListener = listener

View File

@@ -58,7 +58,7 @@ class BrightnessLevelPreference :
private var displayListener: DisplayListener? = null
override val key: String
get() = "brightness"
get() = KEY
override val title: Int
get() = R.string.brightness
@@ -85,10 +85,7 @@ class BrightnessLevelPreference :
}
override fun onStart(context: PreferenceLifecycleContext) {
val observer =
KeyedObserver<String> { _, _ ->
context.notifyPreferenceChange(this@BrightnessLevelPreference)
}
val observer = KeyedObserver<String> { _, _ -> context.notifyPreferenceChange(KEY) }
brightnessObserver = observer
SettingsSystemStore.get(context)
.addObserver(System.SCREEN_AUTO_BRIGHTNESS_ADJ, observer, HandlerExecutor.main)
@@ -100,7 +97,7 @@ class BrightnessLevelPreference :
override fun onDisplayRemoved(displayId: Int) {}
override fun onDisplayChanged(displayId: Int) {
context.notifyPreferenceChange(this@BrightnessLevelPreference)
context.notifyPreferenceChange(KEY)
}
}
displayListener = listener
@@ -162,5 +159,9 @@ class BrightnessLevelPreference :
value < GAMMA_SPACE_MIN -> 0.0
else -> (value - GAMMA_SPACE_MIN) / (GAMMA_SPACE_MAX - GAMMA_SPACE_MIN)
}
companion object {
const val KEY = "brightness"
}
}
// LINT.ThenChange(BrightnessLevelPreferenceController.java)

View File

@@ -39,7 +39,7 @@ import kotlin.math.roundToInt
// LINT.IfChange
class PeakRefreshRateSwitchPreference :
SwitchPreference(PEAK_REFRESH_RATE, R.string.peak_refresh_rate_title),
SwitchPreference(KEY, R.string.peak_refresh_rate_title),
PreferenceAvailabilityProvider,
PreferenceSummaryProvider,
PreferenceLifecycleProvider {
@@ -69,7 +69,7 @@ class PeakRefreshRateSwitchPreference :
// KEY_PEAK_REFRESH_RATE_DEFAULT value could be added, changed, removed or
// unchanged.
// Just force a UI update for any case.
context.notifyPreferenceChange(this)
context.notifyPreferenceChange(KEY)
}
propertiesChangedListener = listener
@@ -97,14 +97,13 @@ class PeakRefreshRateSwitchPreference :
override fun contains(key: String) = settingsStore.contains(key)
override fun <T : Any> getDefaultValue(key: String, valueType: Class<T>): T? {
if (key != PEAK_REFRESH_RATE) return super.getDefaultValue(key, valueType)
if (key != KEY) return super.getDefaultValue(key, valueType)
return context.defaultPeakRefreshRate.refreshRateAsBoolean(context) as T
}
override fun <T : Any> getValue(key: String, valueType: Class<T>): T? {
if (key != PEAK_REFRESH_RATE) return null
val refreshRate =
settingsStore.getFloat(PEAK_REFRESH_RATE) ?: context.defaultPeakRefreshRate
if (key != KEY) return null
val refreshRate = settingsStore.getFloat(KEY) ?: context.defaultPeakRefreshRate
return refreshRate.refreshRateAsBoolean(context) as T
}
@@ -113,12 +112,12 @@ class PeakRefreshRateSwitchPreference :
override fun <T : Any> setValue(key: String, valueType: Class<T>, value: T?) =
when {
key != PEAK_REFRESH_RATE -> {}
value == null -> settingsStore.setFloat(PEAK_REFRESH_RATE, null)
key != KEY -> {}
value == null -> settingsStore.setFloat(KEY, null)
else -> {
val peakRefreshRate =
if (value as Boolean) context.refreshRateIfON() else DEFAULT_REFRESH_RATE
settingsStore.setFloat(PEAK_REFRESH_RATE, peakRefreshRate)
settingsStore.setFloat(KEY, peakRefreshRate)
}
}
@@ -130,6 +129,7 @@ class PeakRefreshRateSwitchPreference :
}
companion object {
const val KEY = PEAK_REFRESH_RATE
private const val INVALIDATE_REFRESH_RATE: Float = -1f
private val Context.peakRefreshRate: Float

View File

@@ -112,7 +112,7 @@ class DarkModeScreen :
val broadcastReceiver =
object : BroadcastReceiver() {
override fun onReceive(receiverContext: Context, intent: Intent) {
context.notifyPreferenceChange(this@DarkModeScreen)
context.notifyPreferenceChange(KEY)
}
}
context.registerReceiver(
@@ -121,7 +121,7 @@ class DarkModeScreen :
)
val darkModeObserver = DarkModeObserver(context)
darkModeObserver.subscribe { context.notifyPreferenceChange(this@DarkModeScreen) }
darkModeObserver.subscribe { context.notifyPreferenceChange(KEY) }
fragmentStates[context] = FragmentState(broadcastReceiver, darkModeObserver)
}

View File

@@ -59,13 +59,13 @@ class BatterySaverPreference :
object : BatterySaverListener {
override fun onPowerSaveModeChanged() {
handler.postDelayed(
{ context.notifyPreferenceChange(this@BatterySaverPreference) },
{ context.notifyPreferenceChange(KEY) },
SWITCH_ANIMATION_DURATION,
)
}
override fun onBatteryChanged(pluggedIn: Boolean) =
context.notifyPreferenceChange(this@BatterySaverPreference)
context.notifyPreferenceChange(KEY)
}
)
setListening(true)