Binding AllApps synchronously. (Bug 6855061)
- Also ensuring that we restore to the settling page index if it is in motion
Change-Id: I9c6760383113f7614f6cb962ab6562b0e7eb7138
diff --git a/src/com/android/launcher2/LauncherModel.java b/src/com/android/launcher2/LauncherModel.java
index 40a9e21..92be7e4 100644
--- a/src/com/android/launcher2/LauncherModel.java
+++ b/src/com/android/launcher2/LauncherModel.java
@@ -1686,7 +1686,7 @@
@SuppressWarnings("unchecked")
final ArrayList<ApplicationInfo> list
= (ArrayList<ApplicationInfo>) mAllAppsList.data.clone();
- mHandler.post(new Runnable() {
+ Runnable r = new Runnable() {
public void run() {
final long t = SystemClock.uptimeMillis();
final Callbacks callbacks = tryGetCallbacks(oldCallbacks);
@@ -1698,7 +1698,13 @@
+ (SystemClock.uptimeMillis()-t) + "ms");
}
}
- });
+ };
+ boolean isRunningOnMainThread = !(sWorkerThread.getThreadId() == Process.myTid());
+ if (oldCallbacks.isAllAppsVisible() && isRunningOnMainThread) {
+ r.run();
+ } else {
+ mHandler.post(r);
+ }
}
private void loadAllAppsByBatch() {