maxrave-dev / maxrave-dev/SimpMusic
[Enhancement] Smart Queue & Offline Logic for "Recent" Tab
Nobody has claimed this yet.
- Dominant language
- Kotlin
- Stars
- 11.4k
- Forks
- 599
- Avg merge
- 3d 18h
- Merged PRs (30d)
- 7
Description
🚀 [Enhancement] Smart Queue & Offline Logic for "Recent" Tab
📌 Overview
The current behavior of the Recent tab (located between the notification bell and settings) creates friction during offline listening and general library management. This proposal suggests three key improvements to streamline the user experience.
🛠️ Proposed Improvements
- 🧹 Stop "Viewed" Clutter
- Current Issue: Opening an artist profile or a playlist automatically adds every song from that list to the Recent tab, even if they weren't played.
- Solution: Only add songs to the Recent list if the user actually starts playing them.
- 🔄 Fix "Repeat One" Behavior
- Current Issue: Playing a song from the Recent tab causes the player to stop or loop that single track indefinitely. It does not treat the Recent list as a continuous queue.
- Solution: When a song is selected from the Recent tab, the app should automatically queue the remaining songs in that list for continuous playback.
- 📶 Automatic Offline Skipping ("Smart Skip")
- Current Issue: When offline, if the queue reaches a song that isn't cached/downloaded, playback stops entirely.
- Solution: Implement logic to detect offline status. The player should automatically skip un-cached songs and jump to the next available offline track to ensure uninterrupted music.
💡 Suggested Logic Summary
- User-Initiated Only: Recent tab = Songs actually heard.
- Continuous Flow: Recent tab = An active, playable queue.
- Smart Offline Mode: Skip unavailable tracks instead of stopping.
As you can i play song in offline thought recent tab so
It only one song play reapeted
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the Recent tab implementation, playback queue handling, and offline cache checks in the Kotlin Android app. Reproduce selecting a Recent song while offline, then trace how played songs are recorded and how the queue advances. Done means only played songs appear, Recent selection queues the remaining tracks, and uncached offline tracks are skipped without stopping playback.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, kotlin
- Domain
- mobile
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100