From f788bbb0c43dfecdf46d0dda2f74c1131bd549ff Mon Sep 17 00:00:00 2001 From: Jon Miranda Date: Mon, 4 Nov 2019 14:19:17 -0800 Subject: Add additional shortcutExists check to prevent same app from being auto added. Since we made the change to treat all auto added workspace items as promise icons, the initial shortcutExists check breaks since its comparing the promise intent to the actual app intent. This additional shortcutExists check can compare the proper intents. Bug: 143803446 Change-Id: Ifa27b15205d6e17f83a4437ac175d51815688c84 --- src/com/android/launcher3/model/AddWorkspaceItemsTask.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/com/android/launcher3/model/AddWorkspaceItemsTask.java b/src/com/android/launcher3/model/AddWorkspaceItemsTask.java index 37f28a9a2..b8c583c14 100644 --- a/src/com/android/launcher3/model/AddWorkspaceItemsTask.java +++ b/src/com/android/launcher3/model/AddWorkspaceItemsTask.java @@ -140,6 +140,15 @@ public class AddWorkspaceItemsTask extends BaseModelUpdateTask { // or app was already installed for another user. itemInfo = new AppInfo(app.getContext(), activities.get(0), item.user) .makeWorkspaceItem(); + + if (shortcutExists(dataModel, itemInfo.getIntent(), itemInfo.user)) { + // We need this additional check here since we treat all auto added + // workspace items as promise icons. At this point we now have the + // correct intent to compare against existing workspace icons. + // Icon already exists on the workspace and should not be auto-added. + continue; + } + WorkspaceItemInfo wii = (WorkspaceItemInfo) itemInfo; wii.title = ""; wii.applyFrom(app.getIconCache().getDefaultIcon(item.user)); -- cgit v1.2.3