From 4b253d2bcd62ea2a9afb067c1f1363fa7b752185 Mon Sep 17 00:00:00 2001 From: RoboErik Date: Tue, 2 Sep 2014 12:25:42 -0700 Subject: [PATCH] Allow empty strings in playFromSearch This allows empty strings to be passed to playFromSearch to indicate something should be chosen for the user and played. This makes it consistent with INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH. bug:17316566 Change-Id: I00ce8d252efa940e05568629e35198450c224a92 --- .../java/android/media/session/MediaController.java | 12 ++++++++---- media/java/android/media/session/MediaSession.java | 5 ++++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/media/java/android/media/session/MediaController.java b/media/java/android/media/session/MediaController.java index 12ee59e1f62a6..4d4d64684f583 100644 --- a/media/java/android/media/session/MediaController.java +++ b/media/java/android/media/session/MediaController.java @@ -613,14 +613,18 @@ public final class MediaController { /** * Request that the player start playback for a specific search query. + * An empty or null query should be treated as a request to play any + * music. * * @param query The search query. - * @param extras Optional extras that can include extra information about the query. + * @param extras Optional extras that can include extra information + * about the query. */ public void playFromSearch(String query, Bundle extras) { - if (TextUtils.isEmpty(query)) { - throw new IllegalArgumentException( - "You must specify a non-empty search query for playFromSearch."); + if (query == null) { + // This is to remain compatible with + // INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH + query = ""; } try { mSessionBinder.playFromSearch(query, extras); diff --git a/media/java/android/media/session/MediaSession.java b/media/java/android/media/session/MediaSession.java index ae8ce4b04b093..095f88578e289 100644 --- a/media/java/android/media/session/MediaSession.java +++ b/media/java/android/media/session/MediaSession.java @@ -771,7 +771,10 @@ public final class MediaSession { } /** - * Override to handle requests to begin playback from a search query. + * Override to handle requests to begin playback from a search query. An + * empty query indicates that the app may play any music. The + * implementation should attempt to make a smart choice about what to + * play. */ public void onPlayFromSearch(String query, Bundle extras) { }