zarzet
901fa34d80
refactor(bridge): remove dead cross-layer platform bridge methods
2026-07-26 18:32:40 +07:00
zarzet
d38a368f63
chore(about): credit blackgold8282 (Korean) and BrandQc (French) as translators
2026-07-26 18:12:40 +07:00
zarzet
984beb92e8
feat(l10n): merge Crowdin updates, enable Korean at 98%
...
Merge origin/l10n_main (PR #428 ) with a per-key three-way resolution:
Crowdin values win only where main did not change the key since the
last sync, so the unused-key removal, store->repo wording sweep, and
ICU plural fixes survive. Korean is restored at 98% completion and
mapped again in crowdin.yml and both language pickers; ar/hi/nl/zh-CN/
zh-TW stay dropped (37% and below).
2026-07-26 18:12:25 +07:00
zarzet
d3ab52d65d
chore(l10n): unmap dropped locales from Crowdin, add uk to setup picker
...
Follow-up to the arb removal: unmap ar/hi/ko/nl/zh-CN/zh-TW in
crowdin.yml so crowdin pull does not recreate them, trim the dead
entries from both language pickers, and add the missing uk entry to
the setup-screen picker.
2026-07-26 17:58:31 +07:00
zarzet
c497449549
feat(library): M3U8 playlist import and export
...
The playlist import picker now also accepts .m3u/.m3u8; EXTINF entries
feed the same Deezer enrichment pipeline as CSV. Collection screens
(wishlist, loved, playlists) gain an export action that resolves each
track to its local file, writes SAF entries relative to the download
tree root so external players and DAP copies resolve them, skips
tracks without a file, and shares the .m3u8 via the system sheet.
2026-07-26 17:56:38 +07:00
zarzet
54dcdb92dd
feat(player): restore playback session after process death
...
Queue, current index, position, and shuffle flag are snapshotted to a
new app_state playback_session table on pause, track change, and queue
mutation (never on position ticks). On launch the session is restored
paused into the mini player; the first play seeks to the saved
position. Plain file paths that no longer exist are dropped, an
explicit stop or mini-player dismiss clears the snapshot, and the
installation-restore guard wipes it alongside the download queue.
2026-07-26 17:45:50 +07:00
zarzet
c9470ef751
feat(queue): add download-next action on queued items
...
Queued rows get a skip-next button that reinserts the item ahead of all
other queued items, so the next free slot picks it up. During an active
native worker run the current batch keeps its order; the new order
applies from the next run.
2026-07-26 17:39:28 +07:00
zarzet
5f5186a23e
fix(reenrich): preserve release identity in batch actions
2026-07-26 12:28:00 +07:00
zarzet
c4abbf8743
fix(verification): recover signed-session bootstrap failures
2026-07-26 11:09:18 +07:00
Zarz Eleutherius
9b35c6dc42
New translations app_en.arb (Korean)
...
[ci skip]
2026-07-26 05:38:10 +07:00
Zarz Eleutherius
1c95109b7b
New translations app_en.arb (Korean)
...
[ci skip]
2026-07-26 04:15:24 +07:00
zarzet
08d648cfa8
fix(reenrich): allow correcting stale release metadata
2026-07-26 01:28:25 +07:00
zarzet
20081b14bd
refactor(dart): extract queue search and media policies
2026-07-26 01:13:52 +07:00
Zarz Eleutherius
d4c38b7550
New translations app_en.arb (Korean)
...
[ci skip]
2026-07-25 18:41:06 +07:00
Zarz Eleutherius
c681b891eb
New translations app_en.arb (Korean)
...
[ci skip]
2026-07-25 17:44:57 +07:00
Zarz Eleutherius
c19477a4f4
New translations app_en.arb (Korean)
...
[ci skip]
2026-07-25 16:41:28 +07:00
zarzet
1cfda41ef2
feat(audio): use VHQ settings for SoXR resampling
2026-07-25 15:58:42 +07:00
zarzet
19787ed461
fix(config): refresh announcements and remote content
2026-07-25 15:43:25 +07:00
Zarz Eleutherius
a7069a8f91
New translations app_en.arb (Korean)
...
[ci skip]
2026-07-25 15:34:01 +07:00
Zarz Eleutherius
bb127d1cc2
New translations app_en.arb (French)
...
[ci skip]
2026-07-25 14:00:34 +07:00
Zarz Eleutherius
927ca6e4ca
New translations app_en.arb (Korean)
...
[ci skip]
2026-07-25 14:00:32 +07:00
Zarz Eleutherius
66cf998fb2
New translations app_en.arb (Korean)
...
[ci skip]
2026-07-25 12:55:14 +07:00
Zarz Eleutherius
37db310157
New translations app_en.arb (Hindi)
...
[ci skip]
2026-07-25 10:13:00 +07:00
Zarz Eleutherius
13fe8b4593
New translations app_en.arb (Chinese Traditional)
...
[ci skip]
2026-07-25 10:12:58 +07:00
Zarz Eleutherius
a5f96b57e6
New translations app_en.arb (Chinese Simplified)
...
[ci skip]
2026-07-25 10:12:56 +07:00
Zarz Eleutherius
f0a7a043ec
New translations app_en.arb (Ukrainian)
...
[ci skip]
2026-07-25 10:12:55 +07:00
Zarz Eleutherius
58249d6a13
New translations app_en.arb (Turkish)
...
[ci skip]
2026-07-25 10:12:53 +07:00
Zarz Eleutherius
d9dc7ddf3a
New translations app_en.arb (Russian)
...
[ci skip]
2026-07-25 10:12:52 +07:00
Zarz Eleutherius
cc1ad1552c
New translations app_en.arb (Dutch)
...
[ci skip]
2026-07-25 10:12:50 +07:00
Zarz Eleutherius
a3feb39e20
New translations app_en.arb (Japanese)
...
[ci skip]
2026-07-25 10:12:49 +07:00
Zarz Eleutherius
7676579659
New translations app_en.arb (German)
...
[ci skip]
2026-07-25 10:12:47 +07:00
Zarz Eleutherius
bcb3729fa9
New translations app_en.arb (Arabic)
...
[ci skip]
2026-07-25 10:12:46 +07:00
Zarz Eleutherius
49a824c171
New translations app_en.arb (Spanish)
...
[ci skip]
2026-07-25 10:12:44 +07:00
Zarz Eleutherius
2a050f113b
New translations app_en.arb (French)
...
[ci skip]
2026-07-25 10:12:43 +07:00
Zarz Eleutherius
e4b99dd44b
New translations app_en.arb (Indonesian)
...
[ci skip]
2026-07-25 10:12:41 +07:00
Zarz Eleutherius
18584ab81f
New translations app_en.arb (Portuguese)
...
[ci skip]
2026-07-25 10:12:39 +07:00
Zarz Eleutherius
a4f7360336
New translations app_en.arb (Korean)
...
[ci skip]
2026-07-25 10:12:38 +07:00
zarzet
eabafecaeb
fix(navigation): open download queue from snackbar actions
2026-07-24 22:19:03 +07:00
zarzet
01c08322c1
fix(extensions): preserve explicit track metadata
2026-07-24 21:32:13 +07:00
zarzet
4713be02de
chore(settings): graduate native download worker
2026-07-24 12:23:36 +07:00
zarzet
89dcef8ffd
test(native-worker): add Android regression gates
2026-07-24 12:16:41 +07:00
zarzet
0d8bc7b269
fix(native-worker): harden background queue handling
2026-07-24 12:15:55 +07:00
zarzet
fa432266f3
chore(settings): graduate backup and restore from beta
2026-07-24 11:40:09 +07:00
zarzet
0cbe51ad19
fix(analysis): render full-track spectrograms
2026-07-23 18:24:14 +07:00
zarzet
5856729e9a
fix(library): persist records before download completion
2026-07-23 18:00:22 +07:00
zarzet
c35b11a155
fix(library): preserve downloaded file records
2026-07-23 17:40:09 +07:00
zarzet
3f487c03cc
chore(release): bump version to 4.8.0
2026-07-23 13:38:48 +07:00
zarzet
5481f8e8cf
feat(ui): smooth download progress updates
2026-07-23 13:36:22 +07:00
zarzet
cdbb0d6bd7
fix(notifications): restore verification alert sound
2026-07-23 13:23:54 +07:00
zarzet
c9114fef01
fix(android): sanitize restored installation state
2026-07-23 10:39:31 +07:00