Commit Graph
2874 Commits
Author SHA1 Message Date
zarzet 1ad2b7a51d refactor(extensions): separate domain models from provider state 2026-10-06 21:59:53 +07:00
zarzet 90165d471c test(providers): keep notifier fixture counters private 2026-10-06 21:59:18 +07:00
zarzet 9b89f2300c perf(player): avoid redundant lyric paints and background sampling 2026-10-06 21:59:18 +07:00
zarzet 04f679a26e perf(stats): ignore playback position-only changes 2026-10-06 21:59:17 +07:00
zarzet 42b428ca61 perf(widgets): skip unchanged playback state updates 2026-10-06 21:58:57 +07:00
zarzet 5de3f0469b perf(network): reduce directory listing and connection allocations 2026-10-06 21:58:56 +07:00
zarzet 393c11104e perf(library): simplify unfiltered album queries 2026-10-06 21:58:55 +07:00
zarzet f61e815e24 perf(android): trim platform assets and release Dart symbols 2026-10-06 21:58:55 +07:00
zarzet b8c50b1527 perf(android): reduce release APK size
Keep Dart debug data outside libapp.so and archive matching symbols and R8 mappings in CI. Pack native relocations, preserve JNI exports, and recompress PNG assets losslessly.

ARM64 APK shrinks from 80,306,680 to 76,080,247 bytes (5.26%). Verified with 1,877 Flutter tests, 19 native device tests, Discord SDK integration, and release startup on a 16 KiB Android emulator.
2026-10-06 15:22:42 +07:00
zarzet 4be1073203 fix(lyrics): hold current line highlight until the next lead 2026-10-06 14:20:54 +07:00
zarzet 4b5e40c167 chore(git): ignore vendored Android build outputs 2026-10-06 13:11:48 +07:00
zarzet 0a29046982 perf(downloads): bound scheduler waiters and prevent overlapping retries 2026-10-06 13:09:54 +07:00
zarzet 2df72112e4 refactor(downloads): extract completion audio and upload staging 2026-10-06 13:09:54 +07:00
zarzet 7b9405aaf6 refactor(downloads): separate metadata resolution and embedding 2026-10-06 13:09:45 +07:00
zarzet b8787168d1 refactor(downloads): isolate typed results and audio finalization 2026-10-06 13:09:26 +07:00
zarzet 7493c37698 refactor(android): isolate native download history persistence 2026-10-06 13:08:14 +07:00
zarzet 4d65b590e1 refactor(metadata): separate file save persistence from editor 2026-10-06 13:08:13 +07:00
zarzet ae918028bd fix(history): preserve bulk deletion failure handling 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 450dc213a9 fix(player): retire deleted sources and stale SAF copies 2026-10-06 13:07:58 +07:00
zarzet 08e4f1b41d refactor(logging): isolate native log transport 2026-10-06 13:07:57 +07:00
zarzet a6c1409ef5 fix(library): remove deleted files from both library indexes 2026-10-06 00:30:45 +07:00
zarzet 772bd97f7d fix(downloads): preserve filenames after decryption and conversion 2026-10-06 00:04:14 +07:00
zarzet bbc2c96971 fix(glass): refract navbar icons through the held lens 2026-10-05 23:20:51 +07:00
zarzet 224961d68d fix(glass): swell navbar glass without resizing icons 2026-10-05 22:29:46 +07:00
zarzet a56f206c43 test(glass): capture native Mornye poses and layer counts 2026-10-05 20:33:49 +07:00
zarzet 8bd1a998d0 perf(glass): cull selection masks outside the moving lens 2026-10-05 20:33:49 +07:00
zarzet 963eaa5fd5 perf(glass): omit collapsed navbar backdrop layers 2026-10-05 20:31:10 +07:00
zarzet fec2f86cfc test(performance): benchmark Mornye on iOS and Android emulators 2026-10-05 19:41:47 +07:00
zarzet 5b28db1375 perf(ui): retain marquee content while scrolling 2026-10-05 19:20:05 +07:00
zarzet 604a485cf1 perf(player): reuse artwork decodes across Mornye transitions 2026-10-05 19:20:04 +07:00
zarzet a5fdb8db92 fix(library): serialize scan admission and retain reconnect requests 2026-10-05 18:05:30 +07:00
zarzet d0114b1049 fix(artwork): promptly dispose failed video decoders 2026-10-05 17:53:20 +07:00
zarzet e3126153e6 perf(artwork): reuse decoded covers and preserve in-flight cache writes 2026-10-05 17:53:19 +07:00
zarzet dde79eeea2 fix(home): protect fresh feeds from late cache restoration 2026-10-05 17:53:19 +07:00
zarzet cfeeaa3084 fix(search): reject pending completions after clearing results 2026-10-05 17:53:19 +07:00
zarzet bf40ef8ebe fix(library): honor album artist filters in summary counts 2026-10-05 17:53:18 +07:00
zarzet a8712a44b1 perf(library): defer local providers while the feature is disabled 2026-10-05 17:53:18 +07:00
zarzet 6d68ef00ab perf(autoplay): index listening history and reuse normalized metadata 2026-10-05 17:53:17 +07:00
zarzet a3102b3b34 perf(library): coalesce availability probes and reject stale indexes 2026-10-05 17:52:37 +07:00
zarzet 2e17963804 refactor(library): isolate schema, row mapping and queue queries
Repair lookup counts during schema migration and resolve local FTS matches through the base table.
2026-10-05 03:28:48 +07:00
zarzet f8f489a7d5 refactor(ffmpeg): split media operations and safely publish outputs 2026-10-05 03:28:26 +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