zarzet
e975cae99f
feat(library): expand audio format and ReplayGain filters
...
Keep format choices available independently of loaded pages, match codec and extension aliases, and add a filter for indexed ReplayGain tags. Preserve source, quality, search, paging, and existing missing-ReplayGain behavior.
Validation: 13 targeted database and widget tests; Flutter localization generation and targeted analysis.
2026-10-08 22:30:04 +07:00
zarzet
9177a683a2
fix(storage): preserve extension encryption keys on read failures
...
Disable automatic deletion across clients sharing Android secure storage and enable protected migration. Reject replacement keys when encrypted settings exist or the saved key is malformed. Surface preparation failures through extension state and preserve retry behavior.
Validation: targeted Flutter tests, analyzer and Android secure-storage compatibility test passed. The original device key-loss trigger is not established.
2026-10-08 20:30:24 +07:00
zarzet
e01ec99c5e
perf(downloads): enqueue selected playlists in one update
2026-10-08 09:27:26 +07:00
zarzet
e0bdcb5134
perf(collections): delete selected playlists in one transaction
2026-10-08 05:14:44 +07:00
zarzet
3da4126762
perf(downloads): enqueue Wishlist selections in one update
2026-10-08 05:08:24 +07:00
zarzet
8ffd232b35
perf(collections): remove selected tracks in one transaction
2026-10-08 04:58:47 +07:00
zarzet
100999e5f5
perf(library): load bounded browse pages without rereading prefixes
2026-10-07 04:19:14 +07:00
zarzet
e7d0d88035
perf(backup): stream encoded collections without cloning model graphs
2026-10-07 04:19:14 +07:00
zarzet
4d7b9d97bc
perf(collections): isolate action and track row rebuilds
2026-10-07 03:21:51 +07:00
zarzet
a7c17ad316
fix(mornye): use glass for download queue confirmations
2026-10-07 00:16:16 +07:00
zarzet
ad674a55ad
perf(backup): stream history backup codecs and restore transactions natively
...
Export, import, and split legacy history backups in Rust while preserving schema 15, all history columns, path keys, and atomic restore behavior. Keep provider refresh and pending history edits intact.
2026-10-06 23:29:59 +07:00
zarzet
56f91f4e6c
perf(playlists): import CSV and export M3U through native workers
...
Move playlist parsing and serialization off the UI isolate, preserving field mapping, identifiers, durations, and export entries. Extend the shared parser contract tests with playlist fixtures.
2026-10-06 23:28:40 +07:00
zarzet
514e229fc8
perf(metadata): parse lyrics and encode ID3 artwork in native workers
...
Port LRC, enhanced LRC, and TTML parsing plus ID3v2.3 lyrics writing and picture encoding. Keep legacy contracts and deep XML fallback; guard asynchronous player updates against stale track results.
2026-10-06 23:28:20 +07:00
zarzet
92e3fa94ec
fix(network): discard stale folder browsing responses
2026-10-06 22:00:14 +07:00
zarzet
7057b0c349
refactor(albums): share immutable track and disc ordering
2026-10-06 22:00:13 +07:00
zarzet
4be1073203
fix(lyrics): hold current line highlight until the next lead
2026-10-06 14:20:54 +07:00
zarzet
4d65b590e1
refactor(metadata): separate file save persistence from editor
2026-10-06 13:08:13 +07:00
zarzet
d98ab4852d
fix(library): distinguish unavailable storage from missing files
2026-10-06 13:08:12 +07:00
zarzet
a6c1409ef5
fix(library): remove deleted files from both library indexes
2026-10-06 00:30:45 +07:00
zarzet
604a485cf1
perf(player): reuse artwork decodes across Mornye transitions
2026-10-05 19:20:04 +07:00
zarzet
a8712a44b1
perf(library): defer local providers while the feature is disabled
2026-10-05 17:53:18 +07:00
zarzet
e77996ddbd
refactor(metadata): separate editor state, autofill and artwork ownership
2026-10-05 03:28:14 +07:00
zarzet
3047d5974c
refactor(player): isolate routes, layouts and reactive controls
2026-10-05 03:27:46 +07:00
zarzet
c22577eb18
refactor(player): separate metadata state and lyrics rendering
2026-10-05 02:31:55 +07:00
zarzet
a363f5a459
refactor(playback): own configuration and dependencies per runtime
2026-10-05 02:31:47 +07:00
zarzet
5194344268
refactor(downloads): separate persistence, progress and feedback
2026-10-05 02:31:01 +07:00
zarzet
1abc45e2bf
feat(playback): automate mute and headphone playback controls
2026-10-05 01:55:08 +07:00
zarzet
ad3c9c0279
fix(home): anchor track menus to their source cards
2026-10-05 01:55:07 +07:00
zarzet
4a6206c21c
perf(search): reduce tab switching lag
2026-10-05 01:42:49 +07:00
zarzet
5c6a0390c2
fix(automix): diagnose crossfade fallback reasons
2026-10-04 04:51:32 +07:00
zarzet
e6c7213067
feat(player): show mixing status beside audio quality
2026-10-04 03:55:25 +07:00
zarzet
0ec8c96269
feat(automix): add configurable duration and transition effects
2026-10-04 03:55:24 +07:00
zarzet
60c3e4d857
feat(lyrics): add staggered spring motion to visible rows
2026-10-04 03:33:49 +07:00
zarzet
4ae97ad4f7
refactor(extensions): align settings with Material and Mornye
2026-10-03 19:11:14 +07:00
zarzet
6a4054d75e
fix(library): preserve album view when returning from detail screens
2026-10-03 17:57:26 +07:00
zarzet
61708829fd
fix(stats): show artwork for top artists
2026-10-03 17:15:49 +07:00
zarzet
6550104df9
chore(release): bump app version to 5.1.0
2026-10-03 16:12:01 +07:00
zarzet
983f1b26a5
feat(settings): default to built-in playback and word-synced lyrics
2026-10-03 13:40:39 +07:00
zarzet
b2bba0121b
fix(mornye): use liquid glass for Home download and album actions
2026-10-03 12:26:13 +07:00
zarzet
84cac92983
feat(network): add SMB and WebDAV libraries with streaming and uploads
2026-10-03 04:27:47 +07:00
zarzet
d97b4bfd2d
perf(details): load local albums with skeletons and bound artwork decoding
2026-10-03 04:24:55 +07:00
zarzet
a377885e56
feat(statistics): show cover artwork and artists for top tracks
2026-10-03 04:24:55 +07:00
zarzet
0914e7d978
feat(mornye): restore liquid glass with continuous draggable navigation
2026-10-03 04:24:54 +07:00
zarzet
d0d85b0e0e
fix(artwork): recover missing SAF covers after transient provider failures
2026-10-03 04:24:23 +07:00
zarzet
cc3fe42df2
refactor(metadata): flatten track actions and remove similar songs
2026-10-03 03:26:35 +07:00
zarzet
0b2cf0e4e5
feat(discord): add opt-in mobile rich presence with track artwork
2026-10-03 02:14:11 +07:00
zarzet
b767bd16d8
fix(playback): refresh notification favorite and shuffle controls
2026-10-03 02:14:01 +07:00
zarzet
cd3fb40f2e
fix(lyrics): preserve manual scrolling during control transitions
2026-10-03 02:13:57 +07:00
zarzet
def4536d0a
fix(mornye): keep lyrics scrolling stable when controls fade
2026-10-02 19:38:56 +07:00
zarzet
70f8bd7f35
feat(extensions): support personal account forms and direct downloads
2026-10-02 19:21:58 +07:00