diff --git a/media/java/android/media/browse/MediaBrowser.java b/media/java/android/media/browse/MediaBrowser.java
index 4f2d9fbc899f0..957c2d6eb09f0 100644
--- a/media/java/android/media/browse/MediaBrowser.java
+++ b/media/java/android/media/browse/MediaBrowser.java
@@ -441,7 +441,7 @@ public final class MediaBrowser {
return;
}
Parcelable item = resultData.getParcelable(MediaBrowserService.KEY_MEDIA_ITEM);
- if (!(item instanceof MediaItem)) {
+ if (item != null && !(item instanceof MediaItem)) {
cb.onError(mediaId);
return;
}
diff --git a/media/java/android/service/media/MediaBrowserService.java b/media/java/android/service/media/MediaBrowserService.java
index a811ad0e5a1f9..a19e347b4507c 100644
--- a/media/java/android/service/media/MediaBrowserService.java
+++ b/media/java/android/service/media/MediaBrowserService.java
@@ -91,10 +91,12 @@ public abstract class MediaBrowserService extends Service {
public static final String KEY_MEDIA_ITEM = "media_item";
private static final int RESULT_FLAG_OPTION_NOT_HANDLED = 0x00000001;
+ private static final int RESULT_FLAG_ON_LOAD_ITEM_NOT_IMPLEMENTED = 0x00000002;
/** @hide */
@Retention(RetentionPolicy.SOURCE)
- @IntDef(flag=true, value = { RESULT_FLAG_OPTION_NOT_HANDLED })
+ @IntDef(flag=true, value = { RESULT_FLAG_OPTION_NOT_HANDLED,
+ RESULT_FLAG_ON_LOAD_ITEM_NOT_IMPLEMENTED })
private @interface ResultFlags { }
private final ArrayMap
* When the given {@code itemId} is invalid, implementations must call - * {@link Result#sendResult result.sendResult} with {@code null}, which will - * invoke {@link MediaBrowser.ItemCallback#onError}. + * {@link Result#sendResult result.sendResult} with {@code null}. *
- * The default implementation calls {@link Result#sendResult result.sendResult} - * with {@code null}. + * The default implementation will invoke {@link MediaBrowser.ItemCallback#onError}. *
* * @param itemId The id for the specific @@ -445,6 +445,7 @@ public abstract class MediaBrowserService extends Service { * @param result The Result to send the item to. */ public void onLoadItem(String itemId, Result