Migrate to CompoundButton.OnCheckedChangeListener

Switch and SwitchCompat are both CompoundButton.

Using CompoundButton in Java will helps migration in the future.

Bug: 306658427
Test: manual - check Settings pages
Change-Id: If2e08a9a9557ec66a3b31ef18cd2e15943098a59
This commit is contained in:
Chaohui Wang
2023-10-24 23:48:10 +08:00
parent 86bf501829
commit 71d1f021af
49 changed files with 174 additions and 188 deletions

View File

@@ -16,16 +16,16 @@
package com.android.settings.widget;
import android.widget.Switch;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.widget.OnMainSwitchChangeListener;
/**
* The switch controller that is used to update the switch widget in the SettingsMainSwitchBar.
*/
public class MainSwitchBarController extends SwitchWidgetController implements
OnMainSwitchChangeListener {
OnCheckedChangeListener {
private final SettingsMainSwitchBar mMainSwitch;
@@ -74,7 +74,7 @@ public class MainSwitchBarController extends SwitchWidgetController implements
}
@Override
public void onSwitchChanged(Switch switchView, boolean isChecked) {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (mListener != null) {
mListener.onSwitchToggled(isChecked);
}

View File

@@ -21,7 +21,6 @@ import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.Switch;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.RestrictedLockUtils;
@@ -39,10 +38,9 @@ public class SettingsMainSwitchBar extends MainSwitchBar {
public interface OnBeforeCheckedChangeListener {
/**
* @param switchView The Switch view whose state has changed.
* @param isChecked The new checked state of switchView.
* @param isChecked The new checked state of switchView.
*/
boolean onBeforeCheckedChanged(Switch switchView, boolean isChecked);
boolean onBeforeCheckedChanged(boolean isChecked);
}
private EnforcedAdmin mEnforcedAdmin;
@@ -117,7 +115,7 @@ public class SettingsMainSwitchBar extends MainSwitchBar {
@Override
public void setChecked(boolean checked) {
if (mOnBeforeListener != null
&& mOnBeforeListener.onBeforeCheckedChanged(mSwitch, checked)) {
&& mOnBeforeListener.onBeforeCheckedChanged(checked)) {
return;
}
super.setChecked(checked);

View File

@@ -20,7 +20,8 @@ import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.Switch;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import androidx.preference.PreferenceViewHolder;
import androidx.preference.TwoStatePreference;
@@ -29,7 +30,6 @@ import com.android.settings.R;
import com.android.settings.widget.SettingsMainSwitchBar.OnBeforeCheckedChangeListener;
import com.android.settingslib.RestrictedPreferenceHelper;
import com.android.settingslib.core.instrumentation.SettingsJankMonitor;
import com.android.settingslib.widget.OnMainSwitchChangeListener;
import java.util.ArrayList;
import java.util.List;
@@ -40,11 +40,11 @@ import java.util.List;
* to enable or disable the preferences on the page.
*/
public class SettingsMainSwitchPreference extends TwoStatePreference implements
OnMainSwitchChangeListener {
OnCheckedChangeListener {
private final List<OnBeforeCheckedChangeListener> mBeforeCheckedChangeListeners =
new ArrayList<>();
private final List<OnMainSwitchChangeListener> mSwitchChangeListeners = new ArrayList<>();
private final List<OnCheckedChangeListener> mSwitchChangeListeners = new ArrayList<>();
private SettingsMainSwitchBar mMainSwitchBar;
private EnforcedAdmin mEnforcedAdmin;
@@ -127,9 +127,9 @@ public class SettingsMainSwitchPreference extends TwoStatePreference implements
}
@Override
public void onSwitchChanged(Switch switchView, boolean isChecked) {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
super.setChecked(isChecked);
SettingsJankMonitor.detectToggleJank(getKey(), switchView);
SettingsJankMonitor.detectToggleJank(getKey(), buttonView);
}
/**
@@ -197,7 +197,7 @@ public class SettingsMainSwitchPreference extends TwoStatePreference implements
/**
* Adds a listener for switch changes
*/
public void addOnSwitchChangeListener(OnMainSwitchChangeListener listener) {
public void addOnSwitchChangeListener(OnCheckedChangeListener listener) {
if (!mSwitchChangeListeners.contains(listener)) {
mSwitchChangeListeners.add(listener);
}
@@ -209,7 +209,7 @@ public class SettingsMainSwitchPreference extends TwoStatePreference implements
/**
* Remove a listener for switch changes
*/
public void removeOnSwitchChangeListener(OnMainSwitchChangeListener listener) {
public void removeOnSwitchChangeListener(OnCheckedChangeListener listener) {
mSwitchChangeListeners.remove(listener);
if (mMainSwitchBar != null) {
mMainSwitchBar.removeOnSwitchChangeListener(listener);
@@ -239,7 +239,7 @@ public class SettingsMainSwitchPreference extends TwoStatePreference implements
for (OnBeforeCheckedChangeListener listener : mBeforeCheckedChangeListeners) {
mMainSwitchBar.setOnBeforeCheckedChangeListener(listener);
}
for (OnMainSwitchChangeListener listener : mSwitchChangeListeners) {
for (OnCheckedChangeListener listener : mSwitchChangeListeners) {
mMainSwitchBar.addOnSwitchChangeListener(listener);
}
}

View File

@@ -17,20 +17,20 @@
package com.android.settings.widget;
import android.content.Context;
import android.widget.Switch;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.settings.core.TogglePreferenceController;
import com.android.settingslib.widget.MainSwitchPreference;
import com.android.settingslib.widget.OnMainSwitchChangeListener;
/**
* Preference controller for MainSwitchPreference.
*/
public abstract class SettingsMainSwitchPreferenceController extends
TogglePreferenceController implements OnMainSwitchChangeListener {
TogglePreferenceController implements OnCheckedChangeListener {
protected MainSwitchPreference mSwitchPreference;
@@ -49,7 +49,7 @@ public abstract class SettingsMainSwitchPreferenceController extends
}
@Override
public void onSwitchChanged(Switch switchView, boolean isChecked) {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
mSwitchPreference.setChecked(isChecked);
setChecked(isChecked);
}