Discovery Rows
- Browse recommendation folders from your music providers (e.g. Tidal mixes) directly on the home screen
- Each discovery row can be individually enabled/disabled and reordered via drag-and-drop in settings
- Discovery rows auto-detect based on provider availability — disabled by default, opt-in per row
- Inspired by @relic664's concept (PR #64)
Sync Group Volume (thanks to @pcsokonay — PR #69)
- Fixed volume slider snapping back to 0 on server-side sync groups where Music Assistant returns null volume
- Fixed leader volume adjustment not propagating proportionally to group members for in-app created groups
- New GroupVolumeManager computes effective volume from group members, handles nested groups, and caches pending changes
Hardware Volume Buttons (thanks to @pcsokonay — PR #69)
- Hardware volume buttons now control the selected MA player when Ensemble is in the foreground
- Volume interception pauses when the app is backgrounded and resumes when reopened — this was added after discovering that volume changes in other apps (e.g. YouTube) were being routed to the MA player on Android 12+
Stability
- Fixed multiple red screen crashes: setState during build phase, context.select in sliver contexts, and missing Overlay ancestors for tooltips
- Fixed search race conditions when typing quickly — stale results from slow providers no longer overwrite current results
- Fixed empty homepage on cold start (connected state was broadcast before auth completed)
- Fixed library data not appearing after app restart until manual refresh (in-memory cache empty despite valid database timestamp)
- Fixed empty results being persisted to cache, causing stale blank screens
- Fixed home screen row height formula after bottom nav bar was relocated (PR #69 moved it to Scaffold with extendBody)
- Fixed settings only showing 3 home screen rows instead of all 13 available
UI Polish
- Smoother home screen — rows reload data in-place instead of being destroyed and recreated, preventing size jumps on app resume
- Home cache only invalidates when connecting to a different server, not on routine reconnects after backgrounding
- Mini player animates position when navigating to/from detail screens (where bottom nav bar is hidden)
- Bottom fade gradient on detail screens
- Refined spacing and cover art sizing across album, playlist, artist, and author detail screens
- Smoother player reveal overlay — removed animated blur in favor of static backdrop, deferred color extraction until after animation, and reduced unnecessary rebuilds
- Expanded mini player swipe-down gesture hit area
- All home screen rows now visible and toggleable in settings
Other
- Added About & Support section in settings with GitHub Sponsors and Ko-fi links
- Removed Aliyun Maven mirrors from build config