Migrate the playback system to a reactive model where internalPlayer is now the complete source of truth for the playback state. This removes the observer pattern for positions and instead introduces a new State datatype that allows consumers to reactively calculate where the position probably is. This is actually really great for efficiency and state coherency, and is really what I was trying to aim for with previous (failed) reworks to the playback system. There's probably some bugs, but way less than the ground-up rewrites I tried before. This also lays the groundwork for gapless playback, as the internal player framework is now completely capable of having more functionality borged into it. |
||
|---|---|---|
| .. | ||
| src | ||
| build.gradle | ||
| NOTICE | ||
| proguard-rules.pro | ||