summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/accessibility
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2016-09-21 15:57:55 -0700
committerSunny Goyal <sunnygoyal@google.com>2016-09-23 15:57:08 -0700
commit66b24572e41a13ba5b85b37cf7be64804299c8f6 (patch)
treeeb28b6c264a0a589a911dbcf5540621b111953d9 /src/com/android/launcher3/accessibility
parentf09bfab404fa0118a6c3cb6a317edaab3907eb0b (diff)
downloadandroid_packages_apps_Trebuchet-66b24572e41a13ba5b85b37cf7be64804299c8f6.tar.gz
android_packages_apps_Trebuchet-66b24572e41a13ba5b85b37cf7be64804299c8f6.tar.bz2
android_packages_apps_Trebuchet-66b24572e41a13ba5b85b37cf7be64804299c8f6.zip
Exposing custom actions using keyboard shortcut
Keyboard shortcuts: ctrl+A => Open all apps ctrl+S => shows deep shortcuts ctrl+O => shows custom actions popup This also removes the direct delete/uninstall key shortcuts, making actidental icon removal less likely Bug: 24065447 Change-Id: Iae63370c0f33620628567cffd4df024064d4d02e
Diffstat (limited to 'src/com/android/launcher3/accessibility')
-rw-r--r--src/com/android/launcher3/accessibility/LauncherAccessibilityDelegate.java16
-rw-r--r--src/com/android/launcher3/accessibility/ShortcutMenuAccessibilityDelegate.java6
2 files changed, 14 insertions, 8 deletions
diff --git a/src/com/android/launcher3/accessibility/LauncherAccessibilityDelegate.java b/src/com/android/launcher3/accessibility/LauncherAccessibilityDelegate.java
index 173aad044..439e3145e 100644
--- a/src/com/android/launcher3/accessibility/LauncherAccessibilityDelegate.java
+++ b/src/com/android/launcher3/accessibility/LauncherAccessibilityDelegate.java
@@ -57,7 +57,7 @@ public class LauncherAccessibilityDelegate extends AccessibilityDelegate impleme
protected static final int MOVE = R.id.action_move;
protected static final int MOVE_TO_WORKSPACE = R.id.action_move_to_workspace;
protected static final int RESIZE = R.id.action_resize;
- protected static final int DEEP_SHORTCUTS = R.id.action_deep_shortcuts;
+ public static final int DEEP_SHORTCUTS = R.id.action_deep_shortcuts;
public enum DragType {
ICON,
@@ -100,14 +100,17 @@ public class LauncherAccessibilityDelegate extends AccessibilityDelegate impleme
@Override
public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
super.onInitializeAccessibilityNodeInfo(host, info);
- addActions(host, info);
+ addSupportedActions(host, info, false);
}
- protected void addActions(View host, AccessibilityNodeInfo info) {
+ public void addSupportedActions(View host, AccessibilityNodeInfo info, boolean fromKeyboard) {
if (!(host.getTag() instanceof ItemInfo)) return;
ItemInfo item = (ItemInfo) host.getTag();
- if (host instanceof BubbleTextView && ((BubbleTextView) host).hasDeepShortcuts()) {
+ // If the request came from keyboard, do not add custom shortcuts as that is already
+ // exposed as a direct shortcut
+ if (!fromKeyboard && host instanceof BubbleTextView
+ && ((BubbleTextView) host).hasDeepShortcuts()) {
info.addAction(mActions.get(DEEP_SHORTCUTS));
}
@@ -121,9 +124,10 @@ public class LauncherAccessibilityDelegate extends AccessibilityDelegate impleme
info.addAction(mActions.get(INFO));
}
- if ((item instanceof ShortcutInfo)
+ // Do not add move actions for keyboard request as this uses virtual nodes.
+ if (!fromKeyboard && ((item instanceof ShortcutInfo)
|| (item instanceof LauncherAppWidgetInfo)
- || (item instanceof FolderInfo)) {
+ || (item instanceof FolderInfo))) {
info.addAction(mActions.get(MOVE));
if (item.container >= 0) {
diff --git a/src/com/android/launcher3/accessibility/ShortcutMenuAccessibilityDelegate.java b/src/com/android/launcher3/accessibility/ShortcutMenuAccessibilityDelegate.java
index 0baa8f3db..5baa7b59e 100644
--- a/src/com/android/launcher3/accessibility/ShortcutMenuAccessibilityDelegate.java
+++ b/src/com/android/launcher3/accessibility/ShortcutMenuAccessibilityDelegate.java
@@ -40,8 +40,10 @@ public class ShortcutMenuAccessibilityDelegate extends LauncherAccessibilityDele
}
@Override
- protected void addActions(View host, AccessibilityNodeInfo info) {
- info.addAction(mActions.get(ADD_TO_WORKSPACE));
+ public void addSupportedActions(View host, AccessibilityNodeInfo info, boolean fromKeyboard) {
+ if ((host.getParent() instanceof DeepShortcutView)) {
+ info.addAction(mActions.get(ADD_TO_WORKSPACE));
+ }
}
@Override