diff options
author | Hyunyoung Song <hyunyoungs@google.com> | 2015-05-22 21:50:17 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-05-22 21:51:57 +0000 |
commit | 8f10dc21a08b486a07f4805adcce71b2d77d968c (patch) | |
tree | de039f666ca395f08ccaf009f66570a04e05fa67 /src/com/android/launcher3/LauncherModel.java | |
parent | 5f4e0fdd2e4edeb9211e2dcd1c99497f175731f8 (diff) | |
parent | 9110d485fa12c03df3061278717efb342f1142cf (diff) | |
download | android_packages_apps_Trebuchet-8f10dc21a08b486a07f4805adcce71b2d77d968c.tar.gz android_packages_apps_Trebuchet-8f10dc21a08b486a07f4805adcce71b2d77d968c.tar.bz2 android_packages_apps_Trebuchet-8f10dc21a08b486a07f4805adcce71b2d77d968c.zip |
Merge "Fix widget tray crash on screen rotation introduced by ag/694693" into ub-launcher3-burnaby
Diffstat (limited to 'src/com/android/launcher3/LauncherModel.java')
-rw-r--r-- | src/com/android/launcher3/LauncherModel.java | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java index 8d321e668..224ebbf89 100644 --- a/src/com/android/launcher3/LauncherModel.java +++ b/src/com/android/launcher3/LauncherModel.java @@ -139,6 +139,8 @@ public class LauncherModel extends BroadcastReceiver // < only access in worker thread > AllAppsList mBgAllAppsList; + // Entire list of widgets. + WidgetsModel mBgWidgetsModel; // The lock that must be acquired before referencing any static bg data structures. Unlike // other locks, this one can generally be held long-term because we never expect any of these @@ -2768,12 +2770,14 @@ public class LauncherModel extends BroadcastReceiver @SuppressWarnings("unchecked") final ArrayList<AppInfo> list = (ArrayList<AppInfo>) mBgAllAppsList.data.clone(); + final WidgetsModel widgetList = mBgWidgetsModel.clone(); Runnable r = new Runnable() { public void run() { final long t = SystemClock.uptimeMillis(); final Callbacks callbacks = tryGetCallbacks(oldCallbacks); if (callbacks != null) { callbacks.bindAllApplications(list); + callbacks.bindAllPackages(widgetList); } if (DEBUG_LOADERS) { Log.d(TAG, "bound all " + list.size() + " apps from cache in " @@ -2787,8 +2791,6 @@ public class LauncherModel extends BroadcastReceiver } else { mHandler.post(r); } - loadAndBindWidgetsAndShortcuts(mApp.getContext(), tryGetCallbacks(oldCallbacks), - false /* refresh */); } private void loadAllApps() { @@ -3321,6 +3323,7 @@ public class LauncherModel extends BroadcastReceiver public void loadAndBindWidgetsAndShortcuts(final Context context, final Callbacks callbacks, final boolean refresh) { + runOnWorkerThread(new Runnable(){ @Override public void run() { @@ -3334,6 +3337,7 @@ public class LauncherModel extends BroadcastReceiver } } }); + mBgWidgetsModel = model; // update the Widget entries inside DB on the worker thread. LauncherAppState.getInstance().getWidgetCache().removeObsoletePreviews( model.getRawList()); @@ -3342,9 +3346,9 @@ public class LauncherModel extends BroadcastReceiver } /** - * Returns a list of ResolveInfos/AppWidgetInfos. + * Returns a list of ResolveInfos/AppWidgetInfos. * - * @see #loadAndBindWidgetsAndShortcuts + * @see #loadAndBindWidgetsAndShortcuts */ private WidgetsModel createWidgetsModel(Context context, boolean refresh) { PackageManager packageManager = context.getPackageManager(); |