summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher
diff options
context:
space:
mode:
authorRomain Guy <romainguy@android.com>2009-06-24 13:45:46 -0700
committerRomain Guy <romainguy@android.com>2009-06-24 13:45:46 -0700
commitb132a97cb7ee976bc54370fd0d5899876eaaf33a (patch)
treed13f251a1bec595bc468e3421ae1c157cc232290 /src/com/android/launcher
parent1ce1a24cba4dc41bccfeab6fccb2f3355423841a (diff)
downloadandroid_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.java37
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,