diff options
author | Adam Cohen <adamcohen@google.com> | 2012-11-28 16:34:57 -0800 |
---|---|---|
committer | Adam Cohen <adamcohen@google.com> | 2012-11-28 16:36:56 -0800 |
commit | d9e5af3851f592a00549b689dec325dc46268606 (patch) | |
tree | bb66c540d897bbe66fbeac3afa75e4d51a1f9c5b | |
parent | 9a0fbd4c6da2905504defdba9843d3fcbe0c1367 (diff) | |
download | frameworks_base-d9e5af3851f592a00549b689dec325dc46268606.zip frameworks_base-d9e5af3851f592a00549b689dec325dc46268606.tar.gz frameworks_base-d9e5af3851f592a00549b689dec325dc46268606.tar.bz2 |
Making sure keyguard and homescreen only display eligible widgets (issue 7550090)
Change-Id: I25acb7bde2e8e5ac3185a009f5c7151b81f0ae19
4 files changed, 17 insertions, 9 deletions
diff --git a/core/java/android/appwidget/AppWidgetManager.java b/core/java/android/appwidget/AppWidgetManager.java index 3dd640c..77315f9 100644 --- a/core/java/android/appwidget/AppWidgetManager.java +++ b/core/java/android/appwidget/AppWidgetManager.java @@ -544,8 +544,19 @@ public class AppWidgetManager { * Return a list of the AppWidget providers that are currently installed. */ public List<AppWidgetProviderInfo> getInstalledProviders() { + return getInstalledProviders(AppWidgetProviderInfo.WIDGET_CATEGORY_HOME_SCREEN); + } + + /** + * Return a list of the AppWidget providers that are currently installed. + * + * @param categoryFilter Will only return providers which register as any of the specified + * specified categories. See {@link AppWidgetProviderInfo#widgetCategory}. + * @hide + */ + public List<AppWidgetProviderInfo> getInstalledProviders(int categoryFilter) { try { - List<AppWidgetProviderInfo> providers = sService.getInstalledProviders(); + List<AppWidgetProviderInfo> providers = sService.getInstalledProviders(categoryFilter); for (AppWidgetProviderInfo info : providers) { // Converting complex to dp. info.minWidth = diff --git a/core/java/com/android/internal/appwidget/IAppWidgetService.aidl b/core/java/com/android/internal/appwidget/IAppWidgetService.aidl index b63ad62..e81d389 100644 --- a/core/java/com/android/internal/appwidget/IAppWidgetService.aidl +++ b/core/java/com/android/internal/appwidget/IAppWidgetService.aidl @@ -49,7 +49,7 @@ interface IAppWidgetService { void partiallyUpdateAppWidgetIds(in int[] appWidgetIds, in RemoteViews views); void updateAppWidgetProvider(in ComponentName provider, in RemoteViews views); void notifyAppWidgetViewDataChanged(in int[] appWidgetIds, int viewId); - List<AppWidgetProviderInfo> getInstalledProviders(); + List<AppWidgetProviderInfo> getInstalledProviders(int categoryFilter); AppWidgetProviderInfo getAppWidgetInfo(int appWidgetId); boolean hasBindAppWidgetPermission(in String packageName); void setBindAppWidgetPermission(in String packageName, in boolean permission); diff --git a/services/java/com/android/server/AppWidgetService.java b/services/java/com/android/server/AppWidgetService.java index 9590712..b94183c 100644 --- a/services/java/com/android/server/AppWidgetService.java +++ b/services/java/com/android/server/AppWidgetService.java @@ -281,8 +281,9 @@ class AppWidgetService extends IAppWidgetService.Stub } @Override - public List<AppWidgetProviderInfo> getInstalledProviders() throws RemoteException { - return getImplForUser(getCallingOrCurrentUserId()).getInstalledProviders(); + public List<AppWidgetProviderInfo> getInstalledProviders(int categoryFilter) + throws RemoteException { + return getImplForUser(getCallingOrCurrentUserId()).getInstalledProviders(categoryFilter); } @Override diff --git a/services/java/com/android/server/AppWidgetServiceImpl.java b/services/java/com/android/server/AppWidgetServiceImpl.java index fe92b26..9cacb39 100644 --- a/services/java/com/android/server/AppWidgetServiceImpl.java +++ b/services/java/com/android/server/AppWidgetServiceImpl.java @@ -854,11 +854,7 @@ class AppWidgetServiceImpl { } } - public List<AppWidgetProviderInfo> getInstalledProviders() { - return getInstalledProviders(AppWidgetProviderInfo.WIDGET_CATEGORY_HOME_SCREEN); - } - - private List<AppWidgetProviderInfo> getInstalledProviders(int categoryFilter) { + public List<AppWidgetProviderInfo> getInstalledProviders(int categoryFilter) { synchronized (mAppWidgetIds) { ensureStateLoadedLocked(); final int N = mInstalledProviders.size(); |