Skip to content

feat: implement "start at zero" shuffle and refine playback logic#1075

Merged
theovilardo merged 1 commit intomasterfrom
fix/srtist-detail-screen-shuffle
Feb 14, 2026
Merged

feat: implement "start at zero" shuffle and refine playback logic#1075
theovilardo merged 1 commit intomasterfrom
fix/srtist-detail-screen-shuffle

Conversation

@theovilardo
Copy link
Copy Markdown
Owner

  • Queue Management:

    • Add generateShuffleOrderStartAtZero to QueueUtils to ensure a specific anchor song always occupies the first position in a shuffled queue.
    • Update buildAnchoredShuffleQueueSuspending and QueueStateHolder to support the new startAtZero shuffle behavior.
  • Player Logic:

    • Modify PlayerViewModel.playSongsShuffled to accept an optional startAtZero parameter.
    • Remove strict openInputStream validation in PlayerViewModel to prevent valid songs from being incorrectly filtered out due to transient access issues.
  • Artist Detail UI:

    • Update the shuffle/play button in ArtistDetailScreen to use the new playSongsShuffled logic with startAtZero = true for a more consistent playback experience.

- **Queue Management**:
    - Add `generateShuffleOrderStartAtZero` to `QueueUtils` to ensure a specific anchor song always occupies the first position in a shuffled queue.
    - Update `buildAnchoredShuffleQueueSuspending` and `QueueStateHolder` to support the new `startAtZero` shuffle behavior.

- **Player Logic**:
    - Modify `PlayerViewModel.playSongsShuffled` to accept an optional `startAtZero` parameter.
    - Remove strict `openInputStream` validation in `PlayerViewModel` to prevent valid songs from being incorrectly filtered out due to transient access issues.

- **Artist Detail UI**:
    - Update the shuffle/play button in `ArtistDetailScreen` to use the new `playSongsShuffled` logic with `startAtZero = true` for a more consistent playback experience.
@theovilardo theovilardo merged commit 5359cac into master Feb 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant