Commit Graph
2353 Commits
Author SHA1 Message Date
zarzet 8d1a42e01a feat(player): refine mini-player and queue feedback 2026-10-14 23:04:56 +07:00
zarzet 83a55fb80b feat(library): add sectioned browsing and adaptive fast scrolling 2026-10-14 23:04:46 +07:00
zarzet 9bac4a6efb feat(material): unify progress and surface transitions 2026-10-14 23:04:27 +07:00
zarzet 56e2eb8589 feat(material): animate header action groups and collapse 2026-10-14 23:04:07 +07:00
zarzet 736cfcd081 feat(settings): connect custom Material settings rows 2026-10-14 23:03:27 +07:00
zarzet ef600973e8 style(material): align tonal surfaces and control shapes 2026-10-14 20:20:44 +07:00
zarzet 8f6aa00152 feat(settings): connect standard Material settings rows 2026-10-14 20:20:44 +07:00
zarzet 5e6afc7a32 feat(ui): add Material Expressive spring motion 2026-10-14 20:20:44 +07:00
zarzet e049604b24 feat(lyrics): add SpotiFLAC fallback for Apple Music outages 2026-10-14 20:20:44 +07:00
zarzet 62ce404390 feat(ui): extend Material Expressive surfaces and playback controls 2026-10-13 22:58:00 +07:00
zarzet 186c66aeb8 fix(lyrics): refresh LRC sidecars in their actual SAF folder
Resolve opaque SAF document ancestry before writing adjacent lyrics. Propagate failed requested LRC writes and cover native word-synced refresh in regression tests.
2026-10-13 19:38:00 +07:00
zarzet 0b3b9c21c9 feat(theme): show a check on selected expressive switches
M3ESwitch does not read the Flutter switch theme, so selected switches
lost the check thumb icon that the standard Material switch shows.
2026-10-13 18:27:38 +07:00
zarzet e56d59c798 feat(theme): adopt Material Symbols and expressive components
The Material theme now draws its main surfaces with rounded Material
Symbols: navigation, player, mini player, queue, settings, sheets,
dialogs and shared controls. AppIcon maps legacy Icons to their symbol
and keeps outlined glyphs unfilled. Mornye keeps its original icons.

