diff options
Diffstat (limited to 'src/com/android/launcher2')
-rw-r--r-- | src/com/android/launcher2/LauncherModel.java | 18 | ||||
-rw-r--r-- | src/com/android/launcher2/Workspace.java | 10 |
2 files changed, 28 insertions, 0 deletions
diff --git a/src/com/android/launcher2/LauncherModel.java b/src/com/android/launcher2/LauncherModel.java index 269a0fd60..909cc795f 100644 --- a/src/com/android/launcher2/LauncherModel.java +++ b/src/com/android/launcher2/LauncherModel.java @@ -2168,6 +2168,24 @@ public class LauncherModel extends BroadcastReceiver { } /** + * Returns the set of workspace ShortcutInfos with the specified intent. + */ + static ArrayList<ItemInfo> getWorkspaceShortcutItemInfosWithIntent(Intent intent) { + ArrayList<ItemInfo> items = new ArrayList<ItemInfo>(); + synchronized (sBgLock) { + for (ItemInfo info : sBgWorkspaceItems) { + if (info instanceof ShortcutInfo) { + ShortcutInfo shortcut = (ShortcutInfo) info; + if (shortcut.intent.toUri(0).equals(intent.toUri(0))) { + items.add(shortcut); + } + } + } + } + return items; + } + + /** * Make an ShortcutInfo object for a shortcut that isn't an application. */ private ShortcutInfo getShortcutInfo(Cursor c, Context context, diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java index 504f9dcfe..897e95a1f 100644 --- a/src/com/android/launcher2/Workspace.java +++ b/src/com/android/launcher2/Workspace.java @@ -3697,6 +3697,8 @@ public class Workspace extends SmoothPagedView } // Clean up new-apps animation list + final LauncherModel model = mLauncher.getModel(); + final Context context = getContext(); post(new Runnable() { @Override public void run() { @@ -3717,6 +3719,14 @@ public class Workspace extends SmoothPagedView if (packageNames.contains(pn)) { iter.remove(); } + + // It is possible that we've queued an item to be loaded, yet it has + // not been added to the workspace, so remove those items as well. + ArrayList<ItemInfo> shortcuts = + model.getWorkspaceShortcutItemInfosWithIntent(intent); + for (ItemInfo info : shortcuts) { + model.deleteItemFromDatabase(context, info); + } } catch (URISyntaxException e) {} } } |