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
zarzet
04a8700a65
fix(player): restore playback position reliably
2026-07-29 21:03:11 +07:00
zarzet
43a8d08851
fix(download): make picker drag dismissal natural
2026-07-29 19:59:09 +07:00
zarzet
cc93c5020d
feat(settings): polish search and navigation layout
2026-07-29 19:27:30 +07:00
zarzet
4ee7558bca
feat(collections): unify selection-aware screens
2026-07-29 17:13:21 +07:00
zarzet
7230dd3df8
refactor(ui): standardize error and empty states
2026-07-29 17:12:46 +07:00
zarzet
eed48a5fec
fix(a11y): improve compact control readability
2026-07-29 17:12:30 +07:00
zarzet
1443be6a4f
feat(details): add adaptive cover palettes
2026-07-29 17:12:15 +07:00
zarzet
dc4c75363c
refactor(extensions): share extension rows
2026-07-29 17:11:51 +07:00
zarzet
309777cc71
refactor(settings): unify settings components
2026-07-29 17:11:34 +07:00
zarzet
d765320f10
refactor(selection): share bottom bar behavior
2026-07-29 17:11:21 +07:00
zarzet
40034d184f
refactor(library): unify track cards
2026-07-29 17:10:57 +07:00
zarzet
dbdbf0ca41
refactor(ui): standardize modal sheets
2026-07-29 17:10:42 +07:00
zarzet
fa0c7b20b5
refactor(ui): unify sliver page headers
2026-07-29 17:10:24 +07:00
zarzet
1e973d5ecb
style(dart): apply repository formatting
2026-07-29 14:14:42 +07:00
zarzet
662558e3e6
fix(ui): sanitize user-facing errors
2026-07-29 01:43:04 +07:00
zarzet
b1c18b95e7
fix(analysis): detect effective spectral cutoff
2026-07-28 21:15:06 +07:00
zarzet
1390376f09
fix(album): overlay selection bar above navbar
2026-07-28 17:25:14 +07:00
zarzet
d1db2cdcc5
fix(analysis): isolate metrics from active downloads
2026-07-28 16:04:44 +07:00
zarzet
6c89a1e177
feat(album): batch download selected tracks
2026-07-28 15:48:45 +07:00
zarzet
af6ca12e85
fix(download): swap local track variant actions
2026-07-27 14:31:39 +07:00
zarzet
1cdf4b4547
fix(library): retain records when deletion fails
2026-07-27 14:24:39 +07:00
zarzet
73846c40ca
fix(download): complete quality variants reliably
2026-07-27 14:22:24 +07:00
zarzet
856e2cbb9e
fix(audio): wait for complete analyzer metrics
2026-07-27 14:19:52 +07:00
zarzet
3b901461f6
feat(library): show a trailing fade on the filter chips row
...
Extend ScrollEdgeFade with a horizontal axis and wrap the All/Albums/
Singles/Playlists chips so a right-edge fade signals the row scrolls
when chips overflow the screen.
2026-07-27 02:34:13 +07:00
zarzet
efe703d60d
feat(setup): make language list scrollability obvious and center step content
...
Add ScrollEdgeFade (bottom gradient while more content remains) plus an
always-visible scrollbar on the language list, and bias step centering
upward by the header height so content sits at the optical screen center.
2026-07-27 01:50:17 +07:00
zarzet
55be8fc827
fix(download): restore fast SQL-only duplicate check so huge playlists queue again
2026-07-27 01:43:56 +07:00
zarzet
5ee7f733cf
refactor(analysis): split models, info card, and spectrogram into part files
2026-07-27 00:30:25 +07:00
zarzet
2ce793d68f
perf(ui): scope scan rebuilds, aspect-bound MediaQuery, lazy duplicate list
2026-07-26 22:25:07 +07:00
zarzet
74615a60b5
refactor: consolidate lyrics builders, cancel registries, and priority plumbing
2026-07-26 19:08:22 +07:00
zarzet
424ca5d77e
feat(ux): unify added-to-queue snackbars and add fetch retry
...
Every single-track enqueue now shows the shared added-to-queue
snackbar with a View action into Library (six call sites through one
helper). URL fetch failures in Home and via share intent gain a Retry
action; unrecognized-URL errors deliberately keep none since retrying
is deterministic.
2026-07-26 19:00:31 +07:00
zarzet
cb8064a317
refactor(dart): consolidate duplicated lookup, filename, and search-provider helpers
2026-07-26 18:52:26 +07:00
zarzet
a21d5bcb33
feat(library): ISRC duplicate detection beyond FLAC with review sheet
...
The download-time ISRC index now also parses mp3, m4a, ogg, and opus
tags through the existing native readers instead of skipping everything
but .flac. Library settings gain a Review duplicates sheet that groups
history and local-library rows sharing an ISRC via SQL over the
attached databases (no filesystem walk, SAF-safe), shows quality
badges, and offers keep-best and per-copy delete with confirmation.
2026-07-26 18:49:58 +07:00
zarzet
04a71d0211
refactor: remove orphaned bridge, database, and queue helpers
2026-07-26 18:43:53 +07:00
zarzet
d4f0b84615
feat(track): add Open on... platform links sheet
...
Track options gain an Open on... entry listing every streaming platform
song.link resolves for the track, served by a new generic
GetTrackPlatformLinks with its own memory cache beside the availability
cache (same request budget). The sheet is data-driven from the platform
map so the app core stays service-agnostic. Completes the bridge
wrappers already landed in 901fa34d; also carries the en strings for
the duplicate review sheet landing next.
2026-07-26 18:42:41 +07:00
zarzet
eabafecaeb
fix(navigation): open download queue from snackbar actions
2026-07-24 22:19:03 +07:00
zarzet
0cbe51ad19
fix(analysis): render full-track spectrograms
2026-07-23 18:24:14 +07:00
zarzet
5481f8e8cf
feat(ui): smooth download progress updates
2026-07-23 13:36:22 +07:00
zarzet
f0988070bf
fix(convert): simplify output names and harden writes
2026-07-22 15:56:07 +07:00
zarzet
0961c09a6d
feat(download): preserve quality variants
2026-07-16 08:45:01 +07:00
zarzet
491998e5c5
feat(convert): optionally retain original files
2026-07-16 08:27:24 +07:00
zarzet
6f566a9f03
perf(player): isolate high-frequency playback updates
2026-07-15 22:09:20 +07:00