[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. */
|
/** Preference abstraction of the [MainSwitchBar] in settings activity. */
|
||||||
class MainSwitchBarPreference(context: Context, private val metadata: MainSwitchBarMetadata) :
|
class MainSwitchBarPreference(context: Context, private val metadata: MainSwitchBarMetadata) :
|
||||||
TwoStatePreference(context), OnCheckedChangeListener {
|
TwoStatePreference(context), OnCheckedChangeListener, MainSwitchBar.PreChangeListener {
|
||||||
|
|
||||||
private val mainSwitchBar: MainSwitchBar = (context as SettingsActivity).switchBar
|
private val mainSwitchBar: MainSwitchBar = (context as SettingsActivity).switchBar
|
||||||
|
|
||||||
@@ -62,9 +62,12 @@ class MainSwitchBarPreference(context: Context, private val metadata: MainSwitch
|
|||||||
|
|
||||||
override fun onAttached() {
|
override fun onAttached() {
|
||||||
super.onAttached()
|
super.onAttached()
|
||||||
|
mainSwitchBar.setPreChangeListener(this)
|
||||||
mainSwitchBar.addOnSwitchChangeListener(this)
|
mainSwitchBar.addOnSwitchChangeListener(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun preChange(isCheck: Boolean) = callChangeListener(isCheck)
|
||||||
|
|
||||||
override fun onCheckedChanged(buttonView: CompoundButton, isChecked: Boolean) {
|
override fun onCheckedChanged(buttonView: CompoundButton, isChecked: Boolean) {
|
||||||
// prevent user from toggling the switch before data store operation is done
|
// prevent user from toggling the switch before data store operation is done
|
||||||
isEnabled = false
|
isEnabled = false
|
||||||
@@ -74,6 +77,7 @@ class MainSwitchBarPreference(context: Context, private val metadata: MainSwitch
|
|||||||
|
|
||||||
override fun onDetached() {
|
override fun onDetached() {
|
||||||
mainSwitchBar.removeOnSwitchChangeListener(this)
|
mainSwitchBar.removeOnSwitchChangeListener(this)
|
||||||
|
mainSwitchBar.setPreChangeListener(null)
|
||||||
super.onDetached()
|
super.onDetached()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -109,7 +109,7 @@ public class SettingsMainSwitchBar extends MainSwitchBar {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return mSwitch.performClick();
|
return callPreChangeListener() && mSwitch.performClick();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Reference in New Issue
Block a user