diff options
author | Romain Guy <romainguy@android.com> | 2009-06-24 13:45:46 -0700 |
---|---|---|
committer | Romain Guy <romainguy@android.com> | 2009-06-24 13:45:46 -0700 |
commit | b132a97cb7ee976bc54370fd0d5899876eaaf33a (patch) | |
tree | d13f251a1bec595bc468e3421ae1c157cc232290 /src/com/android/launcher | |
parent | 1ce1a24cba4dc41bccfeab6fccb2f3355423841a (diff) | |
download | android_packages_apps_Trebuchet-b132a97cb7ee976bc54370fd0d5899876eaaf33a.tar.gz android_packages_apps_Trebuchet-b132a97cb7ee976bc54370fd0d5899876eaaf33a.tar.bz2 android_packages_apps_Trebuchet-b132a97cb7ee976bc54370fd0d5899876eaaf33a.zip |
Fixes #1940691. Sync packages when home receives a reinstall notification.
Home was only updating known activities. This change makes home also check for
removed activities and added activities.
Diffstat (limited to 'src/com/android/launcher')
-rw-r--r-- | src/com/android/launcher/LauncherModel.java | 37 |
1 files changed, 23 insertions, 14 deletions
diff --git a/src/com/android/launcher/LauncherModel.java b/src/com/android/launcher/LauncherModel.java index a1398d437..591463bd0 100644 --- a/src/com/android/launcher/LauncherModel.java +++ b/src/com/android/launcher/LauncherModel.java @@ -244,6 +244,8 @@ public class LauncherModel { } } + if (syncLocked(launcher, packageName)) changed = true; + if (changed) { adapter.sort(new ApplicationInfoComparator()); adapter.notifyDataSetChanged(); @@ -268,24 +270,31 @@ public class LauncherModel { } if (packageName != null && packageName.length() > 0) { - final PackageManager packageManager = launcher.getPackageManager(); - final List<ResolveInfo> matches = findActivitiesForPackage(packageManager, packageName); - - if (matches.size() > 0) { + if (syncLocked(launcher, packageName)) { final ApplicationsAdapter adapter = mApplicationsAdapter; + adapter.sort(new ApplicationInfoComparator()); + adapter.notifyDataSetChanged(); + } + } + } - // Find disabled activities and remove them from the adapter - boolean removed = removeDisabledActivities(packageName, matches, adapter); - // Find enable activities and add them to the adapter - // Also updates existing activities with new labels/icons - boolean added = addEnabledAndUpdateActivities(matches, adapter, launcher); + private boolean syncLocked(Launcher launcher, String packageName) { + final PackageManager packageManager = launcher.getPackageManager(); + final List<ResolveInfo> matches = findActivitiesForPackage(packageManager, packageName); - if (added || removed) { - adapter.sort(new ApplicationInfoComparator()); - adapter.notifyDataSetChanged(); - } - } + if (matches.size() > 0) { + final ApplicationsAdapter adapter = mApplicationsAdapter; + + // Find disabled activities and remove them from the adapter + boolean removed = removeDisabledActivities(packageName, matches, adapter); + // Find enable activities and add them to the adapter + // Also updates existing activities with new labels/icons + boolean added = addEnabledAndUpdateActivities(matches, adapter, launcher); + + return added || removed; } + + return false; } private static List<ResolveInfo> findActivitiesForPackage(PackageManager packageManager, |