Merge "Fixe the problem of invalid switch preference." into tm-dev

This commit is contained in:
Stanley Wang
2022-04-28 02:59:20 +00:00
committed by Android (Google) Code Review

View File

@@ -199,9 +199,10 @@ public class SettingsMainSwitchPreference extends TwoStatePreference implements
* Set the OnBeforeCheckedChangeListener. * Set the OnBeforeCheckedChangeListener.
*/ */
public void setOnBeforeCheckedChangeListener(OnBeforeCheckedChangeListener listener) { public void setOnBeforeCheckedChangeListener(OnBeforeCheckedChangeListener listener) {
if (mMainSwitchBar == null) { if (!mBeforeCheckedChangeListeners.contains(listener)) {
mBeforeCheckedChangeListeners.add(listener); mBeforeCheckedChangeListeners.add(listener);
} else { }
if (mMainSwitchBar != null) {
mMainSwitchBar.setOnBeforeCheckedChangeListener(listener); mMainSwitchBar.setOnBeforeCheckedChangeListener(listener);
} }
} }
@@ -210,9 +211,10 @@ public class SettingsMainSwitchPreference extends TwoStatePreference implements
* Adds a listener for switch changes * Adds a listener for switch changes
*/ */
public void addOnSwitchChangeListener(OnMainSwitchChangeListener listener) { public void addOnSwitchChangeListener(OnMainSwitchChangeListener listener) {
if (mMainSwitchBar == null) { if (!mSwitchChangeListeners.contains(listener)) {
mSwitchChangeListeners.add(listener); mSwitchChangeListeners.add(listener);
} else { }
if (mMainSwitchBar != null) {
mMainSwitchBar.addOnSwitchChangeListener(listener); mMainSwitchBar.addOnSwitchChangeListener(listener);
} }
} }
@@ -221,9 +223,8 @@ public class SettingsMainSwitchPreference extends TwoStatePreference implements
* Remove a listener for switch changes * Remove a listener for switch changes
*/ */
public void removeOnSwitchChangeListener(OnMainSwitchChangeListener listener) { public void removeOnSwitchChangeListener(OnMainSwitchChangeListener listener) {
if (mMainSwitchBar == null) { mSwitchChangeListeners.remove(listener);
mSwitchChangeListeners.remove(listener); if (mMainSwitchBar != null) {
} else {
mMainSwitchBar.removeOnSwitchChangeListener(listener); mMainSwitchBar.removeOnSwitchChangeListener(listener);
} }
} }