Icon buttons, text and filled buttons, dialog actions, sliders, the setup
FAB and indeterminate spinners use the Material 3 Expressive components.
Each wrapper falls back to the standard Flutter widget for Mornye, reduced
motion and custom sizing, so existing layouts and hit areas stay intact.
2026-10-13 18:27:38 +07:00
zarzet e3b69a25ef fix(download): probe M4A streams before preserving requested FLAC
Provider and decryption extensions describe the downloaded container, not
its audio codec. A decrypted M4A/MP4 can still carry FLAC, so a requested
FLAC output now reaches the codec probe instead of being preserved early.
Lossy streams keep their native container and still receive metadata.
2026-10-13 18:27:16 +07:00
zarzet 65dbce27f5 fix(automix): wait for advancing audio before starting fades 2026-10-12 12:11:27 +07:00
zarzet ac8523d789 feat(metadata): add per-field download tag separators 2026-10-12 12:11:06 +07:00
zarzet 78699a9163 fix(mornye): strengthen held navigation glass refraction 2026-10-11 16:14:55 +07:00
zarzet ef903248c0 feat(network): delete SMB and WebDAV tracks from the library 2026-10-11 16:14:01 +07:00
zarzet 2e170ca298 fix(notifications): show indeterminate scans without false zero percent 2026-10-11 15:38:20 +07:00
zarzet 3ff143f4be fix(library): retire deleted downloads and stale completion cards 2026-10-11 15:38:20 +07:00
zarzet 3df644c453 fix(mornye): unify held navigation glass contour 2026-10-11 15:38:20 +07:00
zarzet da8dc43c52 fix(mornye): hide custom font setting icon 2026-10-11 15:38:20 +07:00
zarzet c84fc335ac fix(ios): preserve folder grants and surface picker failures 2026-10-11 14:34:35 +07:00
zarzet 42207b6fa5 fix(mornye): animate queue removal icon with swipe progress 2026-10-11 14:34:16 +07:00
zarzet d2dcf28622 feat(autoplay): add opt-in on-device recommendation learning 2026-10-11 14:34:11 +07:00
zarzet e22e934525 feat(network): enable audio and hi-res analysis for network tracks 2026-10-11 14:34:04 +07:00
zarzet 5caa2ed588 chore(flutter): update SDK and packages with glass and navigation compatibility 2026-10-11 14:32:03 +07:00
zarzet 2b7cacd661 fix(l10n): use Indonesian wording for the built-in player 2026-10-11 14:31:43 +07:00
zarzet 430893d58e chore(release): bump app to 5.1.1 build 161
Keep the package version and displayed application build number in sync.
2026-10-10 23:23:25 +07:00
zarzet 5eafd3acc4 perf(library): prefetch network metadata with bounded concurrency
Read up to three WebDAV tracks or two SMB tracks through a scan-owned metadata service while retaining listing order, bounded output, artwork and progress. Keep pause and cancellation independent of playback and add host regressions plus a native Android latency benchmark.
2026-10-10 23:22:41 +07:00
zarzet 0d70e413ed perf(network): reuse HTTP connections for browsing and range reads
Pool bounded read clients by connection credentials and certificate pin, invalidate them after configuration changes, and abort timed-out requests. Verify connection reuse, concurrent range limits, error recovery and credential rotation.
2026-10-10 23:22:32 +07:00
zarzet e9b7e84113 fix(webdav): retain tracks across equivalent parent URI encodings
Match decoded path components once in Dart and Rust while rejecting encoded separators and paths outside the selected folder. Add folder scan diagnostics, shared parser fixtures, a synthetic 1806-track traversal and native Android regression coverage.
2026-10-10 23:22:21 +07:00
zarzet c093120e73 fix(library): collapse selection actions before dismissing
Keep selection active after the first downward swipe, and cancel only on a second swipe from the compact header. Support expansion by dragging or tapping, pin the header while actions scroll, and cover large text and accessibility behavior.
2026-10-10 23:21:52 +07:00
zarzet 58fb7750e5 fix(mornye): honor forced glass with increased system contrast
Apply the explicit blur override consistently to glass surfaces, tab lenses, menus and the clarity slider while preserving text contrast and reduced motion. Update localized guidance and accessibility regression coverage.
2026-10-10 23:21:41 +07:00
zarzet 7066597259 feat(mornye): animate squircle menus from their trigger 2026-10-10 17:19:35 +07:00
zarzet 9ecfb31bc2 fix(automix): ease effects into playback without cutting dry audio 2026-10-10 17:06:41 +07:00
zarzet d273be026d feat(lyrics): customize text size and animate active lines 2026-10-10 17:04:09 +07:00
zarzet b30dd9fed0 feat(appearance): support imported TTF and OTF fonts 2026-10-10 16:59:06 +07:00
zarzet cdceda4585 fix(library): exclude inactive NAS entries and file aliases from duplicates 2026-10-10 02:16:32 +07:00
zarzet 97c63fb38e fix(library): allow choosing duplicate copies and clear stale indexes 2026-10-10 02:16:26 +07:00
zarzet edf575e8fc fix(playlists): preserve repeated tracks during imports 2026-10-10 02:16:22 +07:00
zarzet 829aeb156e fix(playback): reload audio sources when switching tracks 2026-10-10 02:16:15 +07:00
zarzet 00cff9b3c3 fix(ios): restore lock screen controls across app transitions 2026-10-09 18:08:12 +07:00
zarzet 02901a0c91 feat(lyrics): use Apple Music as the default lyrics provider 2026-10-09 18:08:03 +07:00
zarzet 1cae561e6c feat(appearance): make Mornye glass outlines optional 2026-10-09 18:07:55 +07:00
zarzet 1b9c35f322 fix(downloads): preserve browser verification and queues across restarts 2026-10-09 18:07:49 +07:00
zarzet 37258a6160 fix(setup): recover folder permissions after Android restarts 2026-10-09 18:07:38 +07:00
zarzet f870cafd07 fix(library): bound path-key migration batches
Migrate paths in 250-track pages and retain unchanged aliases to reduce memory use and index rewrites. Cover large libraries and atomic upgrade rollback with regression tests.

Refs #640
2026-10-09 13:49:03 +07:00
zarzet c92e1a61fe fix(library): sync local album play and pause controls 2026-10-09 13:48:53 +07:00
zarzet c7b1d0b0ec fix(metadata): preserve original artwork resolution for SAF files 2026-10-09 10:34:49 +07:00