From 6a12ec34fbc622be3127adc72096471eebc4aea1 Mon Sep 17 00:00:00 2001 From: "sfufa@google.com" Date: Mon, 20 Sep 2021 01:15:03 -0700 Subject: [PATCH] Support Accessibility workspace addition for WorkspaceItemInfo Bug: 192678946 Test: Manual using TalkBack Change-Id: I1d0d06ccac934eb80dba7670e93ec631c12e5074 --- .../accessibility/LauncherAccessibilityDelegate.java | 10 +++++++++- .../launcher3/model/data/WorkspaceItemInfo.java | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) 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); } }