Loading res/drawable/ic_settings_mouse.xml 0 → 100644 +14 −0 Original line number Diff line number Diff line <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewportWidth="24" android:viewportHeight="24" android:tint="?android:attr/colorControlNormal"> <group> <clip-path android:pathData="M0,0h24v24h-24z"/> <path android:pathData="M12,22C10.067,22 8.417,21.317 7.05,19.95C5.683,18.583 5,16.933 5,15V9C5,7.067 5.683,5.417 7.05,4.05C8.417,2.683 10.067,2 12,2C13.933,2 15.583,2.683 16.95,4.05C18.317,5.417 19,7.067 19,9V15C19,16.933 18.317,18.583 16.95,19.95C15.583,21.317 13.933,22 12,22ZM13,9H17C17,7.8 16.617,6.742 15.85,5.825C15.1,4.908 14.15,4.333 13,4.1V9ZM7,9H11V4.1C9.85,4.333 8.892,4.908 8.125,5.825C7.375,6.742 7,7.8 7,9ZM12,20C13.383,20 14.558,19.517 15.525,18.55C16.508,17.567 17,16.383 17,15V11H7V15C7,16.383 7.483,17.567 8.45,18.55C9.433,19.517 10.617,20 12,20Z" android:fillColor="@android:color/white"/> </group> </vector> No newline at end of file res/values/strings.xml +2 −0 Original line number Diff line number Diff line Loading @@ -4650,6 +4650,8 @@ <string name="trackpad_mouse_settings">Touchpad & mouse</string> <!-- Title for the button to trigger the 'mouse settings' page if connect with a mouse. [CHAR LIMIT=35] --> <string name="mouse_settings">Mouse</string> <!-- Summary text for mouse setting page. [CHAR LIMIT=35] --> <string name="mouse_settings_summary">Pointer speed, swap buttons, button customisation</string> <!-- Summary text for the 'trackpad settings' page. [CHAR LIMIT=100] --> <string name="trackpad_settings_summary">Pointer speed, gestures</string> res/xml/system_dashboard_fragment.xml +18 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,24 @@ android:fragment="com.android.settings.inputmethod.TouchpadAndMouseSettings" settings:controller="com.android.settings.inputmethod.TouchpadAndMouseSettingsController"/> <Preference android:key="touchpad_settings" android:title="@string/trackpad_settings" android:summary="@string/trackpad_settings_summary" android:icon="@drawable/ic_settings_trackpad" android:order="-253" android:fragment="com.android.settings.inputmethod.TouchpadSettingFragment" settings:controller="com.android.settings.inputmethod.TouchpadSettingsController"/> <Preference android:key="mouse_settings" android:title="@string/mouse_settings" android:summary="@string/mouse_settings_summary" android:icon="@drawable/ic_settings_mouse" android:order="-252" android:fragment="com.android.settings.inputmethod.MouseSettingFragment" settings:controller="com.android.settings.inputmethod.MouseSettingsController"/> <Preference android:key="gesture_settings" android:title="@string/gesture_preference_title" Loading src/com/android/settings/inputmethod/TouchpadAndMouseSettingsController.java +4 −1 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import androidx.preference.Preference; import com.android.settings.core.BasePreferenceController; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.keyboard.Flags; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStop; Loading Loading @@ -85,13 +86,15 @@ public class TouchpadAndMouseSettingsController extends BasePreferenceController @Override public int getAvailabilityStatus() { boolean isNewPageFlagDisabled = !Flags.keyboardAndTouchpadA11yNewPageEnabled(); boolean isFeatureOn = FeatureFlagUtils .isEnabled(mContext, FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_TRACKPAD); boolean isTouchpad = InputPeripheralsSettingsUtils.isTouchpad(); boolean isPointerCustomizationEnabled = android.view.flags.Flags.enableVectorCursorA11ySettings(); boolean isMouse = InputPeripheralsSettingsUtils.isMouse(); return (isFeatureOn && isTouchpad) || (isPointerCustomizationEnabled && isMouse) ? AVAILABLE return ((isFeatureOn && isTouchpad) || (isPointerCustomizationEnabled && isMouse)) && isNewPageFlagDisabled ? AVAILABLE : CONDITIONALLY_UNAVAILABLE; } } tests/robotests/src/com/android/settings/inputmethod/TouchpadAndMouseSettingsControllerTest.java +7 −0 Original line number Diff line number Diff line Loading @@ -23,12 +23,15 @@ import static com.google.common.truth.Truth.assertThat; import static org.junit.Assume.assumeTrue; import android.content.Context; import android.platform.test.annotations.DisableFlags; import android.platform.test.flag.junit.SetFlagsRule; import android.view.InputDevice; import androidx.preference.Preference; import androidx.test.core.app.ApplicationProvider; import com.android.settings.core.BasePreferenceController; import com.android.settings.keyboard.Flags; import com.android.settings.testutils.shadow.ShadowInputDevice; import org.junit.Before; Loading @@ -47,6 +50,8 @@ import org.robolectric.annotation.Config; ShadowInputDevice.class, }) public class TouchpadAndMouseSettingsControllerTest { @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); @Rule public MockitoRule rule = MockitoJUnit.rule(); Loading Loading @@ -80,6 +85,7 @@ public class TouchpadAndMouseSettingsControllerTest { } @Test @DisableFlags(Flags.FLAG_KEYBOARD_AND_TOUCHPAD_A11Y_NEW_PAGE_ENABLED) public void getAvailabilityStatus_isTouchpadAvailable() { int deviceId = 1; ShadowInputDevice.sDeviceIds = new int[]{deviceId}; Loading @@ -92,6 +98,7 @@ public class TouchpadAndMouseSettingsControllerTest { } @Test @DisableFlags(Flags.FLAG_KEYBOARD_AND_TOUCHPAD_A11Y_NEW_PAGE_ENABLED) public void getAvailabilityStatus_isMouseAvailable() { assumeTrue(enableVectorCursorA11ySettings()); Loading Loading
res/drawable/ic_settings_mouse.xml 0 → 100644 +14 −0 Original line number Diff line number Diff line <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewportWidth="24" android:viewportHeight="24" android:tint="?android:attr/colorControlNormal"> <group> <clip-path android:pathData="M0,0h24v24h-24z"/> <path android:pathData="M12,22C10.067,22 8.417,21.317 7.05,19.95C5.683,18.583 5,16.933 5,15V9C5,7.067 5.683,5.417 7.05,4.05C8.417,2.683 10.067,2 12,2C13.933,2 15.583,2.683 16.95,4.05C18.317,5.417 19,7.067 19,9V15C19,16.933 18.317,18.583 16.95,19.95C15.583,21.317 13.933,22 12,22ZM13,9H17C17,7.8 16.617,6.742 15.85,5.825C15.1,4.908 14.15,4.333 13,4.1V9ZM7,9H11V4.1C9.85,4.333 8.892,4.908 8.125,5.825C7.375,6.742 7,7.8 7,9ZM12,20C13.383,20 14.558,19.517 15.525,18.55C16.508,17.567 17,16.383 17,15V11H7V15C7,16.383 7.483,17.567 8.45,18.55C9.433,19.517 10.617,20 12,20Z" android:fillColor="@android:color/white"/> </group> </vector> No newline at end of file
res/values/strings.xml +2 −0 Original line number Diff line number Diff line Loading @@ -4650,6 +4650,8 @@ <string name="trackpad_mouse_settings">Touchpad & mouse</string> <!-- Title for the button to trigger the 'mouse settings' page if connect with a mouse. [CHAR LIMIT=35] --> <string name="mouse_settings">Mouse</string> <!-- Summary text for mouse setting page. [CHAR LIMIT=35] --> <string name="mouse_settings_summary">Pointer speed, swap buttons, button customisation</string> <!-- Summary text for the 'trackpad settings' page. [CHAR LIMIT=100] --> <string name="trackpad_settings_summary">Pointer speed, gestures</string>
res/xml/system_dashboard_fragment.xml +18 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,24 @@ android:fragment="com.android.settings.inputmethod.TouchpadAndMouseSettings" settings:controller="com.android.settings.inputmethod.TouchpadAndMouseSettingsController"/> <Preference android:key="touchpad_settings" android:title="@string/trackpad_settings" android:summary="@string/trackpad_settings_summary" android:icon="@drawable/ic_settings_trackpad" android:order="-253" android:fragment="com.android.settings.inputmethod.TouchpadSettingFragment" settings:controller="com.android.settings.inputmethod.TouchpadSettingsController"/> <Preference android:key="mouse_settings" android:title="@string/mouse_settings" android:summary="@string/mouse_settings_summary" android:icon="@drawable/ic_settings_mouse" android:order="-252" android:fragment="com.android.settings.inputmethod.MouseSettingFragment" settings:controller="com.android.settings.inputmethod.MouseSettingsController"/> <Preference android:key="gesture_settings" android:title="@string/gesture_preference_title" Loading
src/com/android/settings/inputmethod/TouchpadAndMouseSettingsController.java +4 −1 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import androidx.preference.Preference; import com.android.settings.core.BasePreferenceController; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.keyboard.Flags; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStop; Loading Loading @@ -85,13 +86,15 @@ public class TouchpadAndMouseSettingsController extends BasePreferenceController @Override public int getAvailabilityStatus() { boolean isNewPageFlagDisabled = !Flags.keyboardAndTouchpadA11yNewPageEnabled(); boolean isFeatureOn = FeatureFlagUtils .isEnabled(mContext, FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_TRACKPAD); boolean isTouchpad = InputPeripheralsSettingsUtils.isTouchpad(); boolean isPointerCustomizationEnabled = android.view.flags.Flags.enableVectorCursorA11ySettings(); boolean isMouse = InputPeripheralsSettingsUtils.isMouse(); return (isFeatureOn && isTouchpad) || (isPointerCustomizationEnabled && isMouse) ? AVAILABLE return ((isFeatureOn && isTouchpad) || (isPointerCustomizationEnabled && isMouse)) && isNewPageFlagDisabled ? AVAILABLE : CONDITIONALLY_UNAVAILABLE; } }
tests/robotests/src/com/android/settings/inputmethod/TouchpadAndMouseSettingsControllerTest.java +7 −0 Original line number Diff line number Diff line Loading @@ -23,12 +23,15 @@ import static com.google.common.truth.Truth.assertThat; import static org.junit.Assume.assumeTrue; import android.content.Context; import android.platform.test.annotations.DisableFlags; import android.platform.test.flag.junit.SetFlagsRule; import android.view.InputDevice; import androidx.preference.Preference; import androidx.test.core.app.ApplicationProvider; import com.android.settings.core.BasePreferenceController; import com.android.settings.keyboard.Flags; import com.android.settings.testutils.shadow.ShadowInputDevice; import org.junit.Before; Loading @@ -47,6 +50,8 @@ import org.robolectric.annotation.Config; ShadowInputDevice.class, }) public class TouchpadAndMouseSettingsControllerTest { @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); @Rule public MockitoRule rule = MockitoJUnit.rule(); Loading Loading @@ -80,6 +85,7 @@ public class TouchpadAndMouseSettingsControllerTest { } @Test @DisableFlags(Flags.FLAG_KEYBOARD_AND_TOUCHPAD_A11Y_NEW_PAGE_ENABLED) public void getAvailabilityStatus_isTouchpadAvailable() { int deviceId = 1; ShadowInputDevice.sDeviceIds = new int[]{deviceId}; Loading @@ -92,6 +98,7 @@ public class TouchpadAndMouseSettingsControllerTest { } @Test @DisableFlags(Flags.FLAG_KEYBOARD_AND_TOUCHPAD_A11Y_NEW_PAGE_ENABLED) public void getAvailabilityStatus_isMouseAvailable() { assumeTrue(enableVectorCursorA11ySettings()); Loading