mirror of
https://github.com/austinried/subtracks.git
synced 2026-11-10 15:11:58 +01:00
The previous commit assumed a removed/moved track only shifts play positions by one, but a shuffled context removal re-derives the permutation, so the current track's play position is a remap of its flat index. `removeAt` now maps the current's flat through the updated order (shuffled) or shifts it (unshuffled), and re-anchors the up-next block to the track the cursor lands on. This fixes removing any track while shuffled picking a random track and the anchor removal not advancing to the block. Restore "shuffle starts at the top": pick the seed so the requested start track maps to play position 0 (`pinnedSeed`), instead of leaving the current at its derived position. Applies to shuffle-play, tapping a track while shuffled, toggling shuffle on, and restore. The queue view's playing highlight now requires both the combined position and the song id, so a transient position mismatch no longer flashes the row above as playing.