summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/WidgetPreviewLoader.java
diff options
context:
space:
mode:
authorHyunyoung Song <hyunyoungs@google.com>2015-05-04 16:28:20 -0700
committerHyunyoung Song <hyunyoungs@google.com>2015-05-04 16:28:20 -0700
commit8821ca9a6a5bf34308f9b70c2cabf9da17330497 (patch)
tree2748c99b1afc2bc592f68e1ab8c0f7ba54f8e867 /src/com/android/launcher3/WidgetPreviewLoader.java
parent111c83579a165fe9d8f915cda4e08de47e16c056 (diff)
downloadandroid_packages_apps_Trebuchet-8821ca9a6a5bf34308f9b70c2cabf9da17330497.tar.gz
android_packages_apps_Trebuchet-8821ca9a6a5bf34308f9b70c2cabf9da17330497.tar.bz2
android_packages_apps_Trebuchet-8821ca9a6a5bf34308f9b70c2cabf9da17330497.zip
WidgetTray performance improvement (less sorting): Part 1
- No longer return sorted list from the package manager since, the only time the widget list requires to be sorted is when recycler view renders them. - Made getWidgetsAndShortcuts private to guarantee that widgets are being loaded in the worker thread. Change-Id: I2c35973c1226e831514380dd38fc2f88b1b91d02
Diffstat (limited to 'src/com/android/launcher3/WidgetPreviewLoader.java')
-rw-r--r--src/com/android/launcher3/WidgetPreviewLoader.java11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/com/android/launcher3/WidgetPreviewLoader.java b/src/com/android/launcher3/WidgetPreviewLoader.java
index 412cbcd6d..93bfeaffd 100644
--- a/src/com/android/launcher3/WidgetPreviewLoader.java
+++ b/src/com/android/launcher3/WidgetPreviewLoader.java
@@ -24,6 +24,7 @@ import android.graphics.RectF;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
+import android.os.Process;
import android.util.Log;
import android.util.LongSparseArray;
@@ -34,6 +35,9 @@ import com.android.launcher3.util.ComponentKey;
import com.android.launcher3.util.Thunk;
import com.android.launcher3.widget.WidgetCell;
+import junit.framework.Assert;
+
+import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
@@ -202,11 +206,14 @@ public class WidgetPreviewLoader {
* 2. Any preview for an absent package is removed
* This ensures that we remove entries for packages which changed while the launcher was dead.
*/
- public void removeObsoletePreviews() {
+ public void removeObsoletePreviews(ArrayList<Object> list) {
+ // This method should always be called from the worker thread.
+ Assert.assertTrue(LauncherModel.sWorkerThread.getThreadId() == Process.myTid());
+
LongSparseArray<UserHandleCompat> userIdCache = new LongSparseArray<>();
LongSparseArray<HashSet<String>> validPackages = new LongSparseArray<>();
- for (Object obj : LauncherModel.getSortedWidgetsAndShortcuts(mContext, false)) {
+ for (Object obj : list) {
final UserHandleCompat user;
final String pkg;
if (obj instanceof ResolveInfo) {