From 84f84ca8c039b42b05d60597be32700c5634ff56 Mon Sep 17 00:00:00 2001 From: Jacky Wang Date: Tue, 11 Mar 2025 00:47:02 +0800 Subject: [PATCH] [Catalyst] Use KeyValueStoreDelegate NO_IFTTT=Catalyst only Bug: 388167106 Flag: com.android.settings.flags.catalyst Test: manual Change-Id: I3d04e1bf2620fe7f910fe63f22c17da290e9172d --- .../VibrationMainSwitchPreference.kt | 13 +++----- .../display/AdaptiveSleepPreference.kt | 13 +++----- .../BatteryPercentageSwitchPreference.kt | 17 +++------- .../PeakRefreshRateSwitchPreference.kt | 17 ++++------ .../AdaptiveConnectivityTogglePreference.kt | 21 ++++++------ .../network/AirplaneModePreference.kt | 13 +++----- ...MediaControlsLockscreenSwitchPreference.kt | 33 ++++++++----------- .../settings/sound/MediaControlsScreen.kt | 24 +++++--------- 8 files changed, 58 insertions(+), 93 deletions(-) diff --git a/src/com/android/settings/accessibility/VibrationMainSwitchPreference.kt b/src/com/android/settings/accessibility/VibrationMainSwitchPreference.kt index c488e27b700..4008ceea43b 100644 --- a/src/com/android/settings/accessibility/VibrationMainSwitchPreference.kt +++ b/src/com/android/settings/accessibility/VibrationMainSwitchPreference.kt @@ -25,7 +25,7 @@ import com.android.settings.R import com.android.settings.contract.KEY_VIBRATION_HAPTICS import com.android.settings.metrics.PreferenceActionMetricsProvider import com.android.settingslib.datastore.KeyValueStore -import com.android.settingslib.datastore.KeyedObservableDelegate +import com.android.settingslib.datastore.KeyValueStoreDelegate import com.android.settingslib.datastore.SettingsSystemStore import com.android.settingslib.metadata.BooleanValuePreference import com.android.settingslib.metadata.PreferenceMetadata @@ -96,18 +96,13 @@ class VibrationMainSwitchPreference : class VibrationMainSwitchStore( context: Context, private val settingsStore: KeyValueStore = SettingsSystemStore.get(context), -) : KeyedObservableDelegate(settingsStore), KeyValueStore { +) : KeyValueStoreDelegate { - override fun contains(key: String) = settingsStore.contains(key) + override val keyValueStoreDelegate + get() = settingsStore override fun getDefaultValue(key: String, valueType: Class) = DEFAULT_VALUE as T - override fun getValue(key: String, valueType: Class) = - settingsStore.getValue(key, valueType) ?: getDefaultValue(key, valueType) - - override fun setValue(key: String, valueType: Class, value: T?) = - settingsStore.setValue(key, valueType, value) - companion object { private const val DEFAULT_VALUE = true } diff --git a/src/com/android/settings/display/AdaptiveSleepPreference.kt b/src/com/android/settings/display/AdaptiveSleepPreference.kt index a38925c5458..32f805faacf 100644 --- a/src/com/android/settings/display/AdaptiveSleepPreference.kt +++ b/src/com/android/settings/display/AdaptiveSleepPreference.kt @@ -33,9 +33,8 @@ import com.android.settings.metrics.PreferenceActionMetricsProvider import com.android.settings.restriction.PreferenceRestrictionMixin import com.android.settingslib.RestrictedSwitchPreference import com.android.settingslib.datastore.KeyValueStore -import com.android.settingslib.datastore.KeyedObservableDelegate +import com.android.settingslib.datastore.KeyValueStoreDelegate import com.android.settingslib.datastore.SettingsSecureStore -import com.android.settingslib.datastore.SettingsStore import com.android.settingslib.metadata.BooleanValuePreference import com.android.settingslib.metadata.PreferenceAvailabilityProvider import com.android.settingslib.metadata.PreferenceLifecycleContext @@ -106,16 +105,14 @@ class AdaptiveSleepPreference : @Suppress("UNCHECKED_CAST") private class Storage( private val context: Context, - private val settingsStore: SettingsStore = SettingsSecureStore.get(context), - ) : KeyedObservableDelegate(settingsStore), KeyValueStore { + private val settingsStore: KeyValueStore = SettingsSecureStore.get(context), + ) : KeyValueStoreDelegate { - override fun contains(key: String) = settingsStore.contains(key) + override val keyValueStoreDelegate + get() = settingsStore override fun getValue(key: String, valueType: Class) = (context.canBeEnabled() && settingsStore.getBoolean(key) == true) as T - - override fun setValue(key: String, valueType: Class, value: T?) = - settingsStore.setBoolean(key, value as Boolean?) } override fun onStart(context: PreferenceLifecycleContext) { diff --git a/src/com/android/settings/display/BatteryPercentageSwitchPreference.kt b/src/com/android/settings/display/BatteryPercentageSwitchPreference.kt index 2ce643609dc..26d1c946d02 100644 --- a/src/com/android/settings/display/BatteryPercentageSwitchPreference.kt +++ b/src/com/android/settings/display/BatteryPercentageSwitchPreference.kt @@ -23,8 +23,7 @@ import com.android.settings.Utils import com.android.settings.contract.KEY_BATTERY_PERCENTAGE import com.android.settings.metrics.PreferenceActionMetricsProvider import com.android.settingslib.datastore.KeyValueStore -import com.android.settingslib.datastore.KeyedObservableDelegate -import com.android.settingslib.datastore.SettingsStore +import com.android.settingslib.datastore.KeyValueStoreDelegate import com.android.settingslib.datastore.SettingsSystemStore import com.android.settingslib.metadata.PreferenceAvailabilityProvider import com.android.settingslib.metadata.ReadWritePermit @@ -71,17 +70,11 @@ class BatteryPercentageSwitchPreference : @Suppress("UNCHECKED_CAST") private class BatteryPercentageStorage( private val context: Context, - private val settingsStore: SettingsStore, - ) : KeyedObservableDelegate(settingsStore), KeyValueStore { + private val settingsStore: KeyValueStore, + ) : KeyValueStoreDelegate { - override fun contains(key: String) = settingsStore.contains(KEY) - - override fun getValue(key: String, valueType: Class) = - (settingsStore.getBoolean(key) ?: getDefaultValue(key, valueType)) as T - - override fun setValue(key: String, valueType: Class, value: T?) { - settingsStore.setBoolean(key, value as Boolean) - } + override val keyValueStoreDelegate + get() = settingsStore override fun getDefaultValue(key: String, valueType: Class) = context.resources.getBoolean( diff --git a/src/com/android/settings/display/PeakRefreshRateSwitchPreference.kt b/src/com/android/settings/display/PeakRefreshRateSwitchPreference.kt index ee538db2d36..8f1f9b5a477 100644 --- a/src/com/android/settings/display/PeakRefreshRateSwitchPreference.kt +++ b/src/com/android/settings/display/PeakRefreshRateSwitchPreference.kt @@ -29,8 +29,7 @@ import com.android.settings.contract.KEY_SMOOTH_DISPLAY import com.android.settings.metrics.PreferenceActionMetricsProvider import com.android.settingslib.datastore.HandlerExecutor import com.android.settingslib.datastore.KeyValueStore -import com.android.settingslib.datastore.KeyedObservableDelegate -import com.android.settingslib.datastore.SettingsStore +import com.android.settingslib.datastore.KeyValueStoreDelegate import com.android.settingslib.datastore.SettingsSystemStore import com.android.settingslib.metadata.PreferenceAvailabilityProvider import com.android.settingslib.metadata.PreferenceLifecycleContext @@ -112,18 +111,16 @@ class PeakRefreshRateSwitchPreference : @Suppress("UNCHECKED_CAST") private class PeakRefreshRateStore( private val context: Context, - private val settingsStore: SettingsStore, - ) : KeyedObservableDelegate(settingsStore), KeyValueStore { + private val settingsStore: KeyValueStore, + ) : KeyValueStoreDelegate { - override fun contains(key: String) = settingsStore.contains(key) + override val keyValueStoreDelegate + get() = settingsStore - override fun getDefaultValue(key: String, valueType: Class): T? { - if (key != KEY) return super.getDefaultValue(key, valueType) - return context.defaultPeakRefreshRate.refreshRateAsBoolean(context) as T - } + override fun getDefaultValue(key: String, valueType: Class) = + context.defaultPeakRefreshRate.refreshRateAsBoolean(context) as T override fun getValue(key: String, valueType: Class): T? { - if (key != KEY) return null val refreshRate = settingsStore.getFloat(KEY) ?: context.defaultPeakRefreshRate return refreshRate.refreshRateAsBoolean(context) as T } diff --git a/src/com/android/settings/network/AdaptiveConnectivityTogglePreference.kt b/src/com/android/settings/network/AdaptiveConnectivityTogglePreference.kt index 80f1d00146a..d4959677e87 100644 --- a/src/com/android/settings/network/AdaptiveConnectivityTogglePreference.kt +++ b/src/com/android/settings/network/AdaptiveConnectivityTogglePreference.kt @@ -24,9 +24,8 @@ import com.android.settings.R import com.android.settings.contract.KEY_ADAPTIVE_CONNECTIVITY import com.android.settings.metrics.PreferenceActionMetricsProvider import com.android.settingslib.datastore.KeyValueStore -import com.android.settingslib.datastore.KeyedObservableDelegate +import com.android.settingslib.datastore.KeyValueStoreDelegate import com.android.settingslib.datastore.SettingsSecureStore -import com.android.settingslib.datastore.SettingsStore import com.android.settingslib.metadata.MainSwitchPreference import com.android.settingslib.metadata.ReadWritePermit import com.android.settingslib.metadata.SensitivityLevel @@ -42,7 +41,7 @@ class AdaptiveConnectivityTogglePreference : override fun tags(context: Context) = arrayOf(KEY_ADAPTIVE_CONNECTIVITY) override fun storage(context: Context): KeyValueStore = - AdaptiveConnectivityToggleStorage(context, SettingsSecureStore.get(context)) + AdaptiveConnectivityToggleStorage(context) override fun getReadPermissions(context: Context) = SettingsSecureStore.getReadPermissions() @@ -64,20 +63,20 @@ class AdaptiveConnectivityTogglePreference : @Suppress("UNCHECKED_CAST") private class AdaptiveConnectivityToggleStorage( private val context: Context, - private val settingsStore: SettingsStore, - ) : KeyedObservableDelegate(settingsStore), KeyValueStore { + private val settingsStore: KeyValueStore = SettingsSecureStore.get(context), + ) : KeyValueStoreDelegate { - override fun contains(key: String) = settingsStore.contains(KEY) + override val keyValueStoreDelegate + get() = settingsStore override fun getDefaultValue(key: String, valueType: Class) = DEFAULT_VALUE as T - override fun getValue(key: String, valueType: Class) = - (settingsStore.getBoolean(key) ?: DEFAULT_VALUE) as T - override fun setValue(key: String, valueType: Class, value: T?) { - settingsStore.setBoolean(key, value as Boolean) - context.getSystemService(WifiManager::class.java)?.setWifiScoringEnabled(value) + settingsStore.setValue(key, valueType, value) + context + .getSystemService(WifiManager::class.java) + ?.setWifiScoringEnabled((value as Boolean?) ?: DEFAULT_VALUE) } } diff --git a/src/com/android/settings/network/AirplaneModePreference.kt b/src/com/android/settings/network/AirplaneModePreference.kt index de2eb1a43f1..5a0dd5a613d 100644 --- a/src/com/android/settings/network/AirplaneModePreference.kt +++ b/src/com/android/settings/network/AirplaneModePreference.kt @@ -36,9 +36,8 @@ import com.android.settings.network.SatelliteRepository.Companion.isSatelliteOn import com.android.settings.restriction.PreferenceRestrictionMixin import com.android.settingslib.RestrictedSwitchPreference import com.android.settingslib.datastore.KeyValueStore -import com.android.settingslib.datastore.KeyedObservableDelegate +import com.android.settingslib.datastore.KeyValueStoreDelegate import com.android.settingslib.datastore.SettingsGlobalStore -import com.android.settingslib.datastore.SettingsStore import com.android.settingslib.metadata.PreferenceAvailabilityProvider import com.android.settingslib.metadata.PreferenceLifecycleContext import com.android.settingslib.metadata.PreferenceLifecycleProvider @@ -92,17 +91,15 @@ class AirplaneModePreference : @Suppress("UNCHECKED_CAST") private class AirplaneModeStorage( private val context: Context, - private val settingsStore: SettingsStore = SettingsGlobalStore.get(context), - ) : KeyedObservableDelegate(settingsStore), KeyValueStore { + private val settingsStore: KeyValueStore = SettingsGlobalStore.get(context), + ) : KeyValueStoreDelegate { - override fun contains(key: String) = settingsStore.contains(KEY) + override val keyValueStoreDelegate + get() = settingsStore override fun getDefaultValue(key: String, valueType: Class) = DEFAULT_VALUE as T - override fun getValue(key: String, valueType: Class): T = - (settingsStore.getBoolean(key) ?: DEFAULT_VALUE) as T - override fun setValue(key: String, valueType: Class, value: T?) { settingsStore.setValue(key, valueType, value) diff --git a/src/com/android/settings/sound/MediaControlsLockscreenSwitchPreference.kt b/src/com/android/settings/sound/MediaControlsLockscreenSwitchPreference.kt index 59c1b8f97c1..2d70b83ef31 100644 --- a/src/com/android/settings/sound/MediaControlsLockscreenSwitchPreference.kt +++ b/src/com/android/settings/sound/MediaControlsLockscreenSwitchPreference.kt @@ -18,22 +18,21 @@ package com.android.settings.sound import android.content.Context import android.provider.Settings.Secure.MEDIA_CONTROLS_LOCK_SCREEN - +import com.android.settings.R import com.android.settingslib.datastore.KeyValueStore -import com.android.settingslib.datastore.KeyedObservableDelegate +import com.android.settingslib.datastore.KeyValueStoreDelegate import com.android.settingslib.datastore.SettingsSecureStore -import com.android.settingslib.datastore.SettingsStore import com.android.settingslib.metadata.ReadWritePermit import com.android.settingslib.metadata.SensitivityLevel import com.android.settingslib.metadata.SwitchPreference -import com.android.settings.R // LINT.IfChange -class MediaControlsLockscreenSwitchPreference : SwitchPreference( - KEY, - R.string.media_controls_lockscreen_title, - R.string.media_controls_lockscreen_description, -) { +class MediaControlsLockscreenSwitchPreference : + SwitchPreference( + KEY, + R.string.media_controls_lockscreen_title, + R.string.media_controls_lockscreen_description, + ) { override val sensitivityLevel get() = SensitivityLevel.NO_SENSITIVITY @@ -52,21 +51,17 @@ class MediaControlsLockscreenSwitchPreference : SwitchPreference( MediaControlsLockscreenStore(SettingsSecureStore.get(context)) @Suppress("UNCHECKED_CAST") - private class MediaControlsLockscreenStore(private val settingsStore: SettingsStore) : - KeyedObservableDelegate(settingsStore), KeyValueStore { - override fun contains(key: String) = settingsStore.contains(key) + private class MediaControlsLockscreenStore(private val settingsStore: KeyValueStore) : + KeyValueStoreDelegate { + + override val keyValueStoreDelegate + get() = settingsStore override fun getDefaultValue(key: String, valueType: Class) = true as T - - override fun getValue(key: String, valueType: Class) = - settingsStore.getValue(key, valueType) ?: getDefaultValue(key, valueType) - - override fun setValue(key: String, valueType: Class, value: T?) = - settingsStore.setValue(key, valueType, value) } companion object { const val KEY = MEDIA_CONTROLS_LOCK_SCREEN } } -// LINT.ThenChange(MediaControlsLockScreenPreferenceController.java) \ No newline at end of file +// LINT.ThenChange(MediaControlsLockScreenPreferenceController.java) diff --git a/src/com/android/settings/sound/MediaControlsScreen.kt b/src/com/android/settings/sound/MediaControlsScreen.kt index d63259c641c..f9c2f64d40d 100644 --- a/src/com/android/settings/sound/MediaControlsScreen.kt +++ b/src/com/android/settings/sound/MediaControlsScreen.kt @@ -17,21 +17,18 @@ package com.android.settings.sound import android.content.Context - import com.android.settings.R import com.android.settings.flags.Flags import com.android.settingslib.datastore.AbstractKeyedDataObservable import com.android.settingslib.datastore.HandlerExecutor -import com.android.settingslib.datastore.KeyedObserver import com.android.settingslib.datastore.KeyValueStore -import com.android.settingslib.datastore.KeyedObservableDelegate +import com.android.settingslib.datastore.KeyValueStoreDelegate +import com.android.settingslib.datastore.KeyedObserver import com.android.settingslib.datastore.SettingsSecureStore -import com.android.settingslib.datastore.SettingsStore import com.android.settingslib.metadata.PreferenceChangeReason -import com.android.settingslib.metadata.ProvidePreferenceScreen import com.android.settingslib.metadata.PreferenceSummaryProvider +import com.android.settingslib.metadata.ProvidePreferenceScreen import com.android.settingslib.metadata.preferenceHierarchy - import com.android.settingslib.preference.PreferenceScreenCreator // LINT.IfChange @@ -83,21 +80,16 @@ class MediaControlsScreen(context: Context) : } @Suppress("UNCHECKED_CAST") - class MediaControlsStore(private val settingsStore: SettingsStore) : - KeyedObservableDelegate(settingsStore), KeyValueStore { - override fun contains(key: String) = settingsStore.contains(key) + class MediaControlsStore(private val settingsStore: KeyValueStore) : KeyValueStoreDelegate { + + override val keyValueStoreDelegate + get() = settingsStore override fun getDefaultValue(key: String, valueType: Class) = true as T - - override fun getValue(key: String, valueType: Class) = - settingsStore.getValue(key, valueType) ?: getDefaultValue(key, valueType) - - override fun setValue(key: String, valueType: Class, value: T?) = - settingsStore.setValue(key, valueType, value) } companion object { const val KEY = "media_controls" } } -// LINT.ThenChange(MediaControlsSettings.java) \ No newline at end of file +// LINT.ThenChange(MediaControlsSettings.java)