diff options
author | 2024-12-08 19:18:43 +0800 | |
---|---|---|
committer | 2024-12-08 19:18:43 +0800 | |
commit | bfb0a0892a14d35dcd022476a4dd4f95c7ff7647 (patch) | |
tree | ea6423b025238523e28e1783bd9fdeb414e85c15 | |
parent | 0b3b6a6596a28628b8c27bacd4f66af946071090 (diff) |
[Catalyst] Move common APIs from SettingsStore to KeyValueStore
Bug: 325144964
Flag: EXEMPT library
Test: atest
Change-Id: Id4c9c44667cafedcc7fea492a066c5371738eb81
6 files changed, 50 insertions, 65 deletions
diff --git a/packages/SettingsLib/DataStore/src/com/android/settingslib/datastore/KeyValueStore.kt b/packages/SettingsLib/DataStore/src/com/android/settingslib/datastore/KeyValueStore.kt index 5f1f8df02bbc..472ffa9289a7 100644 --- a/packages/SettingsLib/DataStore/src/com/android/settingslib/datastore/KeyValueStore.kt +++ b/packages/SettingsLib/DataStore/src/com/android/settingslib/datastore/KeyValueStore.kt @@ -47,6 +47,37 @@ interface KeyValueStore : KeyedObservable<String> { * @param value value to set, null means remove */ fun <T : Any> setValue(key: String, valueType: Class<T>, value: T?) + + /** Gets the boolean value of given key. */ + fun getBoolean(key: String): Boolean? = getValue(key, Boolean::class.javaObjectType) + + /** Sets boolean value for given key, null value means delete the key from data store. */ + fun setBoolean(key: String, value: Boolean?) = + setValue(key, Boolean::class.javaObjectType, value) + + /** Gets the float value of given key. */ + fun getFloat(key: String): Float? = getValue(key, Float::class.javaObjectType) + + /** Sets float value for given key, null value means delete the key from data store. */ + fun setFloat(key: String, value: Float?) = setValue(key, Float::class.javaObjectType, value) + + /** Gets the int value of given key. */ + fun getInt(key: String): Int? = getValue(key, Int::class.javaObjectType) + + /** Sets int value for given key, null value means delete the key from data store. */ + fun setInt(key: String, value: Int?) = setValue(key, Int::class.javaObjectType, value) + + /** Gets the long value of given key. */ + fun getLong(key: String): Long? = getValue(key, Long::class.javaObjectType) + + /** Sets long value for given key, null value means delete the key from data store. */ + fun setLong(key: String, value: Long?) = setValue(key, Long::class.javaObjectType, value) + + /** Gets the string value of given key. */ + fun getString(key: String): String? = getValue(key, String::class.javaObjectType) + + /** Sets string value for given key, null value means delete the key from data store. */ + fun setString(key: String, value: String?) = setValue(key, String::class.javaObjectType, value) } /** [SharedPreferences] based [KeyValueStore]. */ diff --git a/packages/SettingsLib/DataStore/src/com/android/settingslib/datastore/SettingsStore.kt b/packages/SettingsLib/DataStore/src/com/android/settingslib/datastore/SettingsStore.kt index d6e7a896eb63..3f1a499807dd 100644 --- a/packages/SettingsLib/DataStore/src/com/android/settingslib/datastore/SettingsStore.kt +++ b/packages/SettingsLib/DataStore/src/com/android/settingslib/datastore/SettingsStore.kt @@ -50,37 +50,6 @@ abstract class SettingsStore(protected val contentResolver: ContentResolver) : contentResolver.unregisterContentObserver(contentObserver) } - /** Gets the boolean value of given key. */ - fun getBoolean(key: String): Boolean? = getValue(key, Boolean::class.javaObjectType) - - /** Sets boolean value for given key, null value means delete the key from data store. */ - fun setBoolean(key: String, value: Boolean?) = - setValue(key, Boolean::class.javaObjectType, value) - - /** Gets the float value of given key. */ - fun getFloat(key: String): Float? = getValue(key, Float::class.javaObjectType) - - /** Sets float value for given key, null value means delete the key from data store. */ - fun setFloat(key: String, value: Float?) = setValue(key, Float::class.javaObjectType, value) - - /** Gets the int value of given key. */ - fun getInt(key: String): Int? = getValue(key, Int::class.javaObjectType) - - /** Sets int value for given key, null value means delete the key from data store. */ - fun setInt(key: String, value: Int?) = setValue(key, Int::class.javaObjectType, value) - - /** Gets the long value of given key. */ - fun getLong(key: String): Long? = getValue(key, Long::class.javaObjectType) - - /** Sets long value for given key, null value means delete the key from data store. */ - fun setLong(key: String, value: Long?) = setValue(key, Long::class.javaObjectType, value) - - /** Gets the string value of given key. */ - fun getString(key: String): String? = getValue(key, String::class.javaObjectType) - - /** Sets string value for given key, null value means delete the key from data store. */ - fun setString(key: String, value: String?) = setValue(key, String::class.javaObjectType, value) - /** Tag for logging. */ abstract val tag: String } 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 a768b5edb395..606710e6f356 100644 --- a/packages/SettingsLib/Graph/src/com/android/settingslib/graph/PreferenceGraphBuilder.kt +++ b/packages/SettingsLib/Graph/src/com/android/settingslib/graph/PreferenceGraphBuilder.kt @@ -55,9 +55,9 @@ import com.android.settingslib.metadata.RangeValue import com.android.settingslib.metadata.ReadWritePermit import com.android.settingslib.preference.PreferenceScreenFactory import com.android.settingslib.preference.PreferenceScreenProvider +import java.util.Locale import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext -import java.util.Locale private const val TAG = "PreferenceGraphBuilder" @@ -399,15 +399,11 @@ fun PreferenceMetadata.toProto( value = preferenceValueProto { when (metadata) { is BooleanValue -> - metadata - .storage(context) - .getValue(metadata.key, Boolean::class.javaObjectType) - ?.let { booleanValue = it } + metadata.storage(context).getBoolean(metadata.key)?.let { + booleanValue = it + } is RangeValue -> { - metadata - .storage(context) - .getValue(metadata.key, Int::class.javaObjectType) - ?.let { intValue = it } + metadata.storage(context).getInt(metadata.key)?.let { intValue = it } } else -> {} } diff --git a/packages/SettingsLib/Graph/src/com/android/settingslib/graph/PreferenceSetterApi.kt b/packages/SettingsLib/Graph/src/com/android/settingslib/graph/PreferenceSetterApi.kt index 7cfce0d85cd4..56b169370e47 100644 --- a/packages/SettingsLib/Graph/src/com/android/settingslib/graph/PreferenceSetterApi.kt +++ b/packages/SettingsLib/Graph/src/com/android/settingslib/graph/PreferenceSetterApi.kt @@ -146,7 +146,7 @@ class PreferenceSetterApiHandler( val booleanValue = value.booleanValue val resultCode = metadata.checkWritePermit(booleanValue) if (resultCode != PreferenceSetterResult.OK) return resultCode - storage.setValue(key, Boolean::class.javaObjectType, booleanValue) + storage.setBoolean(key, booleanValue) return PreferenceSetterResult.OK } else if (value.hasIntValue()) { val intValue = value.intValue @@ -155,7 +155,7 @@ class PreferenceSetterApiHandler( if (metadata is RangeValue && !metadata.isValidValue(application, intValue)) { return PreferenceSetterResult.INVALID_REQUEST } - storage.setValue(key, Int::class.javaObjectType, intValue) + storage.setInt(key, intValue) return PreferenceSetterResult.OK } } catch (e: Exception) { 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 b64f5dc49b4b..512ea3d874bb 100644 --- a/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PreferenceTypes.kt +++ b/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PreferenceTypes.kt @@ -26,8 +26,7 @@ import androidx.annotation.StringRes interface TwoStatePreference : PreferenceMetadata, PersistentPreference<Boolean>, BooleanValue { override fun shouldDisableDependents(context: Context) = - storage(context).getValue(key, Boolean::class.javaObjectType) != true || - super.shouldDisableDependents(context) + storage(context).getBoolean(key) != true || super.shouldDisableDependents(context) } /** A preference that provides a two-state toggleable option. */ @@ -42,7 +41,4 @@ constructor( /** 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
\ No newline at end of file +constructor(override val key: String, @StringRes override val title: Int = 0) : TwoStatePreference diff --git a/packages/SettingsLib/Preference/src/com/android/settingslib/preference/PreferenceDataStoreAdapter.kt b/packages/SettingsLib/Preference/src/com/android/settingslib/preference/PreferenceDataStoreAdapter.kt index 7601b9a31041..f0f854aac79b 100644 --- a/packages/SettingsLib/Preference/src/com/android/settingslib/preference/PreferenceDataStoreAdapter.kt +++ b/packages/SettingsLib/Preference/src/com/android/settingslib/preference/PreferenceDataStoreAdapter.kt @@ -23,38 +23,31 @@ import com.android.settingslib.datastore.KeyValueStore class PreferenceDataStoreAdapter(val keyValueStore: KeyValueStore) : PreferenceDataStore() { override fun getBoolean(key: String, defValue: Boolean): Boolean = - keyValueStore.getValue(key, Boolean::class.javaObjectType) ?: defValue + keyValueStore.getBoolean(key) ?: defValue override fun getFloat(key: String, defValue: Float): Float = - keyValueStore.getValue(key, Float::class.javaObjectType) ?: defValue + keyValueStore.getFloat(key) ?: defValue - override fun getInt(key: String, defValue: Int): Int = - keyValueStore.getValue(key, Int::class.javaObjectType) ?: defValue + override fun getInt(key: String, defValue: Int): Int = keyValueStore.getInt(key) ?: defValue - override fun getLong(key: String, defValue: Long): Long = - keyValueStore.getValue(key, Long::class.javaObjectType) ?: defValue + override fun getLong(key: String, defValue: Long): Long = keyValueStore.getLong(key) ?: defValue override fun getString(key: String, defValue: String?): String? = - keyValueStore.getValue(key, String::class.javaObjectType) ?: defValue + keyValueStore.getString(key) ?: defValue @Suppress("UNCHECKED_CAST") override fun getStringSet(key: String, defValues: Set<String>?): Set<String>? = (keyValueStore.getValue(key, Set::class.javaObjectType) as Set<String>?) ?: defValues - override fun putBoolean(key: String, value: Boolean) = - keyValueStore.setValue(key, Boolean::class.javaObjectType, value) + override fun putBoolean(key: String, value: Boolean) = keyValueStore.setBoolean(key, value) - override fun putFloat(key: String, value: Float) = - keyValueStore.setValue(key, Float::class.javaObjectType, value) + override fun putFloat(key: String, value: Float) = keyValueStore.setFloat(key, value) - override fun putInt(key: String, value: Int) = - keyValueStore.setValue(key, Int::class.javaObjectType, value) + override fun putInt(key: String, value: Int) = keyValueStore.setInt(key, value) - override fun putLong(key: String, value: Long) = - keyValueStore.setValue(key, Long::class.javaObjectType, value) + override fun putLong(key: String, value: Long) = keyValueStore.setLong(key, value) - override fun putString(key: String, value: String?) = - keyValueStore.setValue(key, String::class.javaObjectType, value) + override fun putString(key: String, value: String?) = keyValueStore.setString(key, value) override fun putStringSet(key: String, values: Set<String>?) = keyValueStore.setValue(key, Set::class.javaObjectType, values) |