diff --git a/src/com/android/launcher3/accessibility/LauncherAccessibilityDelegate.java b/src/com/android/launcher3/accessibility/LauncherAccessibilityDelegate.java index 2032b26992..157df5d070 100644 --- a/src/com/android/launcher3/accessibility/LauncherAccessibilityDelegate.java +++ b/src/com/android/launcher3/accessibility/LauncherAccessibilityDelegate.java @@ -162,7 +162,8 @@ public class LauncherAccessibilityDelegate extends AccessibilityDelegate impleme } } - if ((item instanceof AppInfo) || (item instanceof PendingAddItemInfo)) { + if ((item instanceof AppInfo) || (item instanceof WorkspaceItemInfo) + || (item instanceof PendingAddItemInfo)) { out.add(mActions.get(ADD_TO_WORKSPACE)); } } @@ -244,6 +245,13 @@ public class LauncherAccessibilityDelegate extends AccessibilityDelegate impleme mLauncher.addPendingItem(info, Favorites.CONTAINER_DESKTOP, screenId, coordinates, info.spanX, info.spanY); } + else if (item instanceof WorkspaceItemInfo) { + WorkspaceItemInfo info = ((WorkspaceItemInfo) item).clone(); + mLauncher.getModelWriter().addItemToDatabase(info, + Favorites.CONTAINER_DESKTOP, + screenId, coordinates[0], coordinates[1]); + mLauncher.bindItems(Collections.singletonList(info), true, true); + } })); return true; } else if (action == MOVE_TO_WORKSPACE) { diff --git a/src/com/android/launcher3/model/data/WorkspaceItemInfo.java b/src/com/android/launcher3/model/data/WorkspaceItemInfo.java index 690e904a02..a395709bbb 100644 --- a/src/com/android/launcher3/model/data/WorkspaceItemInfo.java +++ b/src/com/android/launcher3/model/data/WorkspaceItemInfo.java @@ -204,7 +204,7 @@ public class WorkspaceItemInfo extends ItemInfoWithIcon { } @Override - public ItemInfoWithIcon clone() { + public WorkspaceItemInfo clone() { return new WorkspaceItemInfo(this); } }