Loading src/com/android/settings/datausage/DataSaverMainSwitchPreference.kt +3 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,9 @@ class DataSaverMainSwitchPreference : MainSwitchBarMetadata, PreferenceLifecycle override val title get() = R.string.data_saver_switch_title override val disableWidgetOnCheckedChanged: Boolean get() = false override fun storage(context: Context) = createDataStore(context) override fun getReadPermissions(context: Context) = Loading src/com/android/settings/widget/MainSwitchBarMetadata.kt +10 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,16 @@ import com.android.settingslib.preference.TwoStatePreferenceBinding interface MainSwitchBarMetadata : TwoStatePreference, TwoStatePreferenceBinding, PreferenceBindingPlaceholder { /** * Disable main switch bar when user toggles the switch. By this way, user cannot toggle again * before last operation is done. * * Side-effect: If the underlying operation is completed quickly, this will causes UI flicker. * Override and return `false` to get rid of the flicker. */ val disableWidgetOnCheckedChanged: Boolean get() = true override fun createWidget(context: Context) = MainSwitchBarPreference(context, this) override fun bind(preference: Preference, metadata: PreferenceMetadata) { Loading src/com/android/settings/widget/MainSwitchBarPreference.kt +1 −1 Original line number Diff line number Diff line Loading @@ -80,7 +80,7 @@ class MainSwitchBarPreference(context: Context, private val metadata: MainSwitch override fun onCheckedChanged(buttonView: CompoundButton, isChecked: Boolean) { // prevent user from toggling the switch before data store operation is done isEnabled = false if (metadata.disableWidgetOnCheckedChanged) isEnabled = false // once data store is updated, isEnabled will be reset due to rebind persistBoolean(isChecked) } Loading Loading
src/com/android/settings/datausage/DataSaverMainSwitchPreference.kt +3 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,9 @@ class DataSaverMainSwitchPreference : MainSwitchBarMetadata, PreferenceLifecycle override val title get() = R.string.data_saver_switch_title override val disableWidgetOnCheckedChanged: Boolean get() = false override fun storage(context: Context) = createDataStore(context) override fun getReadPermissions(context: Context) = Loading
src/com/android/settings/widget/MainSwitchBarMetadata.kt +10 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,16 @@ import com.android.settingslib.preference.TwoStatePreferenceBinding interface MainSwitchBarMetadata : TwoStatePreference, TwoStatePreferenceBinding, PreferenceBindingPlaceholder { /** * Disable main switch bar when user toggles the switch. By this way, user cannot toggle again * before last operation is done. * * Side-effect: If the underlying operation is completed quickly, this will causes UI flicker. * Override and return `false` to get rid of the flicker. */ val disableWidgetOnCheckedChanged: Boolean get() = true override fun createWidget(context: Context) = MainSwitchBarPreference(context, this) override fun bind(preference: Preference, metadata: PreferenceMetadata) { Loading
src/com/android/settings/widget/MainSwitchBarPreference.kt +1 −1 Original line number Diff line number Diff line Loading @@ -80,7 +80,7 @@ class MainSwitchBarPreference(context: Context, private val metadata: MainSwitch override fun onCheckedChanged(buttonView: CompoundButton, isChecked: Boolean) { // prevent user from toggling the switch before data store operation is done isEnabled = false if (metadata.disableWidgetOnCheckedChanged) isEnabled = false // once data store is updated, isEnabled will be reset due to rebind persistBoolean(isChecked) } Loading