From c2d91b650da51db198dd94e9ba833502a442fb58 Mon Sep 17 00:00:00 2001 From: Stanley Wang Date: Thu, 3 Jun 2021 15:12:46 +0800 Subject: Switch control should not be activated after event happens off of the target region. - Disable the focusable and clickable features. Fix: 189079003 Test: robotest and test the switch manually Change-Id: I0fa19c132ddfd5a3e010bf8328c6b84c1087d78b --- .../res/layout-v31/settingslib_main_switch_bar.xml | 2 ++ .../src/com/android/settingslib/widget/MainSwitchBarTest.java | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/packages/SettingsLib/MainSwitchPreference/res/layout-v31/settingslib_main_switch_bar.xml b/packages/SettingsLib/MainSwitchPreference/res/layout-v31/settingslib_main_switch_bar.xml index 010b9ba4324b..e46ea4a5f56c 100644 --- a/packages/SettingsLib/MainSwitchPreference/res/layout-v31/settingslib_main_switch_bar.xml +++ b/packages/SettingsLib/MainSwitchPreference/res/layout-v31/settingslib_main_switch_bar.xml @@ -59,6 +59,8 @@ android:layout_width="wrap_content" android:layout_height="48dp" android:layout_gravity="center_vertical" + android:focusable="false" + android:clickable="false" android:track="@drawable/settingslib_track_selector" android:thumb="@drawable/settingslib_thumb_selector" android:theme="@style/MainSwitch.Settingslib"/> diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/MainSwitchBarTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/MainSwitchBarTest.java index 701a343c79f7..0845ca325d38 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/MainSwitchBarTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/MainSwitchBarTest.java @@ -75,6 +75,14 @@ public class MainSwitchBarTest { assertThat(switchObj).isNotNull(); } + @Test + public void getSwitch_shouldNotFocusableAndClickable() { + final Switch switchObj = mBar.getSwitch(); + + assertThat(switchObj.isFocusable()).isFalse(); + assertThat(switchObj.isClickable()).isFalse(); + } + @Test public void show_shouldVisible() { mBar.show(); -- cgit v1.2.3-59-g8ed1b