[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:
Jacky Wang
2024-11-19 13:31:57 +08:00
parent 75c4dcb39b
commit 83708d4499
7 changed files with 29 additions and 24 deletions

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