diff options
author | 2025-01-15 15:27:26 +0800 | |
---|---|---|
committer | 2025-01-15 22:34:17 -0800 | |
commit | 3054a19bc115cc2fde45d8b12d86f4f1300358d0 (patch) | |
tree | 0de7275e30d024c83a63751783a7a7ee31c96c40 | |
parent | 177b4e451fb05b2c38f41bc88dfc4ae2b94e274e (diff) |
[Catalyst] Introduce FloatValuePreference and BooleanValuePreference
Bug: 388167302
Test: atest and manual
Flag: EXEMPT refactor
Change-Id: I110ce760c10c3e44ae1585e970d1422da1d0fb79
3 files changed, 16 insertions, 14 deletions
diff --git a/packages/SettingsLib/Graph/src/com/android/settingslib/graph/PreferenceGraphBuilder.kt b/packages/SettingsLib/Graph/src/com/android/settingslib/graph/PreferenceGraphBuilder.kt index 8b29b0044eea..ce66a360a99f 100644 --- a/packages/SettingsLib/Graph/src/com/android/settingslib/graph/PreferenceGraphBuilder.kt +++ b/packages/SettingsLib/Graph/src/com/android/settingslib/graph/PreferenceGraphBuilder.kt @@ -40,7 +40,6 @@ import com.android.settingslib.graph.proto.PreferenceProto import com.android.settingslib.graph.proto.PreferenceProto.ActionTarget import com.android.settingslib.graph.proto.PreferenceScreenProto import com.android.settingslib.graph.proto.TextProto -import com.android.settingslib.metadata.FloatPersistentPreference import com.android.settingslib.metadata.PersistentPreference import com.android.settingslib.metadata.PreferenceAvailabilityProvider import com.android.settingslib.metadata.PreferenceHierarchy @@ -410,13 +409,13 @@ fun PreferenceMetadata.toProto( value = preferenceValueProto { when (metadata) { is RangeValue -> storage.getInt(metadata.key)?.let { intValue = it } - is FloatPersistentPreference -> - storage.getFloat(metadata.key)?.let { floatValue = it } else -> {} } when (metadata.valueType) { Boolean::class.javaObjectType -> storage.getBoolean(metadata.key)?.let { booleanValue = it } + Float::class.javaObjectType -> + storage.getFloat(metadata.key)?.let { floatValue = it } } } } @@ -428,12 +427,12 @@ fun PreferenceMetadata.toProto( max = metadata.getMaxValue(context) step = metadata.getIncrementStep(context) } - is FloatPersistentPreference -> floatType = true else -> {} } if (metadata is PersistentPreference<*>) { when (metadata.valueType) { Boolean::class.javaObjectType -> booleanType = true + Float::class.javaObjectType -> floatType = true } } } 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 4cc65815a78a..8e850465ef7d 100644 --- a/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PersistentPreference.kt +++ b/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PersistentPreference.kt @@ -219,12 +219,3 @@ interface RangeValue : ValueDescriptor { override fun isValidValue(context: Context, index: Int) = index in getMinValue(context)..getMaxValue(context) } - -/** A persistent preference that has a boolean value. */ -interface BooleanPreference : PersistentPreference<Boolean> { - override val valueType: Class<Boolean> - get() = Boolean::class.javaObjectType -} - -/** A persistent preference that has a float value. */ -interface FloatPersistentPreference : PersistentPreference<Float> 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 b79a0c4f6381..623ea22410e5 100644 --- a/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PreferenceTypes.kt +++ b/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PreferenceTypes.kt @@ -18,8 +18,20 @@ package com.android.settingslib.metadata import androidx.annotation.StringRes +/** A persistent preference that has a boolean value. */ +interface BooleanValuePreference : PersistentPreference<Boolean> { + override val valueType: Class<Boolean> + get() = Boolean::class.javaObjectType +} + +/** A persistent preference that has a float value. */ +interface FloatValuePreference : PersistentPreference<Float> { + override val valueType: Class<Float> + get() = Float::class.javaObjectType +} + /** Common base class for preferences that have two selectable states and save a boolean value. */ -interface TwoStatePreference : PreferenceMetadata, BooleanPreference +interface TwoStatePreference : PreferenceMetadata, BooleanValuePreference /** A preference that provides a two-state toggleable option. */ open class SwitchPreference |