zarzet
a1ee346f2f
chore(logging): sanitize diagnostics and reduce noise
2026-08-31 01:49:49 +07:00
zarzet
91b2de8175
perf(playback): stream SAF tracks through descriptor leases
2026-08-30 23:18:03 +07:00
zarzet
2e0a5f7b9c
fix(downloads): hide unknown byte totals in notifications
2026-08-30 18:58:19 +07:00
zarzet
c281fe121d
perf(android): tighten R8 keep rules
2026-08-30 11:57:59 +07:00
zarzet
f1fb01604d
perf(download): reduce progress wakeups and harden retries
2026-08-29 23:47:58 +07:00
zarzet
8988f99f79
fix(security): sandbox extension FFmpeg execution
2026-08-29 18:53:52 +07:00
zarzet
63d29d2ed4
fix(security): validate extension callback state
2026-08-29 18:53:33 +07:00
zarzet
29db940d63
fix(security): encrypt extension storage at rest
2026-08-29 18:52:16 +07:00
zarzet
5dac33dfa4
fix(download): preserve finalization metadata and library labels
2026-08-29 00:31:25 +07:00
zarzet
c3b2214e2a
perf: optimize library scans and extension runtime
2026-08-28 21:00:11 +07:00
zarzet
887a8ede12
feat(metadata): limit embedded cover resolution
2026-08-28 13:21:05 +07:00
zarzet
45d9bbd7b2
perf: harden download and persistence lifecycle
2026-08-28 12:51:03 +07:00
zarzet
433f8ed685
perf: reduce queue and extension runtime overhead
2026-08-28 01:47:51 +07:00
zarzet
1a7c20111a
feat(library): add lyrics filtering and metadata actions
2026-08-27 01:44:06 +07:00
zarzet
04c42bd511
perf(downloads): bound native queue state
2026-08-27 00:17:25 +07:00
zarzet
747dea886c
fix(runtime): bound resources and quarantine stalled extensions
2026-08-26 21:09:05 +07:00
zarzet
0e3fca9967
perf(downloads): stream concurrent native queue work
2026-08-26 18:37:56 +07:00
zarzet
e149ee5358
fix(storage): publish finalized SAF output once
2026-08-26 18:37:15 +07:00
zarzet
832214043d
fix(extensions): remove Block Store dependency
2026-08-26 17:00:27 +07:00
zarzet
19591bdf19
feat(metadata): show explicit badges in track titles
2026-08-22 23:08:40 +07:00
zarzet
60624436a6
feat(library): support multiple storage folders
2026-08-22 11:15:42 +07:00
zarzet
89d39c4074
fix(metadata): show readable SAF file locations
2026-08-21 01:02:02 +07:00
zarzet
ea63291db8
refactor(metadata): move cover resolution to extensions
2026-08-19 13:12:29 +07:00
zarzet
290923e88f
feat(tagging): write release identity tags
2026-08-18 19:04:26 +07:00
zarzet
48883d51d4
feat(extensions): preserve provider metadata
2026-08-18 12:28:35 +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
2e115308b7
feat(filename): add provider traceability tags
2026-08-17 20:51:27 +07:00
zarzet
efc03db308
fix(metadata): keep collaboration albums grouped
2026-08-11 20:58:27 +07:00
zarzet
5374883875
fix(download): normalize MP4 audio extension by codec ( #512 )
2026-08-11 19:07:00 +07:00
zarzet
95f2879110
fix(download): recover queue after worker timeout ( #524 )
2026-08-11 17:23:29 +07:00
zarzet
6dbca64a80
perf(history): batch SAF orphan inspection #511
2026-08-11 16:50:35 +07:00
zarzet
bec9e33c94
feat(metadata): review batch tag enrichment #511
2026-08-11 16:40:06 +07:00
zarzet
5237aed25e
feat(download): add automatic lossy conversion
2026-08-11 15:19:45 +07:00
zarzet
a59c749089
fix(download): preserve SAF and defer background starts
2026-08-09 05:23:47 +07:00
zarzet
b3bbe93c1e
fix(metadata): preserve WAV and AIFF tags
2026-08-01 15:33:20 +07:00
zarzet
3e41aa0eee
fix(metadata): support extension custom search
2026-07-30 15:36:31 +07:00
zarzet
5b45ef80bf
fix(android): stop forcing display mode at startup
2026-07-29 13:48:41 +07:00
zarzet
e7fbaf7b75
fix(download): suffix only colliding quality variants
2026-07-29 02:43:35 +07:00
zarzet
fb538e9517
feat(metadata): choose extension for online autofill
2026-07-28 15:18:10 +07:00
zarzet
209eb5f10e
fix(download): always alert for verification pauses
2026-07-28 14:21:42 +07:00
zarzet
26570792a9
fix(library): persist lossless bitrate metadata
2026-07-28 00:50:20 +07:00
zarzet
ad08b95c0f
perf(android): skip unused download widget work
2026-07-28 00:50:00 +07:00
zarzet
73846c40ca
fix(download): complete quality variants reliably
2026-07-27 14:22:24 +07:00
zarzet
6424647472
refactor(android): split replaygain journal, snapshots, and network policy out of DownloadService
2026-07-27 00:28:12 +07:00
zarzet
4539b3fd67
refactor(android): split media, ffmpeg, and SAF publish helpers out of NativeDownloadFinalizer
2026-07-27 00:25:34 +07:00
zarzet
ac90e7f517
refactor(android): split SAF scan and URI IO helpers out of MainActivity
2026-07-26 23:30:26 +07:00
zarzet
183744c41e
feat(android): home-screen download queue widget
...
A RemoteViews widget (no new dependencies) shows the active track,
artist, queue count, and a coarse progress bar, with tap-to-open.
DownloadService pushes updates only on discrete events — track or
status changes and 25% progress steps, never per byte — matching the
battery discipline; the last state persists so launcher refreshes
render after process death. Colors use Material You system tokens on
API 31+ with static light/dark fallbacks below.
2026-07-26 19:21:58 +07:00
zarzet
97b87472fe
feat(metadata): manual MusicBrainz lookup in the tag editor
...
The Go MusicBrainz genre and album-artist ISRC lookups only ran
automatically at download time. The tag editor's auto-fill section
gains a Fetch from MusicBrainz button that bridges both exports in one
channel call (sparing the 1 req/s budget) and fills the fields as
editable suggestions; nothing is written until Save.
2026-07-26 19:21:32 +07:00
zarzet
04a71d0211
refactor: remove orphaned bridge, database, and queue helpers
2026-07-26 18:43:53 +07:00