Unexpected UI state changes
There are several UI state changes that violate the principal of least surprise.
- When the Now Playing view is open, when the player advances to the next track, the Now Playing view is closed.
- When the Now Playing view is open, switching away from the app, the reselecting the app, either from the launcher icon or the "Overview" list, the Now Playing view is closed.
- Similarly, when the Now Playing view is open and the screen is rotated, the view is closed.
- When the Now Playing view is open, selecting "search" from the app bar at the bottom of the screen, opens the search fragment/tab, but the search UI is obscured by the still open Now Playing view. This leaves the impression that the search button did nothing.
- During playback, switching away from the app, then rescheduling the app by tapping the player notification, the play queue is automatically opened whether it was previously displayed or not.
- During playback, switching away from the app, then rescheduling the app by tapping the player notification, the main navigation panel always reverts back to the "Artist" tab, even if the user navigated to the albums, playlists, radios, or favorites tab.
To address the first three issues, the open state of the Now Playing view should be maintained between tracks, and across app rescheduling events, and rotations between portrait and landscape orientations.
To address the fourth issue it would be useful to stack the search view on the back stack, though that may be difficult. Alternatively, the better behavior may be to close the Now Playing view in order to not cover the search tab.
The fifth issue is intentional behavior inherited from the original implementation. Arguably, this should simply be ripped out.
To address the sixth issue the current tab should be preserved across application switching and screen rotation.
There are similar issues related to preserving whether the open status of the play queue changes across application switches and screen rotation, but perhaps that is better left for another issue.