Allow Launcher class to hide activities from All Apps
There are a few questions for the launcher team
embedded in comments.
Bug: 10645210
Bug: 10551568
Change-Id: I67ad10da0d0f0f0885f8b14d329231c37aa6779b
diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java
index a76378e..18e1c85 100644
--- a/src/com/android/launcher3/LauncherModel.java
+++ b/src/com/android/launcher3/LauncherModel.java
@@ -156,6 +156,7 @@
public void bindFolders(HashMap<Long,FolderInfo> folders);
public void finishBindingItems(boolean upgradePath);
public void bindAppWidget(LauncherAppWidgetInfo info);
+ public boolean shouldShowApp(ResolveInfo app);
public void bindAllApplications(ArrayList<AppInfo> apps);
public void bindAppsAdded(ArrayList<Long> newScreens,
ArrayList<ItemInfo> addNotAnimated,
@@ -2427,6 +2428,7 @@
private void loadAllApps() {
final long loadTime = DEBUG_LOADERS ? SystemClock.uptimeMillis() : 0;
+ // "two variables"?
// Don't use these two variables in any of the callback runnables.
// Otherwise we hold a reference to them.
final Callbacks oldCallbacks = mCallbacks.get();
@@ -2466,11 +2468,15 @@
// Create the ApplicationInfos
for (int i = 0; i < apps.size(); i++) {
- // This builds the icon bitmaps.
- mBgAllAppsList.add(new AppInfo(packageManager, apps.get(i),
- mIconCache, mLabelCache));
+ ResolveInfo app = apps.get(i);
+ if (oldCallbacks.shouldShowApp(app)) {
+ // This builds the icon bitmaps.
+ mBgAllAppsList.add(new AppInfo(packageManager, app,
+ mIconCache, mLabelCache));
+ }
}
+ // Huh? Shouldn't this be inside the Runnable below?
final Callbacks callbacks = tryGetCallbacks(oldCallbacks);
final ArrayList<AppInfo> added = mBgAllAppsList.added;
mBgAllAppsList.added = new ArrayList<AppInfo>();