diff --git a/core/java/android/appwidget/AppWidgetManager.java b/core/java/android/appwidget/AppWidgetManager.java index 9f35e85b0665c..6327f34ebd5eb 100644 --- a/core/java/android/appwidget/AppWidgetManager.java +++ b/core/java/android/appwidget/AppWidgetManager.java @@ -712,12 +712,13 @@ public class AppWidgetManager { * * @param profile The profile for which to get providers. Passing null is equivalent * to querying for only the calling user. - * @return The installed providers. + * @return The installed providers, or an empty list if none are found for the given user. * * @see android.os.Process#myUserHandle() * @see android.os.UserManager#getUserProfiles() */ - public List getInstalledProvidersForProfile(@Nullable UserHandle profile) { + public @NonNull List getInstalledProvidersForProfile( + @Nullable UserHandle profile) { if (mService == null) { return Collections.emptyList(); } @@ -735,13 +736,20 @@ public class AppWidgetManager { * equivalent to {@link #getInstalledProvidersForProfile(UserHandle)}. * @param profile The profile for which to get providers. Passing null is equivalent * to querying for only the calling user. - * @return The installed providers. + * @return The installed providers, or an empty list if none are found for the given + * package and user. + * @throws NullPointerException if the provided package name is null * * @see android.os.Process#myUserHandle() * @see android.os.UserManager#getUserProfiles() */ - public List getInstalledProvidersForPackage(@Nullable String packageName, - @Nullable UserHandle profile) { + public @NonNull List getInstalledProvidersForPackage( + @NonNull String packageName, @Nullable UserHandle profile) { + if (packageName == null) { + throw new NullPointerException("A non-null package must be passed to this method. " + + "If you want all widgets regardless of package, see " + + "getInstalledProvidersForProfile(UserHandle)"); + } if (mService == null) { return Collections.emptyList(); }