![]() Replace the hodge-podge framework of state restoration and URI playing with a single "delayed action" system. Auxio's initialization routine is a total cluster----. This is mostly because it involves multiple asynchronous operations such as music loading, state restore, and service starting which tend to make it highly prone to race conditions and other insanity. In particular, the way Auxio would attempt to restore playback and handle file opening was a spaghetti pile of bad API boundaries and dubious UI code. This has not changed. I want to move this routine to the service, but it's lifecycle is also sh------ed to such an extent where that would be nearly impossible. Instead, this commit introduces a new "delayed action" system that bites the bullet and allowes PlaybackViewModel to accept a context and an action in return for initializing playback...eventually. I tried my best to eliminate as much memory leaks as I physically could here, but could only go so far. Still though, even this insane system is better than the UI-level LiveData shenanigans I did previously, and actually works compared to the broken android components that google keeps wanting you to use. |
||
---|---|---|
.. | ||
src | ||
build.gradle | ||
NOTICE | ||
proguard-rules.pro |