summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jacky Wang <jiannan@google.com> 2024-12-08 19:18:43 +0800
committer Jacky Wang <jiannan@google.com> 2024-12-08 19:18:43 +0800
commitbfb0a0892a14d35dcd022476a4dd4f95c7ff7647 (patch)
treeea6423b025238523e28e1783bd9fdeb414e85c15
parent0b3b6a6596a28628b8c27bacd4f66af946071090 (diff)
[Catalyst] Move common APIs from SettingsStore to KeyValueStore
Bug: 325144964 Flag: EXEMPT library Test: atest Change-Id: Id4c9c44667cafedcc7fea492a066c5371738eb81
-rw-r--r--packages/SettingsLib/DataStore/src/com/android/settingslib/datastore/KeyValueStore.kt31
-rw-r--r--packages/SettingsLib/DataStore/src/com/android/settingslib/datastore/SettingsStore.kt31
-rw-r--r--packages/SettingsLib/Graph/src/com/android/settingslib/graph/PreferenceGraphBuilder.kt14
-rw-r--r--packages/SettingsLib/Graph/src/com/android/settingslib/graph/PreferenceSetterApi.kt4
-rw-r--r--packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PreferenceTypes.kt8
-rw-r--r--packages/SettingsLib/Preference/src/com/android/settingslib/preference/PreferenceDataStoreAdapter.kt27
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)