diff options
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) |