From d3496412f7392fe1d5cb5d5fceaa6924dcb954cc Mon Sep 17 00:00:00 2001 From: Kevin Chang Date: Wed, 8 May 2019 18:49:27 +0800 Subject: [PATCH] Override performClick method to eliminate redundant click Bug: 132226328 Test: make RunSettingsRoboTests ROBOTEST_FILTER=SwitchBar Change-Id: I22987a7695dfc84e50d6419604a9512f98cf4d13 --- src/com/android/settings/widget/SwitchBar.java | 9 ++++++--- .../src/com/android/settings/widget/SwitchBarTest.java | 7 +++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/widget/SwitchBar.java b/src/com/android/settings/widget/SwitchBar.java index dfcc131e524..f8743d1fa47 100644 --- a/src/com/android/settings/widget/SwitchBar.java +++ b/src/com/android/settings/widget/SwitchBar.java @@ -21,7 +21,6 @@ import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; import android.app.settings.SettingsEnums; import android.content.Context; import android.content.res.TypedArray; -import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.os.Parcel; import android.os.Parcelable; @@ -112,8 +111,6 @@ public class SwitchBar extends LinearLayout implements CompoundButton.OnCheckedC // Set the whole SwitchBar focusable and clickable. setFocusable(true); setClickable(true); - // Set a onClickListener to handle the functionality of ToggleSwitch. - setOnClickListener((View v) -> getDelegatingView().performClick()); final TypedArray a = context.obtainStyledAttributes(attrs, XML_ATTRIBUTES); final int switchBarMarginStart = (int) a.getDimension(0, 0); @@ -170,6 +167,12 @@ public class SwitchBar extends LinearLayout implements CompoundButton.OnCheckedC mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider(); } + // Override the performClick method to eliminate redundant click. + @Override + public boolean performClick() { + return getDelegatingView().performClick(); + } + public void setMetricsTag(String tag) { mMetricsTag = tag; } diff --git a/tests/robotests/src/com/android/settings/widget/SwitchBarTest.java b/tests/robotests/src/com/android/settings/widget/SwitchBarTest.java index 35fa2c66a6d..f1862222ee4 100644 --- a/tests/robotests/src/com/android/settings/widget/SwitchBarTest.java +++ b/tests/robotests/src/com/android/settings/widget/SwitchBarTest.java @@ -95,4 +95,11 @@ public class SwitchBarTest { mBar.setDisabledByAdmin(null); assertThat(mBar.getDelegatingView().getId()).isEqualTo(R.id.switch_widget); } + + @Test + public void performClick_shouldIsCheckedValueChange() { + boolean isChecked = mBar.isChecked(); + mBar.performClick(); + assertThat(mBar.isChecked()).isEqualTo(!isChecked); + } }