diff options
author | 2025-01-16 15:10:11 +0800 | |
---|---|---|
committer | 2025-01-16 17:46:47 -0800 | |
commit | 1173d25f195f8ab436b61b0df37e8c1b4e2e9de9 (patch) | |
tree | 7bec2a5e0fe5c65f09bb2e42b4244fccf561c042 | |
parent | 4d82f0c81fc5c97c23033cd182cdce4eebdef57c (diff) |
[Catalyst] Let PersistentPreference extend PreferenceMetadata
Bug: 388167302
Test: atest
Flag: EXEMPT refactor
Change-Id: I690677ffb9951524660825e196dfb7443bd4c3a7
3 files changed, 10 insertions, 12 deletions
diff --git a/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PersistentPreference.kt b/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PersistentPreference.kt index 8e850465ef7d..be705b583974 100644 --- a/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PersistentPreference.kt +++ b/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PersistentPreference.kt @@ -76,7 +76,7 @@ annotation class SensitivityLevel { } /** Preference interface that has a value persisted in datastore. */ -interface PersistentPreference<T> { +interface PersistentPreference<T> : PreferenceMetadata { /** * The value type the preference is associated with. @@ -93,7 +93,7 @@ interface PersistentPreference<T> { * [PreferenceScreenRegistry.getKeyValueStore]. */ fun storage(context: Context): KeyValueStore = - PreferenceScreenRegistry.getKeyValueStore(context, this as PreferenceMetadata)!! + PreferenceScreenRegistry.getKeyValueStore(context, this)!! /** Returns the required permissions to read preference value. */ fun getReadPermissions(context: Context): Permissions? = null @@ -111,7 +111,7 @@ interface PersistentPreference<T> { context, callingPid, callingUid, - this as PreferenceMetadata, + this, ) /** Returns the required permissions to write preference value. */ @@ -136,7 +136,7 @@ interface PersistentPreference<T> { value, callingPid, callingUid, - this as PreferenceMetadata, + this, ) /** The sensitivity level of the preference. */ diff --git a/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PreferenceTypes.kt b/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PreferenceTypes.kt index 623ea22410e5..fecf3e50800a 100644 --- a/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PreferenceTypes.kt +++ b/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PreferenceTypes.kt @@ -30,9 +30,6 @@ interface FloatValuePreference : PersistentPreference<Float> { get() = Float::class.javaObjectType } -/** Common base class for preferences that have two selectable states and save a boolean value. */ -interface TwoStatePreference : PreferenceMetadata, BooleanValuePreference - /** A preference that provides a two-state toggleable option. */ open class SwitchPreference @JvmOverloads @@ -40,9 +37,10 @@ constructor( override val key: String, @StringRes override val title: Int = 0, @StringRes override val summary: Int = 0, -) : TwoStatePreference +) : BooleanValuePreference /** A preference that provides a two-state toggleable option that can be used as a main switch. */ open class MainSwitchPreference @JvmOverloads -constructor(override val key: String, @StringRes override val title: Int = 0) : TwoStatePreference +constructor(override val key: String, @StringRes override val title: Int = 0) : + BooleanValuePreference diff --git a/packages/SettingsLib/Preference/src/com/android/settingslib/preference/PreferenceBindings.kt b/packages/SettingsLib/Preference/src/com/android/settingslib/preference/PreferenceBindings.kt index b82c554ea26a..65fbe2b66e77 100644 --- a/packages/SettingsLib/Preference/src/com/android/settingslib/preference/PreferenceBindings.kt +++ b/packages/SettingsLib/Preference/src/com/android/settingslib/preference/PreferenceBindings.kt @@ -66,7 +66,7 @@ interface PreferenceCategoryBinding : PreferenceBinding { } /** A boolean value type preference associated with the abstract [TwoStatePreference]. */ -interface TwoStatePreferenceBinding : PreferenceBinding { +interface BooleanValuePreferenceBinding : PreferenceBinding { override fun bind(preference: Preference, metadata: PreferenceMetadata) { super.bind(preference, metadata) @@ -78,7 +78,7 @@ interface TwoStatePreferenceBinding : PreferenceBinding { } /** A boolean value type preference associated with [SwitchPreferenceCompat]. */ -interface SwitchPreferenceBinding : TwoStatePreferenceBinding { +interface SwitchPreferenceBinding : BooleanValuePreferenceBinding { override fun createWidget(context: Context): Preference = SwitchPreferenceCompat(context) @@ -88,7 +88,7 @@ interface SwitchPreferenceBinding : TwoStatePreferenceBinding { } /** A boolean value type preference associated with [MainSwitchPreference]. */ -interface MainSwitchPreferenceBinding : TwoStatePreferenceBinding { +interface MainSwitchPreferenceBinding : BooleanValuePreferenceBinding { override fun createWidget(context: Context): Preference = MainSwitchPreference(context) |