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);
+ }
}
/**