Merge "Override performClick method to eliminate redundant click" into qt-dev
diff --git a/src/com/android/settings/widget/SwitchBar.java b/src/com/android/settings/widget/SwitchBar.java
index dfcc131..f8743d1 100644
--- a/src/com/android/settings/widget/SwitchBar.java
+++ b/src/com/android/settings/widget/SwitchBar.java
@@ -21,7 +21,6 @@
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 @@
// 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 @@
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 35fa2c6..f186222 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 @@
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);
+ }
}