zarzet
5053ed93ee
perf(mornye): reuse exact luminance contributions for contrast sampling
...
Use 6 KiB of lookup tables to avoid repeated Color allocations and exponentiation during frame sampling. Exhaustively verify exact Flutter luminance parity for every 8-bit RGB value.
2026-09-20 17:20:52 +07:00
zarzet
6038ce5777
perf(mornye): release outgoing artwork decoders when replaced
...
Retain the outgoing decoder only while its frame remains displayed, then release its provider subscription as soon as replacement artwork is ready. Verify decoder disposal while preserving cover transitions.
2026-09-20 17:20:52 +07:00
zarzet
0c930c691f
fix(player): preserve offline motion artwork and smooth cover changes
2026-09-20 12:20:24 +07:00
zarzet
dc25370350
feat(artists): add branded headers and incremental release loading
2026-09-20 11:46:16 +07:00
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