[Catalyst] Update PreferenceLifecycleContext.notifyPreferenceChange
Change the signature from metadata to preference key, so that the API could be used to notify other preferences on the same screen. NO_IFTTT=Catalyst only Bug: 332201912 Flag: com.android.settings.flags.catalyst Test: atest Change-Id: Ibdf5f9004471d5491a0be1e84365cbe9f136c373
This commit is contained in:
@@ -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"
|
||||
}
|
||||
}
|
||||
|
@@ -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) }
|
||||
}
|
||||
|
@@ -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
|
||||
|
@@ -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)
|
||||
|
@@ -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
|
||||
|
@@ -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)
|
||||
}
|
||||
|
@@ -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)
|
||||
|
Reference in New Issue
Block a user