Android Auto: Add search support
Description
This MR adds support to show search results within Android Auto as described in the Build media apps for cars: Display browsable search results guide. This is a new feature which works in conjunction with the existing voice search capability.
Motivation and Context
Adding search results allows the user to interact with the contents of the media library post-voice-search to load the precise media desired. When the voice search does not yield exactly what the user intended, it is currently impossible to select an alternative. The only option is to repeatedly perform voice searches in an attempt to land on the desired outcome.
How Has This Been Tested?
This has been tested on an Android Auto Headunit, Android Auto for Phones, and with the Android Auto emulator.
Two observed issues: The first is related to sort order of the return results. The album list may show albums in one order, albums under the artist button may be shown in a different order, and play all may place the results in the playback queue in yet another order. The sort issue should be addressed under a future ticket. The second issue is the label "search results" is not internationalizable by VLC.
SCM note: A large chunk of code is relocated in this MR to a separate method. I did not want to modify the code during relocation (except white-space changes), as it makes traceability a challenge. I broke the change into two commits. In the first commit the method contents are simply moved, and in the 2nd commit logic changes are applied.
Screenshots:
Voice search for artist Johnny Cash only loads the first album shown (14 tracks)
Clicking search results allows the user to select the artist and perform play all, or a different album.
Once play all is selected, 102 tracks are placed in the playback queue.
Appearance on Android Auto for Phones (Voice command: 'Play song Saturday')
Types of changes
-
New feature (non-breaking change which adds functionality)
Checklist
-
I have read the CONTRIBUTING section of the README document.