diff options
author | Winson Chung <winsonc@google.com> | 2013-05-08 18:55:45 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-05-08 18:55:45 +0000 |
commit | 56d796a9b09725fc44714bc2216d6bc6c4746b95 (patch) | |
tree | 07e0ca73472ff1ea0945df9a0f33a17dce579e07 /src/com/android/launcher2/Launcher.java | |
parent | 84037f2f3304fab739e73928171d133c339ba3ce (diff) | |
parent | 83892cc0768bd6d7f0827886e9e7a2eb3eed2b01 (diff) | |
download | android_packages_apps_Trebuchet-56d796a9b09725fc44714bc2216d6bc6c4746b95.tar.gz android_packages_apps_Trebuchet-56d796a9b09725fc44714bc2216d6bc6c4746b95.tar.bz2 android_packages_apps_Trebuchet-56d796a9b09725fc44714bc2216d6bc6c4746b95.zip |
Merge "Fixing issue where updating the visibility of one application can trigger all icons to disappear. (Bug 8757421)" into jb-mr2-dev
Diffstat (limited to 'src/com/android/launcher2/Launcher.java')
-rw-r--r-- | src/com/android/launcher2/Launcher.java | 36 |
1 files changed, 30 insertions, 6 deletions
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java index 7437eacff..d9d20da49 100644 --- a/src/com/android/launcher2/Launcher.java +++ b/src/com/android/launcher2/Launcher.java @@ -3702,27 +3702,51 @@ public final class Launcher extends Activity } /** - * A package was uninstalled. + * A package was uninstalled. We take both the super set of packageNames + * in addition to specific applications to remove, the reason being that + * this can be called when a package is updated as well. In that scenario, + * we only remove specific components from the workspace, where as + * package-removal should clear all items by package name. * * Implementation of the method from LauncherModel.Callbacks. */ - public void bindAppsRemoved(ArrayList<String> packageNames, boolean permanent) { - if (permanent) { - mWorkspace.removeItems(packageNames); + public void bindComponentsRemoved(final ArrayList<String> packageNames, + final ArrayList<ApplicationInfo> appInfos, + final boolean matchPackageNamesOnly) { + if (waitUntilResume(new Runnable() { + public void run() { + bindComponentsRemoved(packageNames, appInfos, matchPackageNamesOnly); + } + })) { + return; + } + + if (matchPackageNamesOnly) { + mWorkspace.removeItemsByPackageName(packageNames); + } else { + mWorkspace.removeItemsByApplicationInfo(appInfos); } if (mAppsCustomizeContent != null) { - mAppsCustomizeContent.removeApps(packageNames); + mAppsCustomizeContent.removeApps(appInfos); } // Notify the drag controller - mDragController.onAppsRemoved(packageNames, this); + mDragController.onAppsRemoved(appInfos, this); } /** * A number of packages were updated. */ public void bindPackagesUpdated() { + if (waitUntilResume(new Runnable() { + public void run() { + bindPackagesUpdated(); + } + })) { + return; + } + if (mAppsCustomizeContent != null) { mAppsCustomizeContent.onPackagesUpdated(); } |