Add a better app filtering mechanism and filter widgets
The old one didn't use the app filter when packages
were added or updated, only in the initial load.
The app filter is now also used for appwidget providers.
Bug: 10895858
Bug: 10898990
Change-Id: Id29bbc3cf7bdb0c360edd92f768b86684bd338ed
diff --git a/src/com/android/launcher3/LauncherAppState.java b/src/com/android/launcher3/LauncherAppState.java
index ed96310..7da1c2a 100644
--- a/src/com/android/launcher3/LauncherAppState.java
+++ b/src/com/android/launcher3/LauncherAppState.java
@@ -34,6 +34,7 @@
private LauncherModel mModel;
private IconCache mIconCache;
+ private AppFilter mAppFilter;
private WidgetPreviewLoader.CacheDb mWidgetPreviewCacheDb;
private boolean mIsScreenLarge;
private float mScreenDensity;
@@ -81,7 +82,9 @@
mWidgetPreviewCacheDb = new WidgetPreviewLoader.CacheDb(sContext);
mIconCache = new IconCache(sContext);
- mModel = new LauncherModel(this, mIconCache);
+
+ mAppFilter = AppFilter.loadByName(sContext.getString(R.string.app_filter_class));
+ mModel = new LauncherModel(this, mIconCache, mAppFilter);
// Register intent receivers
IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED);
@@ -147,6 +150,10 @@
return mModel;
}
+ boolean shouldShowAppOrWidgetProvider(ComponentName componentName) {
+ return mAppFilter == null || mAppFilter.shouldShowApp(componentName);
+ }
+
WidgetPreviewLoader.CacheDb getWidgetPreviewCacheDb() {
return mWidgetPreviewCacheDb;
}