AI 143295: am: CL 143294 Fixes #1725672. For good this time. When Home starts for the first time, it spawns a loading thread for the workspace items. That loader is responsible for starting the drawer loader after it's done. Unfortunately, after a wipe data or a database upgrade, the worksapce loader could be interrupted by a ContentProvider notification change which would cause the loader to be cancelled and another workspace loader to be spawned. The new workspace loader, however, would not start the drawer loader because the appropriate flag was not set correctly. This change simply duplicates the flag from the old loader in the new one and all is well.
  Original author: romainguy
  Merged from: //branches/cupcake/...

Automated import of CL 143295
diff --git a/src/com/android/launcher/LauncherModel.java b/src/com/android/launcher/LauncherModel.java
index b6c90a2..da41f14 100644
--- a/src/com/android/launcher/LauncherModel.java
+++ b/src/com/android/launcher/LauncherModel.java
@@ -584,6 +584,7 @@
         }
 
         if (mDesktopItemsLoader != null && mDesktopItemsLoader.isRunning()) {
+            if (DEBUG_LOADERS) d(LOG_TAG, "  --> stopping workspace loader");
             mDesktopItemsLoader.stop();
             // Wait for the currently running thread to finish, this can take a little
             // time but it should be well below the timeout limit
@@ -592,6 +593,13 @@
             } catch (InterruptedException e) {
                 // Empty
             }
+
+            // If the thread we are interrupting was tasked to load the list of
+            // applications make sure we keep that information in the new loader
+            // spawned below
+            // note: we don't apply this to localeChanged because the thread can
+            // only be stopped *after* the localeChanged handling has occured
+            loadApplications = mDesktopItemsLoader.mLoadApplications;
         }
 
         if (DEBUG_LOADERS) d(LOG_TAG, "  --> starting workspace loader");
@@ -636,7 +644,8 @@
                                     final ContentValues values = new ContentValues();
                                     values.put(LauncherSettings.Favorites.TITLE, label);
 
-                                    resolver.update(LauncherSettings.Favorites.CONTENT_URI_NO_NOTIFICATION,
+                                    resolver.update(
+                                            LauncherSettings.Favorites.CONTENT_URI_NO_NOTIFICATION,
                                             values, "_id=?",
                                             new String[] { String.valueOf(c.getLong(idIndex)) });