From 5bc87ec9aedcb7624f37db3bd9ca58909d06e962 Mon Sep 17 00:00:00 2001 From: vadimt Date: Thu, 7 Feb 2019 19:44:08 -0800 Subject: [PATCH] Removing "accessibility drag" action for shortcuts in menu It's not supported there and causes Launcher to crash Bug: 116023881 Test: Manual Change-Id: Ib8a99ffeed41c3c3b70dec6bab7c5330a0412c66 --- .../LauncherAccessibilityDelegate.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/com/android/launcher3/accessibility/LauncherAccessibilityDelegate.java b/src/com/android/launcher3/accessibility/LauncherAccessibilityDelegate.java index 84edb3dac0..45bade8d6b 100644 --- a/src/com/android/launcher3/accessibility/LauncherAccessibilityDelegate.java +++ b/src/com/android/launcher3/accessibility/LauncherAccessibilityDelegate.java @@ -127,9 +127,7 @@ public class LauncherAccessibilityDelegate extends AccessibilityDelegate impleme } // Do not add move actions for keyboard request as this uses virtual nodes. - if (!fromKeyboard && ((item instanceof ShortcutInfo) - || (item instanceof LauncherAppWidgetInfo) - || (item instanceof FolderInfo))) { + if (!fromKeyboard && itemSupportsAccessibleDrag(item)) { info.addAction(mActions.get(MOVE)); if (item.container >= 0) { @@ -146,6 +144,15 @@ public class LauncherAccessibilityDelegate extends AccessibilityDelegate impleme } } + private boolean itemSupportsAccessibleDrag(ItemInfo item) { + if (item instanceof ShortcutInfo) { + // Support the action unless the item is in a context menu. + return item.screenId >= 0; + } + return (item instanceof LauncherAppWidgetInfo) + || (item instanceof FolderInfo); + } + @Override public boolean performAccessibilityAction(View host, int action, Bundle args) { if ((host.getTag() instanceof ItemInfo)