[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
|
private var dataSaverBackendListener: DataSaverBackend.Listener? = null
|
||||||
|
|
||||||
override val key
|
override val key
|
||||||
get() = "use_data_saver"
|
get() = KEY
|
||||||
|
|
||||||
override val title
|
override val title
|
||||||
get() = R.string.data_saver_switch_title
|
get() = R.string.data_saver_switch_title
|
||||||
@@ -46,7 +46,7 @@ class DataSaverMainSwitchPreference(context: Context) :
|
|||||||
ReadWritePermit.ALLOW
|
ReadWritePermit.ALLOW
|
||||||
|
|
||||||
override fun onStart(context: PreferenceLifecycleContext) {
|
override fun onStart(context: PreferenceLifecycleContext) {
|
||||||
val listener = DataSaverBackend.Listener { context.notifyPreferenceChange(this) }
|
val listener = DataSaverBackend.Listener { context.notifyPreferenceChange(KEY) }
|
||||||
dataSaverBackendListener = listener
|
dataSaverBackendListener = listener
|
||||||
dataSaverBackend.addListener(listener)
|
dataSaverBackend.addListener(listener)
|
||||||
}
|
}
|
||||||
@@ -71,4 +71,8 @@ class DataSaverMainSwitchPreference(context: Context) :
|
|||||||
dataSaverBackend.isDataSaverEnabled = value as Boolean
|
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 hasCompleteHierarchy() = false
|
||||||
|
|
||||||
override fun onStart(context: PreferenceLifecycleContext) {
|
override fun onStart(context: PreferenceLifecycleContext) {
|
||||||
val listener = DataSaverBackend.Listener { context.notifyPreferenceChange(this) }
|
val listener = DataSaverBackend.Listener { context.notifyPreferenceChange(KEY) }
|
||||||
dataSaverBackendListener = listener
|
dataSaverBackendListener = listener
|
||||||
dataSaverBackend = DataSaverBackend(context).apply { addListener(listener) }
|
dataSaverBackend = DataSaverBackend(context).apply { addListener(listener) }
|
||||||
}
|
}
|
||||||
|
@@ -101,7 +101,7 @@ class AdaptiveSleepPreference :
|
|||||||
val receiver =
|
val receiver =
|
||||||
object : BroadcastReceiver() {
|
object : BroadcastReceiver() {
|
||||||
override fun onReceive(receiverContext: Context, intent: Intent) {
|
override fun onReceive(receiverContext: Context, intent: Intent) {
|
||||||
context.notifyPreferenceChange(this@AdaptiveSleepPreference)
|
context.notifyPreferenceChange(KEY)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
context.registerReceiver(
|
context.registerReceiver(
|
||||||
@@ -111,7 +111,7 @@ class AdaptiveSleepPreference :
|
|||||||
broadcastReceiver = receiver
|
broadcastReceiver = receiver
|
||||||
|
|
||||||
val listener = OnSensorPrivacyChangedListener { _, _ ->
|
val listener = OnSensorPrivacyChangedListener { _, _ ->
|
||||||
context.notifyPreferenceChange(this)
|
context.notifyPreferenceChange(KEY)
|
||||||
}
|
}
|
||||||
SensorPrivacyManager.getInstance(context).addSensorPrivacyListener(CAMERA, listener)
|
SensorPrivacyManager.getInstance(context).addSensorPrivacyListener(CAMERA, listener)
|
||||||
sensorPrivacyChangedListener = listener
|
sensorPrivacyChangedListener = listener
|
||||||
|
@@ -58,7 +58,7 @@ class BrightnessLevelPreference :
|
|||||||
private var displayListener: DisplayListener? = null
|
private var displayListener: DisplayListener? = null
|
||||||
|
|
||||||
override val key: String
|
override val key: String
|
||||||
get() = "brightness"
|
get() = KEY
|
||||||
|
|
||||||
override val title: Int
|
override val title: Int
|
||||||
get() = R.string.brightness
|
get() = R.string.brightness
|
||||||
@@ -85,10 +85,7 @@ class BrightnessLevelPreference :
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onStart(context: PreferenceLifecycleContext) {
|
override fun onStart(context: PreferenceLifecycleContext) {
|
||||||
val observer =
|
val observer = KeyedObserver<String> { _, _ -> context.notifyPreferenceChange(KEY) }
|
||||||
KeyedObserver<String> { _, _ ->
|
|
||||||
context.notifyPreferenceChange(this@BrightnessLevelPreference)
|
|
||||||
}
|
|
||||||
brightnessObserver = observer
|
brightnessObserver = observer
|
||||||
SettingsSystemStore.get(context)
|
SettingsSystemStore.get(context)
|
||||||
.addObserver(System.SCREEN_AUTO_BRIGHTNESS_ADJ, observer, HandlerExecutor.main)
|
.addObserver(System.SCREEN_AUTO_BRIGHTNESS_ADJ, observer, HandlerExecutor.main)
|
||||||
@@ -100,7 +97,7 @@ class BrightnessLevelPreference :
|
|||||||
override fun onDisplayRemoved(displayId: Int) {}
|
override fun onDisplayRemoved(displayId: Int) {}
|
||||||
|
|
||||||
override fun onDisplayChanged(displayId: Int) {
|
override fun onDisplayChanged(displayId: Int) {
|
||||||
context.notifyPreferenceChange(this@BrightnessLevelPreference)
|
context.notifyPreferenceChange(KEY)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
displayListener = listener
|
displayListener = listener
|
||||||
@@ -162,5 +159,9 @@ class BrightnessLevelPreference :
|
|||||||
value < GAMMA_SPACE_MIN -> 0.0
|
value < GAMMA_SPACE_MIN -> 0.0
|
||||||
else -> (value - GAMMA_SPACE_MIN) / (GAMMA_SPACE_MAX - GAMMA_SPACE_MIN)
|
else -> (value - GAMMA_SPACE_MIN) / (GAMMA_SPACE_MAX - GAMMA_SPACE_MIN)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
const val KEY = "brightness"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// LINT.ThenChange(BrightnessLevelPreferenceController.java)
|
// LINT.ThenChange(BrightnessLevelPreferenceController.java)
|
||||||
|
@@ -39,7 +39,7 @@ import kotlin.math.roundToInt
|
|||||||
|
|
||||||
// LINT.IfChange
|
// LINT.IfChange
|
||||||
class PeakRefreshRateSwitchPreference :
|
class PeakRefreshRateSwitchPreference :
|
||||||
SwitchPreference(PEAK_REFRESH_RATE, R.string.peak_refresh_rate_title),
|
SwitchPreference(KEY, R.string.peak_refresh_rate_title),
|
||||||
PreferenceAvailabilityProvider,
|
PreferenceAvailabilityProvider,
|
||||||
PreferenceSummaryProvider,
|
PreferenceSummaryProvider,
|
||||||
PreferenceLifecycleProvider {
|
PreferenceLifecycleProvider {
|
||||||
@@ -69,7 +69,7 @@ class PeakRefreshRateSwitchPreference :
|
|||||||
// KEY_PEAK_REFRESH_RATE_DEFAULT value could be added, changed, removed or
|
// KEY_PEAK_REFRESH_RATE_DEFAULT value could be added, changed, removed or
|
||||||
// unchanged.
|
// unchanged.
|
||||||
// Just force a UI update for any case.
|
// Just force a UI update for any case.
|
||||||
context.notifyPreferenceChange(this)
|
context.notifyPreferenceChange(KEY)
|
||||||
}
|
}
|
||||||
|
|
||||||
propertiesChangedListener = listener
|
propertiesChangedListener = listener
|
||||||
@@ -97,14 +97,13 @@ class PeakRefreshRateSwitchPreference :
|
|||||||
override fun contains(key: String) = settingsStore.contains(key)
|
override fun contains(key: String) = settingsStore.contains(key)
|
||||||
|
|
||||||
override fun <T : Any> getDefaultValue(key: String, valueType: Class<T>): T? {
|
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
|
return context.defaultPeakRefreshRate.refreshRateAsBoolean(context) as T
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun <T : Any> getValue(key: String, valueType: Class<T>): T? {
|
override fun <T : Any> getValue(key: String, valueType: Class<T>): T? {
|
||||||
if (key != PEAK_REFRESH_RATE) return null
|
if (key != KEY) return null
|
||||||
val refreshRate =
|
val refreshRate = settingsStore.getFloat(KEY) ?: context.defaultPeakRefreshRate
|
||||||
settingsStore.getFloat(PEAK_REFRESH_RATE) ?: context.defaultPeakRefreshRate
|
|
||||||
return refreshRate.refreshRateAsBoolean(context) as T
|
return refreshRate.refreshRateAsBoolean(context) as T
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -113,12 +112,12 @@ class PeakRefreshRateSwitchPreference :
|
|||||||
|
|
||||||
override fun <T : Any> setValue(key: String, valueType: Class<T>, value: T?) =
|
override fun <T : Any> setValue(key: String, valueType: Class<T>, value: T?) =
|
||||||
when {
|
when {
|
||||||
key != PEAK_REFRESH_RATE -> {}
|
key != KEY -> {}
|
||||||
value == null -> settingsStore.setFloat(PEAK_REFRESH_RATE, null)
|
value == null -> settingsStore.setFloat(KEY, null)
|
||||||
else -> {
|
else -> {
|
||||||
val peakRefreshRate =
|
val peakRefreshRate =
|
||||||
if (value as Boolean) context.refreshRateIfON() else DEFAULT_REFRESH_RATE
|
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 {
|
companion object {
|
||||||
|
const val KEY = PEAK_REFRESH_RATE
|
||||||
private const val INVALIDATE_REFRESH_RATE: Float = -1f
|
private const val INVALIDATE_REFRESH_RATE: Float = -1f
|
||||||
|
|
||||||
private val Context.peakRefreshRate: Float
|
private val Context.peakRefreshRate: Float
|
||||||
|
@@ -112,7 +112,7 @@ class DarkModeScreen :
|
|||||||
val broadcastReceiver =
|
val broadcastReceiver =
|
||||||
object : BroadcastReceiver() {
|
object : BroadcastReceiver() {
|
||||||
override fun onReceive(receiverContext: Context, intent: Intent) {
|
override fun onReceive(receiverContext: Context, intent: Intent) {
|
||||||
context.notifyPreferenceChange(this@DarkModeScreen)
|
context.notifyPreferenceChange(KEY)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
context.registerReceiver(
|
context.registerReceiver(
|
||||||
@@ -121,7 +121,7 @@ class DarkModeScreen :
|
|||||||
)
|
)
|
||||||
|
|
||||||
val darkModeObserver = DarkModeObserver(context)
|
val darkModeObserver = DarkModeObserver(context)
|
||||||
darkModeObserver.subscribe { context.notifyPreferenceChange(this@DarkModeScreen) }
|
darkModeObserver.subscribe { context.notifyPreferenceChange(KEY) }
|
||||||
|
|
||||||
fragmentStates[context] = FragmentState(broadcastReceiver, darkModeObserver)
|
fragmentStates[context] = FragmentState(broadcastReceiver, darkModeObserver)
|
||||||
}
|
}
|
||||||
|
@@ -59,13 +59,13 @@ class BatterySaverPreference :
|
|||||||
object : BatterySaverListener {
|
object : BatterySaverListener {
|
||||||
override fun onPowerSaveModeChanged() {
|
override fun onPowerSaveModeChanged() {
|
||||||
handler.postDelayed(
|
handler.postDelayed(
|
||||||
{ context.notifyPreferenceChange(this@BatterySaverPreference) },
|
{ context.notifyPreferenceChange(KEY) },
|
||||||
SWITCH_ANIMATION_DURATION,
|
SWITCH_ANIMATION_DURATION,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onBatteryChanged(pluggedIn: Boolean) =
|
override fun onBatteryChanged(pluggedIn: Boolean) =
|
||||||
context.notifyPreferenceChange(this@BatterySaverPreference)
|
context.notifyPreferenceChange(KEY)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
setListening(true)
|
setListening(true)
|
||||||
|
Reference in New Issue
Block a user