am 0fe532b4: am 4139bf4c: Handle invalid voice search
* commit '0fe532b439dd546831db1e1dbe2eaaa9c31e12b6':
Handle invalid voice search
diff --git a/media/MediaBrowserService/Application/src/main/java/com/example/android/mediabrowserservice/MusicService.java b/media/MediaBrowserService/Application/src/main/java/com/example/android/mediabrowserservice/MusicService.java
index 83606bd..3b3ec83 100644
--- a/media/MediaBrowserService/Application/src/main/java/com/example/android/mediabrowserservice/MusicService.java
+++ b/media/MediaBrowserService/Application/src/main/java/com/example/android/mediabrowserservice/MusicService.java
@@ -31,6 +31,7 @@
import android.os.Message;
import android.os.SystemClock;
import android.service.media.MediaBrowserService;
+ import android.text.TextUtils;
import com.example.android.mediabrowserservice.model.MusicProvider;
import com.example.android.mediabrowserservice.utils.CarHelper;
@@ -454,15 +455,26 @@
public void onPlayFromSearch(String query, Bundle extras) {
LogHelper.d(TAG, "playFromSearch query=", query);
- mPlayingQueue = QueueHelper.getPlayingQueueFromSearch(query, mMusicProvider);
+ if (TextUtils.isEmpty(query)) {
+ // A generic search like "Play music" sends an empty query
+ // and it's expected that we start playing something. What will be played depends
+ // on the app: favorite playlist, "I'm feeling lucky", most recent, etc.
+ mPlayingQueue = QueueHelper.getRandomQueue(mMusicProvider);
+ } else {
+ mPlayingQueue = QueueHelper.getPlayingQueueFromSearch(query, mMusicProvider);
+ }
+
LogHelper.d(TAG, "playFromSearch playqueue.length=" + mPlayingQueue.size());
mSession.setQueue(mPlayingQueue);
if (mPlayingQueue != null && !mPlayingQueue.isEmpty()) {
- // start playing from the beginning of the queue
+ // immediately start playing from the beginning of the search results
mCurrentIndexOnQueue = 0;
handlePlayRequest();
+ } else {
+ // if nothing was found, we need to warn the user and stop playing
+ handleStopRequest(getString(R.string.no_search_results));
}
}
}
diff --git a/media/MediaBrowserService/Application/src/main/res/values/strings.xml b/media/MediaBrowserService/Application/src/main/res/values/strings.xml
index 8c88fe3..9a4a50a 100644
--- a/media/MediaBrowserService/Application/src/main/res/values/strings.xml
+++ b/media/MediaBrowserService/Application/src/main/res/values/strings.xml
@@ -29,5 +29,6 @@
<string name="skip_previous">Skip to previous</string>
<string name="play_pause">play or pause</string>
<string name="skip_next">Skip to next</string>
+ <string name="no_search_results">No search results.</string>
</resources>