Loading packages/SettingsLib/Preference/src/com/android/settingslib/preference/PreferenceBindings.kt +4 −5 Original line number Original line Diff line number Diff line Loading @@ -23,7 +23,6 @@ import androidx.preference.PreferenceScreen import androidx.preference.SwitchPreferenceCompat import androidx.preference.SwitchPreferenceCompat import androidx.preference.TwoStatePreference import androidx.preference.TwoStatePreference import com.android.settingslib.metadata.EXTRA_BINDING_SCREEN_KEY import com.android.settingslib.metadata.EXTRA_BINDING_SCREEN_KEY import com.android.settingslib.metadata.PersistentPreference import com.android.settingslib.metadata.PreferenceMetadata import com.android.settingslib.metadata.PreferenceMetadata import com.android.settingslib.metadata.PreferenceScreenMetadata import com.android.settingslib.metadata.PreferenceScreenMetadata import com.android.settingslib.metadata.PreferenceTitleProvider import com.android.settingslib.metadata.PreferenceTitleProvider Loading Loading @@ -71,10 +70,10 @@ interface TwoStatePreferenceBinding : PreferenceBinding { override fun bind(preference: Preference, metadata: PreferenceMetadata) { override fun bind(preference: Preference, metadata: PreferenceMetadata) { super.bind(preference, metadata) super.bind(preference, metadata) (metadata as? PersistentPreference<*>) (preference as TwoStatePreference).apply { ?.storage(preference.context) // "false" is kind of placeholder, metadata datastore should provide the default value ?.getValue(metadata.key, Boolean::class.javaObjectType) isChecked = preferenceDataStore!!.getBoolean(key, false) ?.let { (preference as TwoStatePreference).isChecked = it } } } } } } Loading packages/SettingsLib/Preference/src/com/android/settingslib/preference/PreferenceHierarchyInflater.kt +1 −1 Original line number Original line Diff line number Diff line Loading @@ -40,11 +40,11 @@ fun PreferenceGroup.inflatePreferenceHierarchy( addPreference(preferenceGroup) addPreference(preferenceGroup) preferenceGroup.inflatePreferenceHierarchy(preferenceBindingFactory, it) preferenceGroup.inflatePreferenceHierarchy(preferenceBindingFactory, it) } else { } else { preferenceBindingFactory.bind(widget, it, preferenceBinding) (metadata as? PersistentPreference<*>)?.storage(context)?.let { storage -> (metadata as? PersistentPreference<*>)?.storage(context)?.let { storage -> widget.preferenceDataStore = widget.preferenceDataStore = storages.getOrPut(storage) { PreferenceDataStoreAdapter(storage) } storages.getOrPut(storage) { PreferenceDataStoreAdapter(storage) } } } preferenceBindingFactory.bind(widget, it, preferenceBinding) // MUST add preference after binding for persistent preference to get initial value // MUST add preference after binding for persistent preference to get initial value // (preference key is set within bind method) // (preference key is set within bind method) addPreference(widget) addPreference(widget) Loading packages/SettingsLib/Preference/src/com/android/settingslib/preference/PreferenceScreenBindingHelper.kt +1 −1 Original line number Original line Diff line number Diff line Loading @@ -236,12 +236,12 @@ class PreferenceScreenBindingHelper( preference.bindRecursively(preferenceBindingFactory, preferences, storages) preference.bindRecursively(preferenceBindingFactory, preferences, storages) } else { } else { preferences[preference.key]?.let { preferences[preference.key]?.let { preferenceBindingFactory.bind(preference, it) val metadata = it.metadata val metadata = it.metadata (metadata as? PersistentPreference<*>)?.storage(context)?.let { storage -> (metadata as? PersistentPreference<*>)?.storage(context)?.let { storage -> preference.preferenceDataStore = preference.preferenceDataStore = storages.getOrPut(storage) { PreferenceDataStoreAdapter(storage) } storages.getOrPut(storage) { PreferenceDataStoreAdapter(storage) } } } preferenceBindingFactory.bind(preference, it) } } } } } } Loading Loading
packages/SettingsLib/Preference/src/com/android/settingslib/preference/PreferenceBindings.kt +4 −5 Original line number Original line Diff line number Diff line Loading @@ -23,7 +23,6 @@ import androidx.preference.PreferenceScreen import androidx.preference.SwitchPreferenceCompat import androidx.preference.SwitchPreferenceCompat import androidx.preference.TwoStatePreference import androidx.preference.TwoStatePreference import com.android.settingslib.metadata.EXTRA_BINDING_SCREEN_KEY import com.android.settingslib.metadata.EXTRA_BINDING_SCREEN_KEY import com.android.settingslib.metadata.PersistentPreference import com.android.settingslib.metadata.PreferenceMetadata import com.android.settingslib.metadata.PreferenceMetadata import com.android.settingslib.metadata.PreferenceScreenMetadata import com.android.settingslib.metadata.PreferenceScreenMetadata import com.android.settingslib.metadata.PreferenceTitleProvider import com.android.settingslib.metadata.PreferenceTitleProvider Loading Loading @@ -71,10 +70,10 @@ interface TwoStatePreferenceBinding : PreferenceBinding { override fun bind(preference: Preference, metadata: PreferenceMetadata) { override fun bind(preference: Preference, metadata: PreferenceMetadata) { super.bind(preference, metadata) super.bind(preference, metadata) (metadata as? PersistentPreference<*>) (preference as TwoStatePreference).apply { ?.storage(preference.context) // "false" is kind of placeholder, metadata datastore should provide the default value ?.getValue(metadata.key, Boolean::class.javaObjectType) isChecked = preferenceDataStore!!.getBoolean(key, false) ?.let { (preference as TwoStatePreference).isChecked = it } } } } } } Loading
packages/SettingsLib/Preference/src/com/android/settingslib/preference/PreferenceHierarchyInflater.kt +1 −1 Original line number Original line Diff line number Diff line Loading @@ -40,11 +40,11 @@ fun PreferenceGroup.inflatePreferenceHierarchy( addPreference(preferenceGroup) addPreference(preferenceGroup) preferenceGroup.inflatePreferenceHierarchy(preferenceBindingFactory, it) preferenceGroup.inflatePreferenceHierarchy(preferenceBindingFactory, it) } else { } else { preferenceBindingFactory.bind(widget, it, preferenceBinding) (metadata as? PersistentPreference<*>)?.storage(context)?.let { storage -> (metadata as? PersistentPreference<*>)?.storage(context)?.let { storage -> widget.preferenceDataStore = widget.preferenceDataStore = storages.getOrPut(storage) { PreferenceDataStoreAdapter(storage) } storages.getOrPut(storage) { PreferenceDataStoreAdapter(storage) } } } preferenceBindingFactory.bind(widget, it, preferenceBinding) // MUST add preference after binding for persistent preference to get initial value // MUST add preference after binding for persistent preference to get initial value // (preference key is set within bind method) // (preference key is set within bind method) addPreference(widget) addPreference(widget) Loading
packages/SettingsLib/Preference/src/com/android/settingslib/preference/PreferenceScreenBindingHelper.kt +1 −1 Original line number Original line Diff line number Diff line Loading @@ -236,12 +236,12 @@ class PreferenceScreenBindingHelper( preference.bindRecursively(preferenceBindingFactory, preferences, storages) preference.bindRecursively(preferenceBindingFactory, preferences, storages) } else { } else { preferences[preference.key]?.let { preferences[preference.key]?.let { preferenceBindingFactory.bind(preference, it) val metadata = it.metadata val metadata = it.metadata (metadata as? PersistentPreference<*>)?.storage(context)?.let { storage -> (metadata as? PersistentPreference<*>)?.storage(context)?.let { storage -> preference.preferenceDataStore = preference.preferenceDataStore = storages.getOrPut(storage) { PreferenceDataStoreAdapter(storage) } storages.getOrPut(storage) { PreferenceDataStoreAdapter(storage) } } } preferenceBindingFactory.bind(preference, it) } } } } } } Loading