[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
This commit is contained in:
committed by
Shaowei Shen
parent
929b8eb51d
commit
06fe204a69
14
res/drawable/ic_settings_mouse.xml
Normal file
14
res/drawable/ic_settings_mouse.xml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<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>
|
@@ -4650,6 +4650,8 @@
|
|||||||
<string name="trackpad_mouse_settings">Touchpad & mouse</string>
|
<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] -->
|
<!-- Title for the button to trigger the 'mouse settings' page if connect with a mouse. [CHAR LIMIT=35] -->
|
||||||
<string name="mouse_settings">Mouse</string>
|
<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] -->
|
<!-- Summary text for the 'trackpad settings' page. [CHAR LIMIT=100] -->
|
||||||
<string name="trackpad_settings_summary">Pointer speed, gestures</string>
|
<string name="trackpad_settings_summary">Pointer speed, gestures</string>
|
||||||
|
|
||||||
|
@@ -46,6 +46,24 @@
|
|||||||
android:fragment="com.android.settings.inputmethod.TouchpadAndMouseSettings"
|
android:fragment="com.android.settings.inputmethod.TouchpadAndMouseSettings"
|
||||||
settings:controller="com.android.settings.inputmethod.TouchpadAndMouseSettingsController"/>
|
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
|
<Preference
|
||||||
android:key="gesture_settings"
|
android:key="gesture_settings"
|
||||||
android:title="@string/gesture_preference_title"
|
android:title="@string/gesture_preference_title"
|
||||||
|
@@ -26,6 +26,7 @@ import androidx.preference.Preference;
|
|||||||
|
|
||||||
import com.android.settings.core.BasePreferenceController;
|
import com.android.settings.core.BasePreferenceController;
|
||||||
import com.android.settings.core.PreferenceControllerMixin;
|
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.LifecycleObserver;
|
||||||
import com.android.settingslib.core.lifecycle.events.OnStart;
|
import com.android.settingslib.core.lifecycle.events.OnStart;
|
||||||
import com.android.settingslib.core.lifecycle.events.OnStop;
|
import com.android.settingslib.core.lifecycle.events.OnStop;
|
||||||
@@ -85,13 +86,15 @@ public class TouchpadAndMouseSettingsController extends BasePreferenceController
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getAvailabilityStatus() {
|
public int getAvailabilityStatus() {
|
||||||
|
boolean isNewPageFlagDisabled = !Flags.keyboardAndTouchpadA11yNewPageEnabled();
|
||||||
boolean isFeatureOn = FeatureFlagUtils
|
boolean isFeatureOn = FeatureFlagUtils
|
||||||
.isEnabled(mContext, FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_TRACKPAD);
|
.isEnabled(mContext, FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_TRACKPAD);
|
||||||
boolean isTouchpad = InputPeripheralsSettingsUtils.isTouchpad();
|
boolean isTouchpad = InputPeripheralsSettingsUtils.isTouchpad();
|
||||||
boolean isPointerCustomizationEnabled =
|
boolean isPointerCustomizationEnabled =
|
||||||
android.view.flags.Flags.enableVectorCursorA11ySettings();
|
android.view.flags.Flags.enableVectorCursorA11ySettings();
|
||||||
boolean isMouse = InputPeripheralsSettingsUtils.isMouse();
|
boolean isMouse = InputPeripheralsSettingsUtils.isMouse();
|
||||||
return (isFeatureOn && isTouchpad) || (isPointerCustomizationEnabled && isMouse) ? AVAILABLE
|
return ((isFeatureOn && isTouchpad) || (isPointerCustomizationEnabled && isMouse))
|
||||||
|
&& isNewPageFlagDisabled ? AVAILABLE
|
||||||
: CONDITIONALLY_UNAVAILABLE;
|
: CONDITIONALLY_UNAVAILABLE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -23,12 +23,15 @@ import static com.google.common.truth.Truth.assertThat;
|
|||||||
import static org.junit.Assume.assumeTrue;
|
import static org.junit.Assume.assumeTrue;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.platform.test.annotations.DisableFlags;
|
||||||
|
import android.platform.test.flag.junit.SetFlagsRule;
|
||||||
import android.view.InputDevice;
|
import android.view.InputDevice;
|
||||||
|
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
import androidx.test.core.app.ApplicationProvider;
|
import androidx.test.core.app.ApplicationProvider;
|
||||||
|
|
||||||
import com.android.settings.core.BasePreferenceController;
|
import com.android.settings.core.BasePreferenceController;
|
||||||
|
import com.android.settings.keyboard.Flags;
|
||||||
import com.android.settings.testutils.shadow.ShadowInputDevice;
|
import com.android.settings.testutils.shadow.ShadowInputDevice;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -47,6 +50,8 @@ import org.robolectric.annotation.Config;
|
|||||||
ShadowInputDevice.class,
|
ShadowInputDevice.class,
|
||||||
})
|
})
|
||||||
public class TouchpadAndMouseSettingsControllerTest {
|
public class TouchpadAndMouseSettingsControllerTest {
|
||||||
|
@Rule
|
||||||
|
public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
|
||||||
@Rule
|
@Rule
|
||||||
public MockitoRule rule = MockitoJUnit.rule();
|
public MockitoRule rule = MockitoJUnit.rule();
|
||||||
|
|
||||||
@@ -80,6 +85,7 @@ public class TouchpadAndMouseSettingsControllerTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@DisableFlags(Flags.FLAG_KEYBOARD_AND_TOUCHPAD_A11Y_NEW_PAGE_ENABLED)
|
||||||
public void getAvailabilityStatus_isTouchpadAvailable() {
|
public void getAvailabilityStatus_isTouchpadAvailable() {
|
||||||
int deviceId = 1;
|
int deviceId = 1;
|
||||||
ShadowInputDevice.sDeviceIds = new int[]{deviceId};
|
ShadowInputDevice.sDeviceIds = new int[]{deviceId};
|
||||||
@@ -92,6 +98,7 @@ public class TouchpadAndMouseSettingsControllerTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@DisableFlags(Flags.FLAG_KEYBOARD_AND_TOUCHPAD_A11Y_NEW_PAGE_ENABLED)
|
||||||
public void getAvailabilityStatus_isMouseAvailable() {
|
public void getAvailabilityStatus_isMouseAvailable() {
|
||||||
assumeTrue(enableVectorCursorA11ySettings());
|
assumeTrue(enableVectorCursorA11ySettings());
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user