summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authorBrad Fitzpatrick <bradfitz@android.com>2010-10-11 09:40:44 -0700
committerBrad Fitzpatrick <bradfitz@android.com>2010-10-11 10:10:40 -0700
commit700889f504ef134ab307d95b6bfbbb426ea730e3 (patch)
tree1103d19f8ae03a467f2152dbd23b3eda43668210 /src/com
parent02e53429c4ef01bee548e0eaba4aeeee99db35f4 (diff)
downloadandroid_packages_apps_Trebuchet-700889f504ef134ab307d95b6bfbbb426ea730e3.tar.gz
android_packages_apps_Trebuchet-700889f504ef134ab307d95b6bfbbb426ea730e3.tar.bz2
android_packages_apps_Trebuchet-700889f504ef134ab307d95b6bfbbb426ea730e3.zip
Serialize background async db updates
Bug: 2983765 Change-Id: I1fdd33ea8ee4fbc79a75ce0450f04d8e18915975
Diffstat (limited to 'src/com')
-rw-r--r--src/com/android/launcher2/LauncherModel.java38
1 files changed, 19 insertions, 19 deletions
diff --git a/src/com/android/launcher2/LauncherModel.java b/src/com/android/launcher2/LauncherModel.java
index b22d9ab2f..cb19fe37f 100644
--- a/src/com/android/launcher2/LauncherModel.java
+++ b/src/com/android/launcher2/LauncherModel.java
@@ -48,8 +48,8 @@ import java.net.URISyntaxException;
import java.text.Collator;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Comparator;
import java.util.Collections;
+import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
@@ -71,10 +71,14 @@ public class LauncherModel extends BroadcastReceiver {
private final LauncherApplication mApp;
private final Object mLock = new Object();
private DeferredHandler mHandler = new DeferredHandler();
- private HandlerThread mWorkerThread;
- private Handler mWorker;
private LoaderTask mLoaderTask;
+ private static final HandlerThread sWorkerThread = new HandlerThread("launcher-loader");
+ static {
+ sWorkerThread.start();
+ }
+ private static final Handler sWorker = new Handler(sWorkerThread.getLooper());
+
// We start off with everything not loaded. After that, we assume that
// our monitoring of the package manager provides all updates and we never
// need to do a requery. These are only ever touched from the loader thread.
@@ -116,10 +120,6 @@ public class LauncherModel extends BroadcastReceiver {
mAllAppsLoadDelay = app.getResources().getInteger(R.integer.config_allAppsBatchLoadDelay);
mBatchSize = app.getResources().getInteger(R.integer.config_allAppsBatchSize);
-
- mWorkerThread = new HandlerThread("launcher-loader");
- mWorkerThread.start();
- mWorker = new Handler(mWorkerThread.getLooper());
}
public Bitmap getFallbackIcon() {
@@ -160,11 +160,11 @@ public class LauncherModel extends BroadcastReceiver {
values.put(LauncherSettings.Favorites.CELLY, item.cellY);
values.put(LauncherSettings.Favorites.SCREEN, item.screen);
- new Thread("moveItemInDatabase") {
- public void run() {
- cr.update(uri, values, null, null);
- }
- }.start();
+ sWorker.post(new Runnable() {
+ public void run() {
+ cr.update(uri, values, null, null);
+ }
+ });
}
/**
@@ -275,11 +275,11 @@ public class LauncherModel extends BroadcastReceiver {
static void deleteItemFromDatabase(Context context, ItemInfo item) {
final ContentResolver cr = context.getContentResolver();
final Uri uriToDelete = LauncherSettings.Favorites.getContentUri(item.id, false);
- new Thread("deleteItemFromDatabase") {
- public void run() {
- cr.delete(uriToDelete, null, null);
- }
- }.start();
+ sWorker.post(new Runnable() {
+ public void run() {
+ cr.delete(uriToDelete, null, null);
+ }
+ });
}
/**
@@ -377,7 +377,7 @@ public class LauncherModel extends BroadcastReceiver {
oldTask.stopLocked();
}
mLoaderTask = new LoaderTask(context, isLaunching);
- mWorker.post(mLoaderTask);
+ sWorker.post(mLoaderTask);
}
}
}
@@ -1163,7 +1163,7 @@ public class LauncherModel extends BroadcastReceiver {
}
void enqueuePackageUpdated(PackageUpdatedTask task) {
- mWorker.post(task);
+ sWorker.post(task);
}
private class PackageUpdatedTask implements Runnable {