Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 06fe204a authored by shaoweishen's avatar shaoweishen Committed by Shaowei Shen
Browse files

[Physical Keybaord] Add keyboard touchpad/Mouse page - part2

screenshot: https://screenshot.googleplex.com/A4yihXmkTTo2nM3.png

Add seperate controllers in page and guard with flag.
Original controller will be disabled if flag is off.

This is part of feature for keyboard setting update.
document: go/new-a11y-touchpad-mouse-page

Bug: 377602364
Test: atest SettingsRoboTests
Flag: com.android.settings.keyboard.keyboard_and_touchpad_a11y_new_page_enabled
Change-Id: I20bf7c65a7f9adc734c7382f23a92d1eb41822f1
parent 929b8eb5
Loading
Loading
Loading
Loading
+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
+2 −0
Original line number Diff line number Diff line
@@ -4650,6 +4650,8 @@
    <string name="trackpad_mouse_settings">Touchpad &amp; 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>
+18 −0
Original line number Diff line number Diff line
@@ -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"
+4 −1
Original line number Diff line number Diff line
@@ -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;
@@ -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;
    }
}
+7 −0
Original line number Diff line number Diff line
@@ -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;
@@ -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();

@@ -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};
@@ -92,6 +98,7 @@ public class TouchpadAndMouseSettingsControllerTest {
    }

    @Test
    @DisableFlags(Flags.FLAG_KEYBOARD_AND_TOUCHPAD_A11Y_NEW_PAGE_ENABLED)
    public void getAvailabilityStatus_isMouseAvailable() {
        assumeTrue(enableVectorCursorA11ySettings());