a85a95507c
The Shuffle button on AlbumDetail was wired to the same code path as Play — both called `play(startTrackId = null)` which started the queue in track order. PlaylistDetail already does inline `.shuffled()` for shuffle; mirror that on AlbumDetail via a new `shuffle()` VM method that pre-shuffles the track list before handing it to the player. A future refinement could use Media3's `setShuffleModeEnabled` for play-then-shuffle without disturbing the original queue ordering, but pre-shuffling matches the existing PlaylistDetail behavior and keeps both screens consistent. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>