diff options
| author | 2024-07-11 12:15:06 +0000 | |
|---|---|---|
| committer | 2024-08-01 11:13:38 +0000 | |
| commit | d106989e741c284ebdbaf761f0e1573ec20c2a31 (patch) | |
| tree | 0b2625583e976523e2a91869de1866261925548b | |
| parent | 65672c908669a0e2036253c4b92fe1aa00b6f555 (diff) | |
Add "Touchpad Visualizer" to input developer options
Bug: 28231224
Test: atest TouchpadVisualizerPreferenceControllerTest
Test: Manual testing using
$ adb shell settings get system touchpad_visualizer
Flag: com.android.hardware.input.touchpad_visualizer
Change-Id: I4f6b70b0da12253950b017363f3afcecc1a32570
7 files changed, 29 insertions, 0 deletions
diff --git a/core/java/android/hardware/input/InputSettings.java b/core/java/android/hardware/input/InputSettings.java index bec1c9ef8059..d85e41d19c68 100644 --- a/core/java/android/hardware/input/InputSettings.java +++ b/core/java/android/hardware/input/InputSettings.java @@ -25,6 +25,7 @@ import static com.android.hardware.input.Flags.keyboardA11ySlowKeysFlag; import static com.android.hardware.input.Flags.keyboardA11yStickyKeysFlag; import static com.android.hardware.input.Flags.keyboardA11yMouseKeys; import static com.android.hardware.input.Flags.touchpadTapDragging; +import static com.android.hardware.input.Flags.touchpadVisualizer; import static com.android.input.flags.Flags.enableInputFilterRustImpl; import android.Manifest; @@ -326,6 +327,15 @@ public class InputSettings { } /** + * Returns true if the feature flag for touchpad visualizer is enabled. + * + * @hide + */ + public static boolean isTouchpadVisualizerFeatureFlagEnabled() { + return touchpadVisualizer(); + } + + /** * Returns true if the touchpad should allow tap dragging. * * The returned value only applies to gesture-compatible touchpads. diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 0ee6f43e1329..5703f693792c 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -5912,6 +5912,14 @@ public final class Settings { public static final String SHOW_KEY_PRESSES = "show_key_presses"; /** + * Show touchpad input visualization on screen. + * 0 = no + * 1 = yes + * @hide + */ + public static final String TOUCHPAD_VISUALIZER = "touchpad_visualizer"; + + /** * Show rotary input dispatched to focused windows on the screen. * 0 = no * 1 = yes diff --git a/core/proto/android/providers/settings/system.proto b/core/proto/android/providers/settings/system.proto index e5ced2521134..e795e8096641 100644 --- a/core/proto/android/providers/settings/system.proto +++ b/core/proto/android/providers/settings/system.proto @@ -69,6 +69,7 @@ message SystemSettingsProto { // 0 = no, 1 = yes optional SettingProto window_orientation_listener_log = 3 [ (android.privacy).dest = DEST_AUTOMATIC ]; optional SettingProto show_key_presses = 4 [ (android.privacy).dest = DEST_AUTOMATIC ]; + optional SettingProto touchpad_visualizer = 5 [ (android.privacy).dest = DEST_AUTOMATIC ]; } optional DevOptions developer_options = 7; diff --git a/packages/SettingsLib/res/values/strings.xml b/packages/SettingsLib/res/values/strings.xml index 5c4cdb271a2f..687c72878bdb 100644 --- a/packages/SettingsLib/res/values/strings.xml +++ b/packages/SettingsLib/res/values/strings.xml @@ -881,6 +881,11 @@ <!-- UI debug setting: show physical key presses summary [CHAR LIMIT=150] --> <string name="show_key_presses_summary">Show visual feedback for physical key presses</string> + <!-- UI debug setting: Title text for a debug setting that enables a visualization of touchpad input in a window on the screen [CHAR LIMIT=50] --> + <string name="touchpad_visualizer">Show touchpad input</string> + <!-- UI debug setting: Summary text for a debug setting that enables a visualization of touchpad input in a window on the screen [CHAR LIMIT=150] --> + <string name="touchpad_visualizer_summary">Screen overlay displaying touchpad input data and recognized gestures</string> + <!-- UI debug setting: show where surface updates happen? [CHAR LIMIT=25] --> <string name="show_screen_updates">Show surface updates</string> <!-- UI debug setting: show surface updates summary [CHAR LIMIT=50] --> diff --git a/packages/SettingsProvider/src/android/provider/settings/validators/SystemSettingsValidators.java b/packages/SettingsProvider/src/android/provider/settings/validators/SystemSettingsValidators.java index 7b927d793c37..282327739fc6 100644 --- a/packages/SettingsProvider/src/android/provider/settings/validators/SystemSettingsValidators.java +++ b/packages/SettingsProvider/src/android/provider/settings/validators/SystemSettingsValidators.java @@ -200,6 +200,7 @@ public class SystemSettingsValidators { VALIDATORS.put(System.POINTER_LOCATION, BOOLEAN_VALIDATOR); VALIDATORS.put(System.SHOW_TOUCHES, BOOLEAN_VALIDATOR); VALIDATORS.put(System.SHOW_KEY_PRESSES, BOOLEAN_VALIDATOR); + VALIDATORS.put(System.TOUCHPAD_VISUALIZER, BOOLEAN_VALIDATOR); VALIDATORS.put(System.SHOW_ROTARY_INPUT, BOOLEAN_VALIDATOR); VALIDATORS.put(System.WINDOW_ORIENTATION_LISTENER_LOG, BOOLEAN_VALIDATOR); VALIDATORS.put(System.LOCKSCREEN_SOUNDS_ENABLED, BOOLEAN_VALIDATOR); diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java index cd37ad171fac..3c24f5c56603 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java @@ -2831,6 +2831,9 @@ class SettingsProtoDumpUtil { Settings.System.SHOW_KEY_PRESSES, SystemSettingsProto.DevOptions.SHOW_KEY_PRESSES); dumpSetting(s, p, + Settings.System.TOUCHPAD_VISUALIZER, + SystemSettingsProto.DevOptions.TOUCHPAD_VISUALIZER); + dumpSetting(s, p, Settings.System.POINTER_LOCATION, SystemSettingsProto.DevOptions.POINTER_LOCATION); dumpSetting(s, p, diff --git a/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java b/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java index 411decd8476a..8c9648437b17 100644 --- a/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java +++ b/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java @@ -918,6 +918,7 @@ public class SettingsBackupTest { Settings.System.SHOW_GTALK_SERVICE_STATUS, // candidate for backup? Settings.System.SHOW_TOUCHES, Settings.System.SHOW_KEY_PRESSES, + Settings.System.TOUCHPAD_VISUALIZER, Settings.System.SHOW_ROTARY_INPUT, Settings.System.SIP_ADDRESS_ONLY, // value, not a setting Settings.System.SIP_ALWAYS, // value, not a setting |