summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher2/Launcher.java
diff options
context:
space:
mode:
authorWinson Chung <winsonc@google.com>2013-05-08 18:55:45 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-05-08 18:55:45 +0000
commit56d796a9b09725fc44714bc2216d6bc6c4746b95 (patch)
tree07e0ca73472ff1ea0945df9a0f33a17dce579e07 /src/com/android/launcher2/Launcher.java
parent84037f2f3304fab739e73928171d133c339ba3ce (diff)
parent83892cc0768bd6d7f0827886e9e7a2eb3eed2b01 (diff)
downloadandroid_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.java36
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();
}