summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jacky Wang <jiannan@google.com> 2024-12-09 03:31:31 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-12-09 03:31:31 +0000
commit38ee74bdeca9f4068a59182e07f7bf95e49f5dc4 (patch)
treee745fb3077b7988b9ace3732cb5740c19ba26808
parent65146ab457f733959c47f778e88ef6fc208dbc58 (diff)
parent5ddeabd3809299e54d32d6c1f479b5cfc54ec2b5 (diff)
Merge "[Catalyst] Add PreferenceLifecycleContext.getKeyValueStore" into main
-rw-r--r--packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PreferenceStateProviders.kt4
-rw-r--r--packages/SettingsLib/Preference/src/com/android/settingslib/preference/PreferenceScreenBindingHelper.kt5
2 files changed, 9 insertions, 0 deletions
diff --git a/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PreferenceStateProviders.kt b/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PreferenceStateProviders.kt
index 6704ecc93891..3dd15946d415 100644
--- a/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PreferenceStateProviders.kt
+++ b/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PreferenceStateProviders.kt
@@ -21,6 +21,7 @@ import android.content.ContextWrapper
import android.content.Intent
import android.os.Bundle
import androidx.lifecycle.LifecycleCoroutineScope
+import com.android.settingslib.datastore.KeyValueStore
import kotlinx.coroutines.CoroutineScope
/**
@@ -157,6 +158,9 @@ abstract class PreferenceLifecycleContext(context: Context) : ContextWrapper(con
*/
abstract fun <T : Any> requirePreference(key: String): T
+ /** Returns the [KeyValueStore] attached to the preference of given key *on the same screen*. */
+ abstract fun getKeyValueStore(key: String): KeyValueStore?
+
/** Notifies that preference state of given key is changed and updates preference widget UI. */
abstract fun notifyPreferenceChange(key: String)
diff --git a/packages/SettingsLib/Preference/src/com/android/settingslib/preference/PreferenceScreenBindingHelper.kt b/packages/SettingsLib/Preference/src/com/android/settingslib/preference/PreferenceScreenBindingHelper.kt
index 6fc9357e9332..31bb62d93d82 100644
--- a/packages/SettingsLib/Preference/src/com/android/settingslib/preference/PreferenceScreenBindingHelper.kt
+++ b/packages/SettingsLib/Preference/src/com/android/settingslib/preference/PreferenceScreenBindingHelper.kt
@@ -67,6 +67,11 @@ class PreferenceScreenBindingHelper(
override fun <T : Any> requirePreference(key: String) = findPreference<T>(key)!!
+ override fun getKeyValueStore(key: String) =
+ (findPreference<Preference>(key)?.preferenceDataStore
+ as? PreferenceDataStoreAdapter)
+ ?.keyValueStore
+
override fun notifyPreferenceChange(key: String) =
notifyChange(key, CHANGE_REASON_STATE)