Commit Graph
3021 Commits
Author SHA1 Message Date
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 c0fd506c78 fix(storage): preserve audio MIME when publishing SAF downloads
Honor the requested MIME across publication paths, retain the audio suffix in temporary names, and exclude unfinished documents from full and incremental scans. Verify MIME and byte integrity across four formats and publication modes.
2026-10-13 19:38:11 +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 v5.1.1 2026-10-11 16:14:55 +07:00
zarzet ebaa6c5c1e test(android): accept validated FLAC fallback across FFmpeg versions 2026-10-11 16:14:01 +07:00
zarzet 879e86b20e test(rust): remove TCP timing dependence from chunked fixture 2026-10-11 16:14:01 +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 01083c473b Merge remote-tracking branch 'origin/main' 2026-10-11 14:41:53 +07:00
zarzet 075ddf489f chore: ignore generated Discord plugin lockfiles 2026-10-11 14:34:58 +07:00
zarzet c84fc335ac fix(ios): preserve folder grants and surface picker failures 2026-10-11 14:34:35 +07:00
zarzet 118c42c4ff test(player): cover Previous audio selection and AutoMix handoff 2026-10-11 14:34:28 +07:00
zarzet 40cd1909df test(ui): correct context menu and lyric spacing assertions 2026-10-11 14:34:22 +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 49aeedbdcf chore(ci): refresh action pins and align Android build toolchains 2026-10-11 14:33:58 +07:00
zarzet d611590039 chore(android): update Gradle Kotlin NDK and native build dependencies 2026-10-11 14:33:52 +07:00
zarzet 08032f1877 chore(rust): update toolchain and dependencies with preserved vendor sources 2026-10-11 14:33:45 +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 83adc03a15 fix(ci): locate Discord license notices inside the iOS plugin framework 2026-10-11 14:31:31 +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