Loading packages/SettingsLib/DataStore/src/com/android/settingslib/datastore/SettingsGlobalStore.kt +2 −2 Original line number Diff line number Diff line Loading @@ -51,9 +51,9 @@ class SettingsGlobalStore private constructor(contentResolver: ContentResolver) else -> throw UnsupportedOperationException("Get $key $valueType") } as T? } catch (e: SettingNotFoundException) { } catch (_: SettingNotFoundException) { null } } ?: getDefaultValue(key, valueType) override fun <T : Any> setValue(key: String, valueType: Class<T>, value: T?) { if (value == null) { Loading packages/SettingsLib/DataStore/src/com/android/settingslib/datastore/SettingsSecureStore.kt +2 −2 Original line number Diff line number Diff line Loading @@ -51,9 +51,9 @@ class SettingsSecureStore private constructor(contentResolver: ContentResolver) else -> throw UnsupportedOperationException("Get $key $valueType") } as T? } catch (e: SettingNotFoundException) { } catch (_: SettingNotFoundException) { null } } ?: getDefaultValue(key, valueType) override fun <T : Any> setValue(key: String, valueType: Class<T>, value: T?) { if (value == null) { Loading packages/SettingsLib/DataStore/src/com/android/settingslib/datastore/SettingsStore.kt +21 −0 Original line number Diff line number Diff line Loading @@ -20,11 +20,14 @@ import android.content.ContentResolver import android.database.ContentObserver import android.net.Uri import android.util.Log import java.util.concurrent.ConcurrentHashMap /** Base class of the Settings provider data stores. */ abstract class SettingsStore(protected val contentResolver: ContentResolver) : AbstractKeyedDataObservable<String>(), KeyValueStore { private val defaultValues = ConcurrentHashMap<String, Any>() private val contentObserver = object : ContentObserver(HandlerExecutor.main) { override fun onChange(selfChange: Boolean) { Loading @@ -50,6 +53,24 @@ abstract class SettingsStore(protected val contentResolver: ContentResolver) : contentResolver.unregisterContentObserver(contentObserver) } /** * Sets default value for given key. * * The observers are not notified for this operation. */ fun setDefaultValue(key: String, value: Any) { val oldValue = defaultValues.put(key, value) if (oldValue == null) { Log.d(tag, "setDefaultValue $key $value") } else if (oldValue != value) { Log.w(tag, "$key default value is changed from $oldValue to $value") } } @Suppress("UNCHECKED_CAST") override fun <T : Any> getDefaultValue(key: String, valueType: Class<T>) = defaultValues[key] as T? /** Tag for logging. */ abstract val tag: String } packages/SettingsLib/DataStore/src/com/android/settingslib/datastore/SettingsSystemStore.kt +2 −2 Original line number Diff line number Diff line Loading @@ -51,9 +51,9 @@ class SettingsSystemStore private constructor(contentResolver: ContentResolver) else -> throw UnsupportedOperationException("Get $key $valueType") } as T? } catch (e: SettingNotFoundException) { } catch (_: SettingNotFoundException) { null } } ?: getDefaultValue(key, valueType) override fun <T : Any> setValue(key: String, valueType: Class<T>, value: T?) { if (value == null) { Loading Loading
packages/SettingsLib/DataStore/src/com/android/settingslib/datastore/SettingsGlobalStore.kt +2 −2 Original line number Diff line number Diff line Loading @@ -51,9 +51,9 @@ class SettingsGlobalStore private constructor(contentResolver: ContentResolver) else -> throw UnsupportedOperationException("Get $key $valueType") } as T? } catch (e: SettingNotFoundException) { } catch (_: SettingNotFoundException) { null } } ?: getDefaultValue(key, valueType) override fun <T : Any> setValue(key: String, valueType: Class<T>, value: T?) { if (value == null) { Loading
packages/SettingsLib/DataStore/src/com/android/settingslib/datastore/SettingsSecureStore.kt +2 −2 Original line number Diff line number Diff line Loading @@ -51,9 +51,9 @@ class SettingsSecureStore private constructor(contentResolver: ContentResolver) else -> throw UnsupportedOperationException("Get $key $valueType") } as T? } catch (e: SettingNotFoundException) { } catch (_: SettingNotFoundException) { null } } ?: getDefaultValue(key, valueType) override fun <T : Any> setValue(key: String, valueType: Class<T>, value: T?) { if (value == null) { Loading
packages/SettingsLib/DataStore/src/com/android/settingslib/datastore/SettingsStore.kt +21 −0 Original line number Diff line number Diff line Loading @@ -20,11 +20,14 @@ import android.content.ContentResolver import android.database.ContentObserver import android.net.Uri import android.util.Log import java.util.concurrent.ConcurrentHashMap /** Base class of the Settings provider data stores. */ abstract class SettingsStore(protected val contentResolver: ContentResolver) : AbstractKeyedDataObservable<String>(), KeyValueStore { private val defaultValues = ConcurrentHashMap<String, Any>() private val contentObserver = object : ContentObserver(HandlerExecutor.main) { override fun onChange(selfChange: Boolean) { Loading @@ -50,6 +53,24 @@ abstract class SettingsStore(protected val contentResolver: ContentResolver) : contentResolver.unregisterContentObserver(contentObserver) } /** * Sets default value for given key. * * The observers are not notified for this operation. */ fun setDefaultValue(key: String, value: Any) { val oldValue = defaultValues.put(key, value) if (oldValue == null) { Log.d(tag, "setDefaultValue $key $value") } else if (oldValue != value) { Log.w(tag, "$key default value is changed from $oldValue to $value") } } @Suppress("UNCHECKED_CAST") override fun <T : Any> getDefaultValue(key: String, valueType: Class<T>) = defaultValues[key] as T? /** Tag for logging. */ abstract val tag: String }
packages/SettingsLib/DataStore/src/com/android/settingslib/datastore/SettingsSystemStore.kt +2 −2 Original line number Diff line number Diff line Loading @@ -51,9 +51,9 @@ class SettingsSystemStore private constructor(contentResolver: ContentResolver) else -> throw UnsupportedOperationException("Get $key $valueType") } as T? } catch (e: SettingNotFoundException) { } catch (_: SettingNotFoundException) { null } } ?: getDefaultValue(key, valueType) override fun <T : Any> setValue(key: String, valueType: Class<T>, value: T?) { if (value == null) { Loading