diff options
author | Hyunyoung Song <hyunyoungs@google.com> | 2015-03-11 16:36:52 -0700 |
---|---|---|
committer | Hyunyoung Song <hyunyoungs@google.com> | 2015-03-11 16:36:52 -0700 |
commit | 70a48befe48af0a318e88745f480d2ed42936bb5 (patch) | |
tree | 7d180c6d427de1cea901a4b465b96bc20aaa0e0a /src/com/android/launcher3/LauncherModel.java | |
parent | fc52a8fb0312393e0a729764fbe57c43839e4c0f (diff) | |
download | android_packages_apps_Trebuchet-70a48befe48af0a318e88745f480d2ed42936bb5.tar.gz android_packages_apps_Trebuchet-70a48befe48af0a318e88745f480d2ed42936bb5.tar.bz2 android_packages_apps_Trebuchet-70a48befe48af0a318e88745f480d2ed42936bb5.zip |
Fix widget refresh issue on package install/uninstall
Culprit CL: https://googleplex-android-review.git.corp.google.com/#/c/592303/3/src/com/android/launcher3/LauncherModel.java
b/19658229
Change-Id: I02b0b2a0ed9bc3200bbe1edcb251cf0efe939e53
Diffstat (limited to 'src/com/android/launcher3/LauncherModel.java')
-rw-r--r-- | src/com/android/launcher3/LauncherModel.java | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java index 3cada6fb8..2fd9db2c3 100644 --- a/src/com/android/launcher3/LauncherModel.java +++ b/src/com/android/launcher3/LauncherModel.java @@ -167,7 +167,6 @@ public class LauncherModel extends BroadcastReceiver // sBgWidgetProviders is the set of widget providers including custom internal widgets public static HashMap<ComponentName, LauncherAppWidgetProviderInfo> sBgWidgetProviders; - public static boolean sWidgetProvidersDirty; // sPendingPackages is a set of packages which could be on sdcard and are not available yet static final HashMap<UserHandleCompat, HashSet<String>> sPendingPackages = @@ -3252,7 +3251,7 @@ public class LauncherModel extends BroadcastReceiver } final ArrayList<Object> widgetsAndShortcuts = - getSortedWidgetsAndShortcuts(context); + getSortedWidgetsAndShortcuts(context, true /* refresh */); mHandler.post(new Runnable() { @Override public void run() { @@ -3275,9 +3274,10 @@ public class LauncherModel extends BroadcastReceiver } } - public static List<LauncherAppWidgetProviderInfo> getWidgetProviders(Context context) { + public static List<LauncherAppWidgetProviderInfo> getWidgetProviders(Context context, + boolean refresh) { synchronized (sBgLock) { - if (sBgWidgetProviders != null && !sWidgetProvidersDirty) { + if (sBgWidgetProviders != null && !refresh) { return new ArrayList<LauncherAppWidgetProviderInfo>(sBgWidgetProviders.values()); } sBgWidgetProviders = new HashMap<ComponentName, LauncherAppWidgetProviderInfo>(); @@ -3294,7 +3294,6 @@ public class LauncherModel extends BroadcastReceiver info = new LauncherAppWidgetProviderInfo(context, widget); sBgWidgetProviders.put(info.provider, info); } - sWidgetProvidersDirty = false; return new ArrayList<LauncherAppWidgetProviderInfo>(sBgWidgetProviders.values()); } } @@ -3302,17 +3301,17 @@ public class LauncherModel extends BroadcastReceiver public static LauncherAppWidgetProviderInfo getProviderInfo(Context ctx, ComponentName name) { synchronized (sBgLock) { if (sBgWidgetProviders == null) { - getWidgetProviders(ctx); + getWidgetProviders(ctx, false /* refresh */); } return sBgWidgetProviders.get(name); } } // Returns a list of ResolveInfos/AppWidgetInfos in sorted order - public static ArrayList<Object> getSortedWidgetsAndShortcuts(Context context) { + public static ArrayList<Object> getSortedWidgetsAndShortcuts(Context context, boolean refresh) { PackageManager packageManager = context.getPackageManager(); final ArrayList<Object> widgetsAndShortcuts = new ArrayList<Object>(); - widgetsAndShortcuts.addAll(getWidgetProviders(context)); + widgetsAndShortcuts.addAll(getWidgetProviders(context, refresh)); Intent shortcutsIntent = new Intent(Intent.ACTION_CREATE_SHORTCUT); widgetsAndShortcuts.addAll(packageManager.queryIntentActivities(shortcutsIntent, 0)); Collections.sort(widgetsAndShortcuts, new WidgetAndShortcutNameComparator(context)); |