Commit Graph
264 Commits
Author SHA1 Message Date
zarzet e61ff64adc feat(mornye): cache motion covers and refine player and search
Save album motion videos in app storage during downloads and prefer offline playback with an aspect-aware layout. Add cache management for saved videos.

Center active lyrics on opening, expand lyrics during manual scrolling, and adjust landscape header spacing. Group search rows and skeletons with dividers and remove redundant result icons.

Validation: Flutter analysis clean; 723 tests passed, 4 skipped; iOS simulator build installed.
2026-09-19 17:26:26 +07:00
zarzet 63e1a9b9c8 feat(ui): add Mornye glass theme and adaptive music player
Add a selectable Mornye theme with shared glass controls, dialogs, sheets, notifications, and collection headers while retaining Material components.

Update player artwork, lyrics transitions and highlighting, synchronized rolling time labels, volume controls, and compact navigation. Unify metadata, Library, search, and extension surfaces; preserve restored artwork and report extension load failures.

Validation: full Flutter analyzer clean; 713 tests passed and 4 skipped; pinned Dart formatting and diff checks passed; signed ARM64 and ARM32 release APKs built and verified.
2026-09-19 12:10:10 +07:00
zarzet df87f1e950 perf(images): decode local covers to their fitted display size 2026-09-17 18:25:24 +07:00
zarzet cd4b8ead90 perf(analysis): serialize and cancel owned FFmpeg sessions 2026-09-17 02:59:22 +07:00
zarzet fd777c34d9 perf(player): commit seek gestures once after scrubbing 2026-09-17 02:59:21 +07:00
zarzet a064e96c37 perf(ui): pause motion headers when collapsed 2026-09-17 02:59:21 +07:00
zarzet 650af6e59d fix(download): size quality picker to its content 2026-09-07 00:50:05 +07:00
zarzet 40546f48e6 fix(download): allow dragging the quality picker to dismiss 2026-09-07 00:47:15 +07:00
zarzet ed51b5d6ea revert: remove download size estimates 2026-09-06 22:17:23 +07:00
zarzet 174852b056 fix(download): estimate sizes from track quality metadata 2026-09-06 22:11:37 +07:00
zarzet ba00807786 fix(download): compare size estimates at each quality tier 2026-09-06 21:55:38 +07:00
zarzet c6195bcd10 feat(download): estimate file sizes in quality picker 2026-09-06 21:40:25 +07:00
zarzet a89f786960 perf(ui): retain platform link lookup across rebuilds
Keep the platform lookup Future in widget state and replace it only when track identifiers change. Theme rebuilds retain loaded content without another native call.

Add widget regressions for theme and identifier changes.
2026-09-06 14:04:05 +07:00
zarzet 1d0bb56f9b perf(images): size decoded covers from layout constraints 2026-09-06 02:33:42 +07:00
zarzet 2ef2beb621 fix(ui): resolve collapsed header title overlap 2026-09-04 23:58:14 +07:00
zarzet 958b79ebca fix(ui): improve adaptive phone and tablet layouts 2026-09-04 23:44:43 +07:00
zarzet 15ffb3abf5 feat(metadata): add safe batch editing and matching 2026-09-04 16:55:44 +07:00
zarzet cbeada208b feat(library): add bulk duplicate cleanup 2026-09-04 12:39:03 +07:00
zarzet a1ee346f2f chore(logging): sanitize diagnostics and reduce noise 2026-08-31 01:49:49 +07:00
zarzet 2c9881944d feat(updater): resume and verify APK downloads 2026-08-30 23:19:00 +07:00
zarzet e931d5e2b0 refactor(core): reduce generated and duplicate code 2026-08-30 11:57:47 +07:00
zarzet 7141ca980f fix(library): sync track playback controls 2026-08-30 00:43:13 +07:00
zarzet 686cc25395 fix(library): prevent pinch gesture blocking scroll 2026-08-28 19:57:40 +07:00
zarzet 51f61c9c95 fix(audio-analysis): avoid spectrogram splice noise 2026-08-28 01:48:52 +07:00
zarzet 847fc725b6 fix(analysis): reject false spectral rolloff cutoffs 2026-08-28 00:33:55 +07:00
zarzet 933a3c49e2 fix(library): persist artwork previews and stabilize completion 2026-08-27 21:42:38 +07:00
zarzet 1a7c20111a feat(library): add lyrics filtering and metadata actions 2026-08-27 01:44:06 +07:00
zarzet 0de4135966 fix(ui): smooth metadata transitions and refine settings 2026-08-26 22:36:54 +07:00
zarzet 747dea886c fix(runtime): bound resources and quarantine stalled extensions 2026-08-26 21:09:05 +07:00
zarzet 778f58e6e4 fix(lints): await asynchronous work in guarded blocks 2026-08-26 18:35:21 +07:00
zarzet 818f1d3a10 fix(analysis): reject false low spectral cutoffs 2026-08-23 11:07:59 +07:00
zarzet c9cf26fea6 fix(ui): align explicit badges with track titles 2026-08-23 01:13:10 +07:00
zarzet 19591bdf19 feat(metadata): show explicit badges in track titles 2026-08-22 23:08:40 +07:00
zarzet 951f648787 fix(analysis): bound spectrogram memory for large files 2026-08-19 14:33:13 +07:00
zarzet 6d97151ee7 fix(ui): align metadata and wrap track badges 2026-08-18 20:50:31 +07:00
zarzet 2cb5993d6e fix(ui): update tutorial copy and library play button 2026-08-18 19:49:41 +07:00
zarzet a7423b7f89 feat(metadata): edit release tags and render UPC barcodes 2026-08-18 19:29:12 +07:00
zarzet 7fc27e8314 perf(library): stream scans and optimize queue queries 2026-08-18 11:03:05 +07:00
zarzet b378297a99 fix(library): preserve retained files during duplicate cleanup 2026-08-17 21:03:02 +07:00
zarzet bec9e33c94 feat(metadata): review batch tag enrichment #511 2026-08-11 16:40:06 +07:00
zarzet 6742fe886f fix(a11y): label interactive controls 2026-08-04 16:40:48 +07:00
zarzet e761dd604f docs(release): add 4.8.5 changelog 2026-08-01 19:39:09 +07:00
zarzet bad48ea0fd feat(settings): reveal nested search results 2026-08-01 19:23:58 +07:00
zarzet ed60cafb90 fix(search): expose go to album for sparse tracks 2026-08-01 18:01:16 +07:00
zarzet 645a324a5f feat(navigation): add go to album actions 2026-08-01 16:06:08 +07:00
zarzet 15b1b757fd fix(analysis): guard unsupported AC-4 codec 2026-08-01 15:02:20 +07:00
zarzet d85c8f6a17 fix(analysis): detect full-band spectral cutoff 2026-07-30 15:14:36 +07:00
zarzet 5357e14b06 fix(ui): refine track action spacing 2026-07-30 14:42:26 +07:00
zarzet 49d0bd6a99 fix(ui): align track play button hitboxes 2026-07-30 14:16:21 +07:00
zarzet 76f7b9c025 fix(selection): keep modal sheets above selection bar 2026-07-30 11:22:59 +07:00