Repository navigation
Releases
Releases · coflyn/Fley
v1.2.0
What's New in Fley 1.2.0
New Features & Enhancements
- Unified Custom Wallpaper Studio: Consolidated multi-target wallpaper customization into a compact, interactive studio in Settings featuring live mockups and segmented tab previews across Theme, Player, and Detail View.
- Detail View Custom Background: Dedicated background styling for album, artist, and playlist views with independent blur (0–60) and dimming (0–90%) sliders.
- Edit Lyrics Auto 3-Dots Wave Toggle: Added per-track toggle in lyrics editor and global switch in Settings to enable or disable automatic 3-dot wave indicators for instrumental intros and breaks.
- Spotify-Style Detail View Control Bar: Redesigned control bar featuring inline cover thumbnail, fast favorite toggle, batch queue button, inline options menu, shuffle indicator dot, and prominent play/pause button.
- Dedicated User Profile System: Personalized profile screen with custom photo upload, 1:1 square cropper, editable display name, bio, and real-time library statistics (songs, playlists, favorites).
- Interactive Search Discovery: Dedicated Search tab with 8 category discovery tiles, instant search filtering, and local search history.
- Resume Playback Session: Inline resume card in Home rotation restoring exact playback timestamp with smooth transition animations.
- Live Mini-Player Progress Bar: Sleek linear playback duration progress indicator integrated directly along the bottom edge of the floating mini player.
- Ambient Animated Splash Intro: AMOLED launch intro with glowing Fley neon bloom and drifting micro-particle music visualizer.
Performance & Reliability
- Optimized Queue Engine: Replaced iterative synchronous queueing with atomic batch insertion (
_addTracksToQueue), eliminating UI frame drops and audio stutter when queueing large albums. - Instant Idle Playback: Queueing tracks while playback is stopped or empty now automatically initializes and starts playback from track 0.
- Fluid Swipeable Navigation: Upgraded root tab navigation to a swipeable
PageViewwith instant bottom navbar jumps and zero tab re-render lag. - Consistent Shuffle Ordering: Preserved natural sequential track playback order when queueing multiple songs under shuffle mode.
Full Changelog: v1.1.0...v1.2.0
v1.0.4
v1.1.0
What's New in Fley 1.1.0
New Features & Enhancements
- Project Rebranding to Fley: Complete brand evolution and design system refinement under the new application identity and package ID (
com.fley). - Native Audio Trimmer & Ringtone Cutter: Frame-accurate Kotlin audio slicing engine supporting MP3, AAC/M4A, and WAV formats. Save audio clips directly to storage or set them as phone ringtones.
- Modern Artists & Albums View: Grid and List layout switcher with persistent view preferences, accompanied by top highlights carousel.
- Redesigned Track Context Menu: Expanded viewport height (72%) with an edge fade gradient and subtle down-indicator hint for discoverability without a persistent scrollbar.
- Responsive Lyrics Offset Controls: Two-row layout in lyrics editor with dedicated ±0.1s and ±0.5s buttons, eliminating text and button clipping on narrow viewports.
Performance & Reliability
- Rock-Solid Offline Audio Core: Streamlined audio playback engine for pure offline playback, eliminating network timeouts and unexpected pauses.
- Smooth 60/120fps Scrolling: Optimized heavy tabs using virtualized
CustomScrollViewdelegates (SliverGridandSliverList). - Instant Image Caching: Eliminated duplicate native MediaStore artwork queries on list items using memory-cached placeholders.
- Audio Crossfade Consistency: Target volume is reliably restored during track transitions and playback restarts.
Full Changelog: v1.0.6...v1.1.0
v1.0.6
v1.0.5
v1.0.3
feat : v1.0.3 Complete Feature Update & Enhancements
- Library Layout Density Selector: Added a "Library Density" setting (Standard vs Compact) allowing users to customize track row spacing, thumbnail sizing, and padding to fit up to 25% more songs on screen.
- Auto-Play on Headset Connect: Implemented an "Auto-play on Headset Connect" toggle under Audio & Playback. Flow listens to native AudioSession device change events and automatically resumes playback when headphones or Bluetooth audio devices connect.
- Playback Speed & Pitch Controls: Added dedicated Playback Speed (0.5x - 2.0x) and Pitch Lock configuration to Settings and audio engine with smooth ExoPlayer Sonic DSP handling.
- Custom Lyric Font Size Configurator: Added a "Lyric Font Size" setting with live preview slider (14sp to 30sp), dynamically scaling synced and plain text lyrics across player views.
- Android Mono Audio Integration: Re-architected native MainActivity.kt and settings_screen.dart Mono Audio toggle logic. Implemented multi-key fallback (master_mono and mono_audio across Settings.System and Settings.Global) and eliminated false-positive "not supported" toast errors and startup state resets.
- Robust Scoped Storage Deletion Fallback: Fixed an issue where deleting a track from device failed to present the "Permission Denied / Hide Track" dialog due to an unmounted BuildContext after closing the context menu. Captured parentContext to guarantee the fallback dialog is reliably displayed on Android 10+ devices.
- Auto-Check for Updates Toggle & Startup Check: Added an "Auto-check for updates" toggle switch in Settings. When enabled, Flow automatically performs a background release check on app launch and prompts the user with an update dialog if a new version is available on GitHub.
- Synced Last Played & Most Played Logic: Unified track recency and play-count tracking. All played tracks with playCount > 0 are automatically backfilled and synced into the Last Played smart playlist, ensuring Last Played count is always consistent with Most Played.
- Audio Ringtone Cutter & Editor: Integrated a dedicated Ringtone Trimmer accessible directly from any track's context menu. Features interactive dual-handle RangeSlider duration selection, real-time slice audio preview playback with timestamp display, dynamic segment length badges, and 1-tap ringtone saving to /Ringtones/.
- Sleep Timer Soft Fade-Out & Custom Minutes Input: Upgraded the Sleep Timer engine with a smooth volume fade-out mechanism during the final 20 seconds of countdown, preventing abrupt audio cutoffs. Added a custom duration dialog enabling users to input any custom time in minutes (e.g. 7, 25, 90, 120 mins) available across all timer entry points.
- Song Info Filename Truncation Fix: Truncated long file names in the Song Info modal with ellipsis (...) to prevent horizontal layout overflows and right-side screen leaks.
- Seamless Hero Morphing Artwork Animation: Implemented shared element Hero animation (heroTag: "mini_to_full_player_artwork") connecting the Mini Player and Full-Screen Song View. Tapping or dragging open the Mini Player causes the 48px artwork thumbnail to fluidly scale and morph into the 300px+ hero artwork with matching border radius transformations at 60 FPS.
- Expanded Mini Player & Gesture Inset Adaptation: Enhanced the Mini Player with a taller, roomier 68px container, larger 48px artwork thumbnail, elevated drop-shadow depth, and dynamic bottom gesture inset calculation (MediaQuery.of(context).padding.bottom), eliminating empty gaps under gesture navigation bars on modern smartphones.
- Sleek Rounded Modal Sheet Corners: Replaced sharp 90-degree rectangle corners on both Album View (Detail View) and Song View (Full-Screen Player) with modern 28px rounded top-left and top-right corners (ClipRRect(borderRadius: BorderRadius.vertical(top: Radius.circular(28)))), delivering an elegant, premium card aesthetic.
- Dynamic Sticky Top Navbar on Scroll: Designed and implemented a sleek, sticky top navigation bar for Album, Artist, and Playlist detail views. As the user scrolls down through the track list, the top navbar smoothly fades in with a glassmorphic background, displaying a dedicated back button on the left, truncated album title in selected font typography in the center, and context options on the right.
- High-Resolution Custom Artwork Engine: Fixed an issue where custom metadata artwork in Album, Artist, and Playlist detail views appeared blurry ("burik"). Upgraded CachedTrackArtwork to use un-downsampled full-resolution FileImage with FilterQuality.high for large views (size > 100), guaranteeing razor-sharp, crystal-clear artwork on 2K and 4K smartphone displays.
- Smooth 60 FPS Album View Transitions: Resolved UI micro-stutters when opening Album or Playlist detail views with custom artwork. Updated ArtworkCacheManager.preloadAllArtworks to preload full FileImage instances into Flutter's ImageCache in the background, ensuring instant, stutter-free 60 FPS page transitions.
- "Forgotten Gems" Smart Playlist: Introduced a dedicated 4th Smart Playlist ("Forgotten Gems" / "Lagu Terlupakan" / "隠れた名曲") that automatically aggregates all tracks in the user's music library that are rarely played (playCount <= 2). Features custom diamond branding, instant playback integration, and full i18n localization support across English, Indonesian, and Japanese.
- Complete Settings Modals Light Mode Polish: Comprehensive audit and refinement across all Settings bottom sheets (Sleep Timer, Play Count Threshold, Accent Selector, Player Background Selector, Language Selector). Resolved dark-background leaks under Light Mode by making all modal sheets dynamically adapt their background, drag handle, divider, and text colors based on isAppLight.
- Unlimited Last Played Playlist Capacity: Completely removed the legacy hardcoded history cap on the Last Played smart playlist. Because track IDs are automatically deduplicated upon every playback session, the list now dynamically retains 100% of the user's listened tracks in exact recency order up to their entire music library size.
v1.0.2
v1.0.1
Update to version 1.0.1 Multi-Select, Native Image Cropper & Major Stability Fixes Features - Multi-Select Batch Actions: Implemented "Hold to Select" across all song lists with a dynamic, theme-adaptive floating action bar for rapid mass additions to playlists and queue management. - Pure Flutter Image Cropping: Integrated a fully native `crop_image` engine replacing manual sliders. Features a 1:1 aspect ratio constraint for custom album covers and a 9:16 portrait constraint for custom backgrounds. - Custom In-App Cropper Modal: Designed a sleek, theme-consistent modal crop interface featuring deep dark backgrounds, crisp borders, and vibrant accent actions. Bug Fixes & Stability - Artwork Caching Race Condition Fix: Resolved a critical bug hiding the first 3 covers upon app launch by re-engineering the `ArtworkCacheManager` Native Platform Channel with a resilient 3-tier auto-retry loop and an anti-null failure mechanism. - Active Track Queue Validation: Fixed a playback disruption bug by intelligently hiding "Play Next" and "Add to Queue" actions for the currently active track and halting improper queue insertions. - Duration Calculation Consistency: Corrected album/playlist duration discrepancies by refactoring mathematical logic to use floor division, perfectly syncing album-level and track-level formats. UI & Rendering Improvements - 9:16 Real-Time Wallpaper Editor Mockups: Redesigned the live miniature UI previews under Settings to enforce a pristine 9:16 aspect ratio, meticulously relocating mock UI components to replicate the actual Player UI. - Jitter-Free Lyric Rendering & Dynamic Font Safety: Eliminated layout shifting in the synced karaoke lyrics engine and engineered a robust font name translator to eradicate silent gray-screen crashes. - Global Typography Inheritance: Fixed dynamic lyrics (Synced and Plain) to flawlessly inherit the globally injected GoogleFonts text theme. - Jitter-Free Sort Reordering: Disabled staggered animations during sort operations, allowing tracks to instantly rearrange without forcing unnecessary fade-in re-animations. - Settings Live Preview Enhancements: Updated the mock header in the Typography Live Preview from a generic string to a dynamic "Flow" string for a more authentic representation.