[Catalyst] Support callChangeListener for MainSwitchBarPreference
Bug: 335132588 Flag: EXEMPT library Test: manual Change-Id: I6924ccfa0d66b9a643811f49a2ec3fcdc1d749ae
This commit is contained in:
@@ -26,7 +26,7 @@ import com.android.settingslib.widget.MainSwitchBar
|
||||
|
||||
/** Preference abstraction of the [MainSwitchBar] in settings activity. */
|
||||
class MainSwitchBarPreference(context: Context, private val metadata: MainSwitchBarMetadata) :
|
||||
TwoStatePreference(context), OnCheckedChangeListener {
|
||||
TwoStatePreference(context), OnCheckedChangeListener, MainSwitchBar.PreChangeListener {
|
||||
|
||||
private val mainSwitchBar: MainSwitchBar = (context as SettingsActivity).switchBar
|
||||
|
||||
@@ -62,9 +62,12 @@ class MainSwitchBarPreference(context: Context, private val metadata: MainSwitch
|
||||
|
||||
override fun onAttached() {
|
||||
super.onAttached()
|
||||
mainSwitchBar.setPreChangeListener(this)
|
||||
mainSwitchBar.addOnSwitchChangeListener(this)
|
||||
}
|
||||
|
||||
override fun preChange(isCheck: Boolean) = callChangeListener(isCheck)
|
||||
|
||||
override fun onCheckedChanged(buttonView: CompoundButton, isChecked: Boolean) {
|
||||
// prevent user from toggling the switch before data store operation is done
|
||||
isEnabled = false
|
||||
@@ -74,6 +77,7 @@ class MainSwitchBarPreference(context: Context, private val metadata: MainSwitch
|
||||
|
||||
override fun onDetached() {
|
||||
mainSwitchBar.removeOnSwitchChangeListener(this)
|
||||
mainSwitchBar.setPreChangeListener(null)
|
||||
super.onDetached()
|
||||
}
|
||||
}
|
||||
|
@@ -109,7 +109,7 @@ public class SettingsMainSwitchBar extends MainSwitchBar {
|
||||
return true;
|
||||
}
|
||||
|
||||
return mSwitch.performClick();
|
||||
return callPreChangeListener() && mSwitch.performClick();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Reference in New Issue
Block a user