Merge "Add Mouse keys A11Y settings to PK settings page" into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
541038ebb7
@@ -4451,6 +4451,10 @@
|
|||||||
<string name="sticky_keys">Sticky keys</string>
|
<string name="sticky_keys">Sticky keys</string>
|
||||||
<!-- Summary text for the 'Sticky keys' preference sub-screen. [CHAR LIMIT=300] -->
|
<!-- Summary text for the 'Sticky keys' preference sub-screen. [CHAR LIMIT=300] -->
|
||||||
<string name="sticky_keys_summary">Press one key at a time for shortcuts instead of holding keys down together</string>
|
<string name="sticky_keys_summary">Press one key at a time for shortcuts instead of holding keys down together</string>
|
||||||
|
<!-- Title for a toggle switch for 'mouse' keys, an accessibility setting that allows the mouse pointer to be controlled using certain keys on a physical keyboard if keyboard is connected. [CHAR LIMIT=35] -->
|
||||||
|
<string name="mouse_keys">Mouse keys</string>
|
||||||
|
<!-- Summary text for the accessibility setting 'Mouse keys' preference sub-screen. [CHAR LIMIT=100] -->
|
||||||
|
<string name="mouse_keys_summary">Use the physical keyboard to control the mouse.</string>
|
||||||
<!-- Title for the button to trigger the 'keyboard shortcuts helper' dialog. [CHAR LIMIT=35] -->
|
<!-- Title for the button to trigger the 'keyboard shortcuts helper' dialog. [CHAR LIMIT=35] -->
|
||||||
<string name="keyboard_shortcuts_helper">Keyboard shortcuts</string>
|
<string name="keyboard_shortcuts_helper">Keyboard shortcuts</string>
|
||||||
<!-- Summary text for the 'keyboard shortcuts helper' dialog. [CHAR LIMIT=100] -->
|
<!-- Summary text for the 'keyboard shortcuts helper' dialog. [CHAR LIMIT=100] -->
|
||||||
|
|||||||
@@ -53,5 +53,11 @@
|
|||||||
android:title="@string/slow_keys"
|
android:title="@string/slow_keys"
|
||||||
android:defaultValue="false" />
|
android:defaultValue="false" />
|
||||||
|
|
||||||
|
<SwitchPreferenceCompat
|
||||||
|
android:key="accessibility_mouse_keys"
|
||||||
|
android:title="@string/mouse_keys"
|
||||||
|
android:summary="@string/mouse_keys_summary"
|
||||||
|
android:defaultValue="false" />
|
||||||
|
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
|||||||
@@ -73,6 +73,7 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
|||||||
private static final String ACCESSIBILITY_BOUNCE_KEYS = "accessibility_bounce_keys";
|
private static final String ACCESSIBILITY_BOUNCE_KEYS = "accessibility_bounce_keys";
|
||||||
private static final String ACCESSIBILITY_SLOW_KEYS = "accessibility_slow_keys";
|
private static final String ACCESSIBILITY_SLOW_KEYS = "accessibility_slow_keys";
|
||||||
private static final String ACCESSIBILITY_STICKY_KEYS = "accessibility_sticky_keys";
|
private static final String ACCESSIBILITY_STICKY_KEYS = "accessibility_sticky_keys";
|
||||||
|
private static final String ACCESSIBILITY_MOUSE_KEYS = "accessibility_mouse_keys";
|
||||||
private static final String KEYBOARD_SHORTCUTS_HELPER = "keyboard_shortcuts_helper";
|
private static final String KEYBOARD_SHORTCUTS_HELPER = "keyboard_shortcuts_helper";
|
||||||
private static final String MODIFIER_KEYS_SETTINGS = "modifier_keys_settings";
|
private static final String MODIFIER_KEYS_SETTINGS = "modifier_keys_settings";
|
||||||
private static final String EXTRA_AUTO_SELECTION = "auto_selection";
|
private static final String EXTRA_AUTO_SELECTION = "auto_selection";
|
||||||
@@ -84,6 +85,8 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
|||||||
Secure.ACCESSIBILITY_SLOW_KEYS);
|
Secure.ACCESSIBILITY_SLOW_KEYS);
|
||||||
private static final Uri sAccessibilityStickyKeysUri = Secure.getUriFor(
|
private static final Uri sAccessibilityStickyKeysUri = Secure.getUriFor(
|
||||||
Secure.ACCESSIBILITY_STICKY_KEYS);
|
Secure.ACCESSIBILITY_STICKY_KEYS);
|
||||||
|
private static final Uri sAccessibilityMouseKeysUri = Secure.getUriFor(
|
||||||
|
Secure.ACCESSIBILITY_MOUSE_KEYS_ENABLED);
|
||||||
public static final int BOUNCE_KEYS_THRESHOLD = 500;
|
public static final int BOUNCE_KEYS_THRESHOLD = 500;
|
||||||
public static final int SLOW_KEYS_THRESHOLD = 500;
|
public static final int SLOW_KEYS_THRESHOLD = 500;
|
||||||
|
|
||||||
@@ -104,7 +107,8 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
|||||||
private TwoStatePreference mAccessibilitySlowKeys = null;
|
private TwoStatePreference mAccessibilitySlowKeys = null;
|
||||||
@Nullable
|
@Nullable
|
||||||
private TwoStatePreference mAccessibilityStickyKeys = null;
|
private TwoStatePreference mAccessibilityStickyKeys = null;
|
||||||
|
@Nullable
|
||||||
|
private TwoStatePreference mAccessibilityMouseKeys = null;
|
||||||
|
|
||||||
private Intent mIntentWaitingForResult;
|
private Intent mIntentWaitingForResult;
|
||||||
private boolean mSupportsFirmwareUpdate;
|
private boolean mSupportsFirmwareUpdate;
|
||||||
@@ -138,6 +142,8 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
|||||||
getContext().getString(R.string.slow_keys_summary, SLOW_KEYS_THRESHOLD));
|
getContext().getString(R.string.slow_keys_summary, SLOW_KEYS_THRESHOLD));
|
||||||
mAccessibilityStickyKeys = Objects.requireNonNull(
|
mAccessibilityStickyKeys = Objects.requireNonNull(
|
||||||
mKeyboardA11yCategory.findPreference(ACCESSIBILITY_STICKY_KEYS));
|
mKeyboardA11yCategory.findPreference(ACCESSIBILITY_STICKY_KEYS));
|
||||||
|
mAccessibilityMouseKeys = Objects.requireNonNull(
|
||||||
|
mKeyboardA11yCategory.findPreference(ACCESSIBILITY_MOUSE_KEYS));
|
||||||
|
|
||||||
FeatureFactory featureFactory = FeatureFactory.getFeatureFactory();
|
FeatureFactory featureFactory = FeatureFactory.getFeatureFactory();
|
||||||
mMetricsFeatureProvider = featureFactory.getMetricsFeatureProvider();
|
mMetricsFeatureProvider = featureFactory.getMetricsFeatureProvider();
|
||||||
@@ -160,6 +166,9 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
|||||||
if (!InputSettings.isAccessibilityStickyKeysFeatureEnabled()) {
|
if (!InputSettings.isAccessibilityStickyKeysFeatureEnabled()) {
|
||||||
mKeyboardA11yCategory.removePreference(mAccessibilityStickyKeys);
|
mKeyboardA11yCategory.removePreference(mAccessibilityStickyKeys);
|
||||||
}
|
}
|
||||||
|
if (!InputSettings.isAccessibilityMouseKeysFeatureFlagEnabled()) {
|
||||||
|
mKeyboardA11yCategory.removePreference(mAccessibilityMouseKeys);
|
||||||
|
}
|
||||||
InputDeviceIdentifier inputDeviceIdentifier = activity.getIntent().getParcelableExtra(
|
InputDeviceIdentifier inputDeviceIdentifier = activity.getIntent().getParcelableExtra(
|
||||||
KeyboardLayoutPickerFragment.EXTRA_INPUT_DEVICE_IDENTIFIER,
|
KeyboardLayoutPickerFragment.EXTRA_INPUT_DEVICE_IDENTIFIER,
|
||||||
InputDeviceIdentifier.class);
|
InputDeviceIdentifier.class);
|
||||||
@@ -208,6 +217,8 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
|||||||
mAccessibilitySlowKeysSwitchPreferenceChangeListener);
|
mAccessibilitySlowKeysSwitchPreferenceChangeListener);
|
||||||
Objects.requireNonNull(mAccessibilityStickyKeys).setOnPreferenceChangeListener(
|
Objects.requireNonNull(mAccessibilityStickyKeys).setOnPreferenceChangeListener(
|
||||||
mAccessibilityStickyKeysSwitchPreferenceChangeListener);
|
mAccessibilityStickyKeysSwitchPreferenceChangeListener);
|
||||||
|
Objects.requireNonNull(mAccessibilityMouseKeys).setOnPreferenceChangeListener(
|
||||||
|
mAccessibilityMouseKeysSwitchPreferenceChangeListener);
|
||||||
registerSettingsObserver();
|
registerSettingsObserver();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -219,6 +230,7 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
|||||||
Objects.requireNonNull(mAccessibilityBounceKeys).setOnPreferenceChangeListener(null);
|
Objects.requireNonNull(mAccessibilityBounceKeys).setOnPreferenceChangeListener(null);
|
||||||
Objects.requireNonNull(mAccessibilitySlowKeys).setOnPreferenceChangeListener(null);
|
Objects.requireNonNull(mAccessibilitySlowKeys).setOnPreferenceChangeListener(null);
|
||||||
Objects.requireNonNull(mAccessibilityStickyKeys).setOnPreferenceChangeListener(null);
|
Objects.requireNonNull(mAccessibilityStickyKeys).setOnPreferenceChangeListener(null);
|
||||||
|
Objects.requireNonNull(mAccessibilityMouseKeys).setOnPreferenceChangeListener(null);
|
||||||
unregisterSettingsObserver();
|
unregisterSettingsObserver();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -309,12 +321,14 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
|||||||
|
|
||||||
if (InputSettings.isAccessibilityBounceKeysFeatureEnabled()
|
if (InputSettings.isAccessibilityBounceKeysFeatureEnabled()
|
||||||
|| InputSettings.isAccessibilityStickyKeysFeatureEnabled()
|
|| InputSettings.isAccessibilityStickyKeysFeatureEnabled()
|
||||||
|| InputSettings.isAccessibilitySlowKeysFeatureFlagEnabled()) {
|
|| InputSettings.isAccessibilitySlowKeysFeatureFlagEnabled()
|
||||||
|
|| InputSettings.isAccessibilityMouseKeysFeatureFlagEnabled()) {
|
||||||
Objects.requireNonNull(mKeyboardA11yCategory).setOrder(2);
|
Objects.requireNonNull(mKeyboardA11yCategory).setOrder(2);
|
||||||
preferenceScreen.addPreference(mKeyboardA11yCategory);
|
preferenceScreen.addPreference(mKeyboardA11yCategory);
|
||||||
updateAccessibilityBounceKeysSwitch();
|
updateAccessibilityBounceKeysSwitch();
|
||||||
updateAccessibilitySlowKeysSwitch();
|
updateAccessibilitySlowKeysSwitch();
|
||||||
updateAccessibilityStickyKeysSwitch();
|
updateAccessibilityStickyKeysSwitch();
|
||||||
|
updateAccessibilityMouseKeysSwitch();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -365,9 +379,17 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
|||||||
mContentObserver,
|
mContentObserver,
|
||||||
UserHandle.myUserId());
|
UserHandle.myUserId());
|
||||||
}
|
}
|
||||||
|
if (InputSettings.isAccessibilityMouseKeysFeatureFlagEnabled()) {
|
||||||
|
contentResolver.registerContentObserver(
|
||||||
|
sAccessibilityMouseKeysUri,
|
||||||
|
false,
|
||||||
|
mContentObserver,
|
||||||
|
UserHandle.myUserId());
|
||||||
|
}
|
||||||
updateAccessibilityBounceKeysSwitch();
|
updateAccessibilityBounceKeysSwitch();
|
||||||
updateAccessibilitySlowKeysSwitch();
|
updateAccessibilitySlowKeysSwitch();
|
||||||
updateAccessibilityStickyKeysSwitch();
|
updateAccessibilityStickyKeysSwitch();
|
||||||
|
updateAccessibilityMouseKeysSwitch();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void unregisterSettingsObserver() {
|
private void unregisterSettingsObserver() {
|
||||||
@@ -398,6 +420,14 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
|||||||
InputSettings.isAccessibilityStickyKeysEnabled(getContext()));
|
InputSettings.isAccessibilityStickyKeysEnabled(getContext()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void updateAccessibilityMouseKeysSwitch() {
|
||||||
|
if (!InputSettings.isAccessibilityMouseKeysFeatureFlagEnabled()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Objects.requireNonNull(mAccessibilityMouseKeys).setChecked(
|
||||||
|
InputSettings.isAccessibilityMouseKeysEnabled(getContext()));
|
||||||
|
}
|
||||||
|
|
||||||
private void toggleKeyboardShortcutsMenu() {
|
private void toggleKeyboardShortcutsMenu() {
|
||||||
getActivity().requestShowKeyboardShortcuts();
|
getActivity().requestShowKeyboardShortcuts();
|
||||||
}
|
}
|
||||||
@@ -422,6 +452,12 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
|||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private final OnPreferenceChangeListener
|
||||||
|
mAccessibilityMouseKeysSwitchPreferenceChangeListener = (preference, newValue) -> {
|
||||||
|
InputSettings.setAccessibilityMouseKeysEnabled(getContext(), (Boolean) newValue);
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
|
||||||
private final ContentObserver mContentObserver = new ContentObserver(new Handler(true)) {
|
private final ContentObserver mContentObserver = new ContentObserver(new Handler(true)) {
|
||||||
@Override
|
@Override
|
||||||
public void onChange(boolean selfChange, Uri uri) {
|
public void onChange(boolean selfChange, Uri uri) {
|
||||||
@@ -431,6 +467,8 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
|||||||
updateAccessibilitySlowKeysSwitch();
|
updateAccessibilitySlowKeysSwitch();
|
||||||
} else if (sAccessibilityStickyKeysUri.equals(uri)) {
|
} else if (sAccessibilityStickyKeysUri.equals(uri)) {
|
||||||
updateAccessibilityStickyKeysSwitch();
|
updateAccessibilityStickyKeysSwitch();
|
||||||
|
} else if (sAccessibilityMouseKeysUri.equals(uri)) {
|
||||||
|
updateAccessibilityMouseKeysSwitch();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user