From 85f418d0f5607c66efef1673075a6d3486e5af83 Mon Sep 17 00:00:00 2001 From: Bjorn Bringert Date: Fri, 6 Sep 2013 12:50:05 +0100 Subject: [PATCH] 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 --- src/com/android/launcher3/Launcher.java | 6 ++++++ src/com/android/launcher3/LauncherModel.java | 12 +++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index ec84a9ac02..bdd9add145 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -45,6 +45,7 @@ import android.content.SharedPreferences; import android.content.pm.ActivityInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; +import android.content.pm.ResolveInfo; import android.content.res.Configuration; import android.content.res.Resources; import android.database.ContentObserver; @@ -3907,6 +3908,11 @@ public class Launcher extends Activity } } + @Override + public boolean shouldShowApp(ResolveInfo app) { + return true; + } + /** * A package was updated. * diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java index a76378ebf1..18e1c85ba5 100644 --- a/src/com/android/launcher3/LauncherModel.java +++ b/src/com/android/launcher3/LauncherModel.java @@ -156,6 +156,7 @@ public class LauncherModel extends BroadcastReceiver { public void bindFolders(HashMap folders); public void finishBindingItems(boolean upgradePath); public void bindAppWidget(LauncherAppWidgetInfo info); + public boolean shouldShowApp(ResolveInfo app); public void bindAllApplications(ArrayList apps); public void bindAppsAdded(ArrayList newScreens, ArrayList addNotAnimated, @@ -2427,6 +2428,7 @@ public class LauncherModel extends BroadcastReceiver { 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 @@ public class LauncherModel extends BroadcastReceiver { // 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 added = mBgAllAppsList.added; mBgAllAppsList.added = new ArrayList();