- General bug fixes and performance improvements.
- High-Quality Audio Sources: Enhanced HQ audio source selection and streaming stability.
- Performance Optimization: Significant reduction in UI recompositions and general performance tuning.
- General bug fixes and performance improvements.
- General bug fixes and performance improvements.
- Spotify-Style Volume Normalization: New
LoudnessAnalyzermeasures the running RMS of each song from the native engine, persists the per-track value, and applies a per-track gain offset on playback so back-to-back tracks land at the same perceived loudness instead of jumping. - Spatial Intensity Slider: New independent control for the spatial sweep + crossfeed strength, so users on speakers or wired headphones (where head-tracking doesn't apply) finally have a knob.
- Announce Songs Volume Controls: Three new settings — TTS volume %, music duck volume %, and a Bluetooth-only switch — plus sliders in Settings.
- Music Languages Dialog: Wired up the previously orphaned
LanguageSelectionDialog; expanded the supported language list to 23 with proper YouTube hl-code mapping.
- Volume Boost: Capped the slider's max contribution at +12 dB (was +15) and clamped combined limiter makeup gain to [-8, +14] dB. Softer limiter params (threshold -0.3 dB, ratio 12, attack 1ms, release 80ms) so the limiter colours the signal less while still preventing clipping.
- Music Haptics: Driven by the native engine's real-time RMS instead of a synthetic 500ms sawtooth — beats now line up with the music. Adaptive threshold (max of absolute floor and 60% of running peak) so haptics fire on quiet tracks without spamming on loud ones. Toggle / mode / intensity now apply live without an app restart.
- Swipe-Down-To-Dismiss: Lower threshold (-5% of drag range, was -10%), 1:1 finger tracking with fade as you pull down, and the player animates offscreen before stopping playback so the dismiss reads as motion. Toggle now takes effect live.
- Queue Reorder: Threshold bumped 56dp → 64dp so the row that snaps under the finger lines up cleanly after each swap.
if-step replaced with awhileloop tracking the working index locally, so fast flicks walk through multiple rows instead of stalling on a stale captured index. Same fast-flick fix applied to the Playlist screen. - Robust Announce Songs: Rewrote
TTSManageraroundUtteranceProgressListenerwith mediaAudioAttributesand per-utterance audio focus so announcements actually route through Bluetooth/BLE headsets. Player volume reliably restores in onDone/onError; try/finally fallback ensures the player isn't stranded ducked if cancellation happens. - Bluetooth Autoplay: Debounce duplicate connect events between
AudioDeviceCallbackandACL_CONNECTED, then verifyplay()actually started — some BT stacks miss the first call while the route is still settling, so we retry up to three times with backoff. - High-Resolution Artwork on Home: Threaded covers, song rows, and playlist headers through
ImageUtils.getHighResThumbnailUrlwith explicit Coil request sizes; previously severalAsyncImagecalls passed raw w120/w160 URLs that pixellated on mid/large surfaces. - Instant Settings Account Header: Mirrored userName + avatar into encrypted prefs for synchronous read on entry; renders immediately instead of flashing blank while DataStore reads complete.
- Audio Offload Toggle: Now actually honoured. Previously the service auto-enabled offload regardless of the user's preference whenever no software effect was active.
- AI Equalizer — OpenAI Client: Was building a
JSONObjectand discarding it before sending a hand-templated string. Replaced with properJSONObject/JSONArrayconstruction. - AI Equalizer — Restored State: Saved AI state was set on
_lastResultbut never pushed to the audio engine on app restart. Now applies on init and snapshots the pre-AI engine state so A/B Compare works after restart. - AI Equalizer — checkAndAutoApplyAIForSong: Was taking the "before AI" snapshot AFTER
applySettings, so Original and AI were identical. Snapshot is now captured first. - AI Equalizer — Auto Mode: Was hardcoded to ChatProxy with empty key, ignoring the user's configured provider/model. Now resolves provider+key+model from settings with a graceful fallback to ChatProxy when no key is configured.
- AI Equalizer — JSON Extraction: Added an
extractJsonObject()helper that strips```jsonfences across all four AI clients so providers that ignore "no markdown" instructions still parse cleanly.
- Real-time Download Progress: Experience a more native feel with live percentage and MB tracking during in-app updates.
- Local Audio Duration Filter: New setting to filter out short audio clips from your local library for a cleaner browsing experience.
- Advanced Lyrics Customization: Added blur intensity control and appearance settings for a personalized lyrics view.
- Sticky Lyrics Header: Redesigned lyrics screen with a sticky top layout for persistent access to playback controls.
- Premium Updater UI: Completely redesigned the System Update screen using expressive gradients, Squircle shapes, and Material 3 Expressive components.
- Performance Overhaul: Reduced redundant UI recompositions by ~70% and offloaded LibraryRepository operations to background threads for instantaneous feedback.
- UI Modernization: Replaced legacy Toast notifications with modern, theme-aware Snackbars across 17+ core files.
- Lyrics Animations: Implemented Apple Music-style smooth animations for lyrics transitions.
- Playlist Stability: Resolved infinite loading loops in PlaylistScreen and improved playlist ownership detection.
- Media Notifications: Fixed notification thumbnails not showing due to corrupted URL resolution in
getHighResThumbnail. - System Theme Support: Switched to MaterialComponents base theme to resolve Snackbar inflation crashes.
- Multimedia Reliability: Optimized YouTube stream resolution recovery and fixed artwork fallbacks in the queue.
- Shuffle Integrity: Resolved a critical issue where shuffle mode would cause rapid song skipping or "Source Errors."
- Audio Output Switching: Fixed playback failing to resume or becoming silent when switching between Bluetooth and speakers.
- UI Transitions: Eliminated artwork style flicker when expanding the Mini Player.
- Visual Error Feedback: Introduced a modern, expressive error overlay on the Player screen with "Copy Error" and "Retry" actions for easier troubleshooting.
- Intelligent Recovery: Implemented exponential backoff for network retries and automatic search fallback for expired YouTube streams (403/410 errors).
- Battery & Efficiency: Optimized battery life with Dynamic Audio Offload and reduced memory usage for Android Auto thumbnails.
- Safe Volume: Added "Safe Volume Ducking" to prevent sudden loud volume when connecting Bluetooth devices.
- Backup Efficiency: Optimized cloud backup rules to exclude large cache files, ensuring faster and more reliable device transfers.
- Comprehensive Backup & Restore: Securely back up your entire SuvMusic experience, including library cache and encrypted YouTube settings, using the new high-performance
.suvformat. - Lyrics Screen Overhaul: Experience a completely redesigned, more immersive lyrics screen built with modern Material 3 Expressive components.
- Home Screen Personalization: Take control of your home feed with new layout customization options and a refined 4-row Quick Picks layout.
- Enhanced Playlist Management: Expanded playlist support with native
.suvand standard.m3uexport options, plus a new 'Queue to Playlist' action. - Visual Refinements: Introduced the M3E wavy seekbar as the new default with smoother, more expressive animations and enabled rotating vinyl artwork by default.
- Customization & Links: New blur customization for iOS-style navigation bars and added official SuvMusic website and Privacy Policy links for quick access.
- Audio Stability: Optimized audio output detection and fixed 'Auto-resume after calls' to ensure seamless playback transitions.
- Under-the-Hood Fixes: Resolved various UI state restoration issues, improved dynamic theme transitions, and filtered virtual devices for better audio switching.
- Modernized Credits: Completely redesigned the Credits screen with expressive styling, TopAppBar scroll behavior, and unified developer profile visuals matching the About screen.
- Universal Playlist Import: Added direct native support for importing YouTube Music sources and universal support for
.m3uplaylist files. - MediaButtonReceiver: Integrated support for better media hardware key control handling and peripheral stability.
- Playlist Renaming: Added the ability to rename local playlists directly from the app.
- Expressive UI Overhaul: Redesigned Playlist and Import screens with Material 3 Expressive UI, including enhanced headers and sort menus.
- UI Consistency: Expanded the use of the 28.dp Squircle shape across all remaining components for complete brand uniformity.
- TopAppBar Behavior: Enabled dynamic scroll behavior for TopAppBars on all major screens, including the Credits screen.
- Fab Menu Polish: Renamed 'Import from Spotify' to 'Import Playlist' in the FAB menu to reflect universal import support.
- Database Stability: Incremented database version to 9 to resolve critical Room migration and data integrity crashes.
- Playlist Management: Resolved an issue where imported playlists would occasionally be duplicated or uneditable.
- Player Layout: Stabilized player layout during loading by using fixed-height seekbar containers to prevent UI jank.
- Library Sorting: Fixed an issue where the 'Date Added' sorting was not correctly applied in some library views.
- Radio Logic: Corrected an edge-case bug where the Radio queue logic would fail to trigger under specific conditions.
- Auto-Skip Stability: Eliminated auto-skip chains caused by parse errors during stream resolution.
- Resolution Performance: Optimized playback latency and fixed resolution race conditions during rapid track skipping.
- Instant Playback: Reduced playback startup latency to 500ms for near-instant response.
- Wavy Seekbar: Introduced the Material 3 Expressive wavy seekbar style for a more dynamic playback experience.
- Bouncy Animations: YouTube-style scale and bounce animations for Like and Dislike buttons.
- Adaptive UI: Redesigned Credits and Song Info screens that adapt their background color to the current track's artwork.
- Offline Enhancements: Added folder browsing support and integrated local albums/artists into the search experience.
- Embedded Lyrics: Support for extracting and displaying lyrics directly from local audio files.
- Track Sorting: New sorting options (A-Z, Artist, Date) and mass reordering for playlists.
- Playback Options: Added 'Auto-resume after calls' setting and improved audio focus handling.
- Modern Infrastructure: Fully migrated to Navigation 2.9.0 (Type-safe routes) and Coil 3 for improved performance and reliability.
- Intelligent UI: The 'Add to Queue' option is now context-aware and hidden for the currently playing song.
- Marquee Effects: Added smooth marquee scrolling for long song and artist titles in the player.
- Optimized Caching: Implemented a 24-hour auto-clear policy for temporary playlist data to optimize storage.
- Performance Optimization: Offloaded playback state saving to background threads and optimized service lookups.
- Resource Management: Optimized position updates to reduce main-thread CPU usage during playback.
- Skip Stability: Resolved orphaned resolution coroutines and auto-skip chains to ensure reliable track skipping.
- Double Resolution: Fixed race conditions between service and client when resolving placeholder URIs.
- Audio Polish: Resolved volume micro-toggle clicks and improved TTS ducking/restoration logic.
- Android Auto Overhaul: Comprehensive fixes for car-screen controls, skip buttons, auto-advance, and menu loading.
- Sleep Timer Fix: Resolved a critical issue where 'End of Song' timer wouldn't trigger when tracks were preloaded.
- Stream Stability: Improved fallback and recovery logic for high-latency or unstable network connections.
- UI Refinements: Fixed numerous small bugs in selection modes, loading indicators, and layout overflows.
- SDK 36: Updated target SDK to 36 and optimized JNI-based recommendation scoring.
- Material 3 Expressive Redesign: Massive UI overhaul across the entire app with unified expressive components.
- Expressive Shapes: Switched to modern
Squircleshapes (28.dp) for all artwork, thumbnails, and action buttons. - Redesigned Core Screens: Completely refreshed Settings, Album, Playlist, Artist, and Search screens for a more premium look and feel.
- Enhanced Updater: New M3E-styled Updater screen and dialog with custom pulse loading indicators.
- Listen Together 3.0: Redesigned sync screen with better visual feedback and expressive controls.
- Unified Icons: Standardized setting items with icons enclosed in expressive squircle boxes.
- Improved Hierarchy: Standardized section titles and spacing across all configuration interfaces.
- Robust Backup Restore: Resolved critical Swift Backup restoration crashes by robustly handling encrypted preference corruption after OS re-installs.
- Login Optimization: Automatically enables 'Sync with YouTube History' for logged-in users to ensure a seamless experience from the first run.
- TV & D-pad Optimization: Integrated
dpadFocusableacross all major UI elements for buttery-smooth remote navigation.
- High-Quality Thumbnails: Enforced 544px high-resolution artwork across all UI components for a more premium visual experience.
- YouTube Music Style Mini Player: Refined the YT Music mini player with a top-aligned progress bar and classic control layout.
- Memory Optimization: Optimized ImageLoader configuration with 30% heap usage and hardware acceleration to resolve decoding jank.
- Resource Management: Replaced all manual ImageLoader instances with singleton context.imageLoader to prevent potential memory leaks.
- Mini Player Refinement: Removed artist name click action to prevent accidental navigation while controlling playback.
- Recommendations: Significantly improved the recommendation engine for better track discovery.
- Enhanced Media Controls: Improved notification sync for shuffle and repeat states with better visual feedback.
- Stability: Fixed mini player swipe-down dismissal logic and optimized transitions.
- Modernized Update Mechanism: Migrated to a standalone
:updatermodule with structured JSON changelog support and a dedicated rich-UI Updater screen.
- Stability Fixes: Minor UI refinements and code optimization.
- Spotify Pro Import: Enhanced Spotify integration supporting albums, artists, and individual tracks with real-time fetching progress.
- Next-Gen Personalization: High-performance Recommendation Engine with JNI-based native scoring and deep YouTube Music integration.
- Persistent Logging & Diagnostics: Integrated a robust file-based logging system with 'Share App Logs' feature.
- Cinematic Player Transitions: Completely refactored Video Mode using AnimatedContent for seamless transitions.
- Infinite Play (Radio Mode): New toggle in the Queue screen that automatically extends sessions with similar songs.
- Listen Together 2.0: Redesigned with Material 3 Expressive UI and ultra-low latency Protobuf-based transport.
- Ringtone Engine: Fully restored 'Set as Ringtone' feature with integrated audio trimmer.
- Performance Optimization: Implemented explicit keys in all major lists to reduce UI re-composition.
- App Health: Optimized ACRA integration for Android 15/16 with more detailed system context.
- Interactive Queue: Added full context menus to every item in the queue for better management.
- Adaptive Recommendations: 'Made for You' banners now have a 7-day persistence logic.
- Crash Reporting: Integrated ACRA for robust crash reporting and log sharing via Telegram or direct download.
- Custom Download Location: Users can now specify a custom storage path for downloads in Settings.
- Liquid Glass Navigation: New iOS-inspired liquid glass bottom navigation bar (toggleable in Settings).
- Android TV Support: Added initial feature declarations for better compatibility with Android TV devices.
- UI Refinements: Set default navigation bar opacity to 90% for a sleeker look.
- Dynamic TopBar: The TopBar now hides on scroll in Album and Playlist screens to prevent status bar overlap.
- Branding: Restored the classic app logo and related branding elements.
- Splash Screen: Resolved splash background morphing on Xiaomi devices and corrected adaptive icon rendering.
- Full-Screen Playback: Fixed view height calculations to ensure a true full-screen player experience on Android 12+.
- Stability: Fixed conflicting declarations in SessionManager and resolved various compilation errors in services.
- ACRA Configuration: Corrected notification DSL property names for ACRA 5.13 compatibility.
- Startup Optimization: Eliminated a 3-second startup hang in MainActivity and optimized splash screen transitions.
- APK Size: Reduced APK footprint and installation time using
abiFiltersandresourceConfigs. - Resource Efficiency: Optimized app logo size to eliminate lag during installation.
- Music Haptics: Beat-synchronized vibration engine for an immersive listening experience.
- Word-by-Word Lyrics: Precise, time-synced lyrics with active word highlighting and provider switcher.
- Floating Player: Draggable system-wide overlay (formerly Dynamic Island) for global playback control.
- Pitch & Speed Control: Real-time DSP for playback speed (up to 5x) and pitch adjustment.
- Shared Element Transitions: Cinematic animations when navigating between Mini Player and full Player screen.
- Batch Downloads: Queue multiple albums/playlists for background processing with notification support.
- Instant Downloads: Save buffered tracks instantly to local storage.
- YouTube Integration: Explore and Community sections from YouTube Music directly on the Home screen.
- Glance Widgets: Modern homescreen widgets with real-time state updates.
- Support Screen: Integrated options for "Buy Me a Coffee", GitHub starring, and community links.
- UI Redesign: Complete Material 3 overhaul for Library, Settings, and Storage screens.
- Pure Black Mode: True OLED black background for Home screen and Player in dark mode.
- Kotlin 2.3: Upgraded to latest Kotlin compiler and Gradle 8.14.
- Hilt 2.58: Updated DI framework for Kotlin 2.3 compatibility.
- Media3 1.9.0: Upgraded media session and playback engine.
- Marquee Text: Added scrolling effect for long titles in Mini Player and widgets.
- Resolved session management race conditions and improved async data handling.
- Fixed memory leaks in MusicPlayer and receiver leaks in services.
- Corrected download reliability and persistent "Downloaded" indicators.
- Improved volume normalization parameters to eliminate stuttering.
- Fixed critical crashes related to image loading and vector drawable rendering.
- Remote Audio Integration: Added full support for Remote Audio as a music source, enabling 320kbps MP3 streaming capabilities.
- Source Selection: Implemented a new "Default Music Source" selection during onboarding (Welcome Screen) and in Settings, allowing users to prioritize between YouTube Music and Remote Audio.
- Dynamic Content: Search tabs and Home content now dynamically adapt based on the selected primary music source (e.g., Remote Audio tabs appear first if selected).
- Audio Quality Indicators: Added explicit quality badges in the player (e.g., "320kbps") and dynamic labels in Settings to reflect the active source's bitrate capabilities.
- Smart Sharing: Enhanced the sharing functionality to generate native Remote Audio links when sharing songs sourced from Remote Audio.
- In-App Updates (OTA): Integrated support for Over-The-Air updates, featuring a new scrollable update dialog to view release notes comfortably within the app.
- Artist Screen Redesign: Completely overhauled the Artist Screen with an Apple Music-inspired UI, featuring high-resolution imagery and improved navigation.
- Enhanced Song Credits: Redesigned the "View Credits" sheet to display detailed artist information, including profile photos sourced from YouTube Music/Remote Audio.
- Set as Ringtone: Added native support to set the currently playing song as the device ringtone directly from the player menu.
- Permission Handling: Implemented robust system permission handling for modifying system settings (ringtones).
- Landscape Support: Added full landscape mode support for the Player Screen, ensuring a seamless experience on tablets and rotated devices.
- Adaptive Layouts: Implemented width-based adaptive layouts for floating windows to improve multitasking on various screen sizes.
- Visual Polish: Fixed full-screen blur backgrounds in the player and normalized high-resolution artwork display across Notifications and Home screens.
- About Screen: Updated with comprehensive developer information, social media links (GitHub, Instagram, Telegram), and clear feature highlights.
- Welcome Experience: Expanded the onboarding flow to highlight new features and guide users through source selection.
- Instant Playback: Optimized buffering logic to achieve near-instant playback start times (approx. 0.5s).
- Concurrent Operations: Improved threading to allow seamless downloading of tracks while simultaneously streaming music without interruptions.
- Home Screen Stability: Resolved critical issues causing the Home Screen to appear blank or flicker after navigation gestures (swiping).
- Playlist Management: Fixed bugs related to incorrect playlist thumbnails and author attribution display.
- Compatibility: Enabled Java desugaring to prevent crashes on older Android versions and added package visibility queries for Android 11+ compliance.
- Download Status: Fixed an issue where the "Downloaded" indicator would fail to appear immediately after an app restart.
- Architecture: Refactored
AppModuleand Repositories to support dependency injection for the dual-source architecture. - Caching: Implemented intelligent caching for Remote Audio home content to improve offline resilience and load times.