Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d9e5af38 authored by Adam Cohen's avatar Adam Cohen
Browse files

Making sure keyguard and homescreen only display eligible widgets (issue 7550090)

Change-Id: I25acb7bde2e8e5ac3185a009f5c7151b81f0ae19
parent 9a0fbd4c
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -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 =
+1 −1
Original line number Diff line number Diff line
@@ -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);
+3 −2
Original line number Diff line number Diff line
@@ -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
+1 −5
Original line number Diff line number Diff line
@@ -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();