✨ What’s New in v1.6.1
🙏 A BIG SORRY
I sincerely apologize for the recent issues with Smart Shuffle.
Several crashes and unexpected behaviors slipped through, including unstable recommendations, app crashes due to state saving, and temporary states being incorrectly preserved. These weren’t just bugs, they disrupted your listening experience, and that’s on me.
Truth is, I rushed the release a bit under pressure and stress, and didn’t take enough time to double-check everything. It led to some sloppy mistakes, and I genuinely regret that. I hit a bit of a saturation point, and it showed.
Thank you for your patience, your feedback, and for sticking around.
v1.6.1 is here to fix all of that and make Smart Shuffle smooth, stable, and enjoyable again. ❤️
🎵 Smart Shuffle Improvements
🛠️ Fixed Crashes
- Fixed
Parcelablecrash on Songs and Local Playlist screens- Replaced
rememberSaveablewithrememberfor variables containingSongentities Songis notParcelable, which causedIllegalArgumentExceptionwhen serializing state- Now using
rememberto prevent these crashes
- Replaced
🔧 Implementation Fixes
-
Fixed unstable positions – recommendations changed on every state update
- Introduced
relatedSongsPositionsto preserve stable positions - Recommendations now stay in place once inserted — no more jumping!
- Introduced
-
Fixed empty list during loading on the Local Playlist screen
- Adjusted conditional logic to avoid clearing songs while loading recommendations
- Existing songs are now retained during the process
-
Fixed temporary state management
- Smart Shuffle state is now temporary and resets on app restart
- Switched from
rememberPreferencetomutableStateOfforisRecommendationEnabled - Ensures consistent behavior across Home Songs and Local Playlist
🖼️ UI Improvements
- Consistent visual feedback
- Button uses
textDisabledcolor when inactive - Loading spinner appears during recommendation generation
- Recommendation count displayed in header
- Smart Shuffle icon shown on recommended songs
- Button uses
🚀 Performance Optimizations
- Conditional persistence system
- Uses
persistListwhen Smart Shuffle is off for better performance - Uses
mutableStateOfwhen it's on for temporary state - Automatically switches depending on Smart Shuffle state
- Uses
🧼 Code Quality
- Simplified state management
- Removed unnecessary complex conditions
- Unified use of
rememberfor temporary values - Improved error handling to avoid crashes
📦 Available Builds
- Minified – Lightweight version optimized for performance (recommended for low-end devices)
- Full – Complete build with all components (recommended if you face installation issues)
- Release – Standard stable build (recommended for most users)
📄 Full Changelog: View on GitHub
