summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/LauncherModel.java
diff options
context:
space:
mode:
authorHyunyoung Song <hyunyoungs@google.com>2015-05-21 20:25:15 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-05-21 20:25:16 +0000
commitedc9c0564454ed38dd3006c9ae4b82a449f447a4 (patch)
tree2f8e5cb5345dd89fd3f29c4cf1bcc4409d8abe52 /src/com/android/launcher3/LauncherModel.java
parent6d65ab9e55c46138282adcd6b39e2b25521bade2 (diff)
parent2bd3d7d1cb5e4d8d826982d11b456739fed6b817 (diff)
downloadandroid_packages_apps_Trebuchet-edc9c0564454ed38dd3006c9ae4b82a449f447a4.tar.gz
android_packages_apps_Trebuchet-edc9c0564454ed38dd3006c9ae4b82a449f447a4.tar.bz2
android_packages_apps_Trebuchet-edc9c0564454ed38dd3006c9ae4b82a449f447a4.zip
Merge "Load PackageItemInfo in background thread to prevent ANR" into ub-launcher3-burnaby
Diffstat (limited to 'src/com/android/launcher3/LauncherModel.java')
-rw-r--r--src/com/android/launcher3/LauncherModel.java16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java
index ad176aeca..a04d92ecc 100644
--- a/src/com/android/launcher3/LauncherModel.java
+++ b/src/com/android/launcher3/LauncherModel.java
@@ -58,6 +58,7 @@ import com.android.launcher3.compat.PackageInstallerCompat;
import com.android.launcher3.compat.PackageInstallerCompat.PackageInstallInfo;
import com.android.launcher3.compat.UserHandleCompat;
import com.android.launcher3.compat.UserManagerCompat;
+import com.android.launcher3.model.WidgetsModel;
import com.android.launcher3.util.ComponentKey;
import com.android.launcher3.util.LongArrayMap;
import com.android.launcher3.util.ManagedProfileHeuristic;
@@ -203,7 +204,7 @@ public class LauncherModel extends BroadcastReceiver
public void bindRestoreItemsChange(HashSet<ItemInfo> updates);
public void bindComponentsRemoved(ArrayList<String> packageNames,
ArrayList<AppInfo> appInfos, UserHandleCompat user, int reason);
- public void bindAllPackages(ArrayList<Object> widgetsAndShortcuts);
+ public void bindAllPackages(WidgetsModel model);
public void bindSearchablesChanged();
public boolean isAllAppsButtonRank(int rank);
public void onPageBoundSynchronously(int page);
@@ -3346,18 +3347,19 @@ public class LauncherModel extends BroadcastReceiver
runOnWorkerThread(new Runnable(){
@Override
public void run() {
- final ArrayList<Object> list = getWidgetsAndShortcuts(context, refresh);
+ final WidgetsModel model = createWidgetsModel(context, refresh);
mHandler.post(new Runnable() {
@Override
public void run() {
Callbacks cb = getCallback();
if (callbacks == cb && cb != null) {
- callbacks.bindAllPackages(list);
+ callbacks.bindAllPackages(model);
}
}
});
// update the Widget entries inside DB on the worker thread.
- LauncherAppState.getInstance().getWidgetCache().removeObsoletePreviews(list);
+ LauncherAppState.getInstance().getWidgetCache().removeObsoletePreviews(
+ model.getRawList());
}
});
}
@@ -3367,13 +3369,15 @@ public class LauncherModel extends BroadcastReceiver
*
* @see #loadAndBindWidgetsAndShortcuts
*/
- private ArrayList<Object> getWidgetsAndShortcuts(Context context, boolean refresh) {
+ private WidgetsModel createWidgetsModel(Context context, boolean refresh) {
PackageManager packageManager = context.getPackageManager();
final ArrayList<Object> widgetsAndShortcuts = new ArrayList<Object>();
widgetsAndShortcuts.addAll(getWidgetProviders(context, refresh));
Intent shortcutsIntent = new Intent(Intent.ACTION_CREATE_SHORTCUT);
widgetsAndShortcuts.addAll(packageManager.queryIntentActivities(shortcutsIntent, 0));
- return widgetsAndShortcuts;
+ WidgetsModel model = new WidgetsModel(context);
+ model.addWidgetsAndShortcuts(widgetsAndShortcuts);
+ return model;
}
@Thunk static boolean isPackageDisabled(Context context, String packageName,