This PR does more than what it says on the tin. I saw it fit to use this bug to extract a bunch of of functionality out of the NowPlayingViewController and encapsulate it into its own components. Why? Because supporting yet another presentation of the app state (default image on the lock screen, when necessary) requires more lines of code, and, without extracting stuff, the view controller was the only place for it to go.
There's a couple of things I want to follow up on after this PR. The following things need to get extracted out of the view controller:
AVFoundation stuff. The lockscreen stuff doesn't properly report the playing rate and streaming state because there's no channel of communication between those two parts ATM. Combining the play/pause button is a good opportunity for this.
UserActivity stuff. When this happens, we should provide a last.fm link or something, not a Google search.
This PR does more than what it says on the tin. I saw it fit to use this bug to extract a bunch of of functionality out of the NowPlayingViewController and encapsulate it into its own components. Why? Because supporting yet another presentation of the app state (default image on the lock screen, when necessary) requires more lines of code, and, without extracting stuff, the view controller was the only place for it to go.
There's a couple of things I want to follow up on after this PR. The following things need to get extracted out of the view controller: