summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/accessibility/accessibilitymenu/README.md40
1 files changed, 40 insertions, 0 deletions
diff --git a/packages/SystemUI/accessibility/accessibilitymenu/README.md b/packages/SystemUI/accessibility/accessibilitymenu/README.md
new file mode 100644
index 000000000000..b7fc363d4a8c
--- /dev/null
+++ b/packages/SystemUI/accessibility/accessibilitymenu/README.md
@@ -0,0 +1,40 @@
+The Accessibility Menu is an accessibility service
+that presents a large on-screen menu to control your Android device.
+This service can be enabled from the Accessibility page in the Settings app.
+You can control gestures, hardware buttons, navigation, and more. From the menu, you can:
+
+- Take screenshots
+- Lock your screen
+- Open the device's voice assistant
+- Open Quick Settings and Notifications
+- Turn volume up or down
+- Turn brightness up or down
+
+The UI consists of a `ViewPager` populated by multiple pages of shortcut buttons.
+In the settings for the menu, there is an option to display the buttons in a 3x3 grid per page,
+or a 2x2 grid with larger buttons.
+
+Upon activation, most buttons will close the menu while performing their function.
+The exception to this are buttons that adjust a value, like volume or brightness,
+where the user is likely to want to press the button multiple times.
+In addition, touching other parts of the screen or locking the phone through other means
+should dismiss the menu.
+
+A majority of the shortcuts correspond directly to an existing accessibility service global action
+(see `AccessibilityService#performGlobalAction()` constants) that is performed when pressed.
+Shortcuts that navigate to a different menu, such as Quick Settings, use an intent to do so.
+Shortcuts that adjust brightness or volume interface directly with
+`DisplayManager` & `AudioManager` respectively.
+
+To add a new shortcut:
+
+1. Add a value for the new shortcut to the `ShortcutId` enum in `A11yMenuShortcut`.
+2. Put an entry for the enum value into the `sShortcutResource` `HashMap` in `A11yMenuShortcut`.
+This will require resources for a drawable icon, a color for the icon,
+the displayed name of the shortcut and the desired text-to-speech output.
+3. Add the enum value to the `SHORTCUT_LIST_DEFAULT` & `LARGE_SHORTCUT_LIST_DEFAULT` arrays
+in `A11yMenuOverlayLayout`.
+4. For functionality, add a code block to the if-else chain in
+`AccessibilityMenuService.handleClick()`, detailing the effect of the shortcut.
+If you don't want the shortcut to close the menu,
+include a return statement at the end of the code block.