Execute update operations immediately if on right thread

- Potential fix to bug 5205131

Change-Id: Iae302f81e4c8f5c07dc4363b3bb9ef298a33faf4
diff --git a/src/com/android/launcher2/LauncherModel.java b/src/com/android/launcher2/LauncherModel.java
index ea51d01..239970e 100644
--- a/src/com/android/launcher2/LauncherModel.java
+++ b/src/com/android/launcher2/LauncherModel.java
@@ -465,7 +465,7 @@
         item.onAddToDatabase(values);
         item.updateValuesWithCoordinates(values, item.cellX, item.cellY);
 
-        sWorker.post(new Runnable() {
+        Runnable r = new Runnable() {
             public void run() {
                 cr.update(LauncherSettings.Favorites.getContentUri(item.id, false),
                         values, null, null);
@@ -481,7 +481,12 @@
                     throw new RuntimeException(msg);
                 }
             }
-        });
+        };
+        if (sWorkerThread.getThreadId() == Process.myTid()) {
+            r.run();
+        } else {
+            sWorker.post(r);
+        }
     }
 
     /**