diff options
3 files changed, 9 insertions, 6 deletions
diff --git a/core/java/android/appwidget/AppWidgetManager.java b/core/java/android/appwidget/AppWidgetManager.java index 1205708478a7..278c9d6f8699 100644 --- a/core/java/android/appwidget/AppWidgetManager.java +++ b/core/java/android/appwidget/AppWidgetManager.java @@ -20,6 +20,7 @@ import android.annotation.Nullable; import android.content.ComponentName; import android.content.Context; import android.content.Intent; +import android.content.pm.ParceledListSlice; import android.os.Bundle; import android.os.IBinder; import android.os.Process; @@ -753,16 +754,16 @@ public class AppWidgetManager { } try { - List<AppWidgetProviderInfo> providers = mService.getInstalledProvidersForProfile( + ParceledListSlice<AppWidgetProviderInfo> providers = mService.getInstalledProvidersForProfile( categoryFilter, profile.getIdentifier()); if (providers == null) { return Collections.emptyList(); } - for (AppWidgetProviderInfo info : providers) { + for (AppWidgetProviderInfo info : providers.getList()) { // Converting complex to dp. convertSizesToPixels(info); } - return providers; + return providers.getList(); } catch (RemoteException e) { throw new RuntimeException("system server dead?", e); diff --git a/core/java/com/android/internal/appwidget/IAppWidgetService.aidl b/core/java/com/android/internal/appwidget/IAppWidgetService.aidl index 7d3db02d6bca..5a195cb7dd20 100644 --- a/core/java/com/android/internal/appwidget/IAppWidgetService.aidl +++ b/core/java/com/android/internal/appwidget/IAppWidgetService.aidl @@ -20,6 +20,7 @@ import android.content.ComponentName; import android.content.Intent; import android.content.IntentSender; import android.content.pm.ApplicationInfo; +import android.content.pm.ParceledListSlice; import android.appwidget.AppWidgetProviderInfo; import com.android.internal.appwidget.IAppWidgetHost; import android.os.Bundle; @@ -54,7 +55,7 @@ interface IAppWidgetService { in RemoteViews views); void updateAppWidgetProvider(in ComponentName provider, in RemoteViews views); void notifyAppWidgetViewDataChanged(String packageName, in int[] appWidgetIds, int viewId); - List<AppWidgetProviderInfo> getInstalledProvidersForProfile(int categoryFilter, + ParceledListSlice getInstalledProvidersForProfile(int categoryFilter, int profileId); AppWidgetProviderInfo getAppWidgetInfo(String callingPackage, int appWidgetId); boolean hasBindAppWidgetPermission(in String packageName, int userId); diff --git a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java index 17d70789c782..b737de3cd64e 100644 --- a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java +++ b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java @@ -37,6 +37,7 @@ import android.content.pm.ApplicationInfo; import android.content.pm.IPackageManager; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; +import android.content.pm.ParceledListSlice; import android.content.pm.ResolveInfo; import android.content.pm.ServiceInfo; import android.content.pm.UserInfo; @@ -1281,7 +1282,7 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku } @Override - public List<AppWidgetProviderInfo> getInstalledProvidersForProfile(int categoryFilter, + public ParceledListSlice<AppWidgetProviderInfo> getInstalledProvidersForProfile(int categoryFilter, int profileId) { final int userId = UserHandle.getCallingUserId(); @@ -1321,7 +1322,7 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku } } - return result; + return new ParceledListSlice<AppWidgetProviderInfo>(result); } } |