Commit Graph
873 Commits
Author SHA1 Message Date
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
zarzet 253a19f17f fix(library): preserve folders during upgrades and load failures
Load configured sources before storage probes and the track index, retain visible configuration on failures, and expose loading and retry states. Wait for saved settings before legacy migration and recreate a missing source placeholder without replacing existing identities.
2026-10-02 18:34:57 +07:00
zarzet 799bb0f7a1 fix(ui): make snackbars transient and replace stale messages
Limit transient messages to three seconds, keep action snackbars on a timer, and provide close controls. Apply one latest-message policy to the app and metadata sheet while preserving glass animations.
2026-10-02 18:34:36 +07:00
zarzet 1eea52c1c2 feat(playback): add local listening statistics and annual recap
Measure actual playback time and count plays after 30 seconds, with local SQLite aggregation for weekly, monthly and annual summaries. Add recording controls and safe clearing without affecting music or playlists.
2026-10-02 18:17:54 +07:00
zarzet 39bfda8f3d feat(library): show recent releases from favorite artists
Use installed extensions through the existing artist metadata API. Cache catalogs daily, cap concurrency, preserve previous results on provider failures and filter exact release dates into seven- and thirty-day views.
2026-10-02 18:13:39 +07:00
zarzet 575f3fc1bd fix(ios): preserve Now Playing ownership with motion artwork
Restore the non-mixing music audio session after decorative video initialization and before playback resumes. Add an artwork switch that releases or pauses video decoders and uses still covers when disabled.
2026-10-02 18:13:02 +07:00
zarzet a93e552b3e feat(library): add batch playlist and queue actions
Expose playlist, play-next and queue actions across Library search and album selections, including selected artist albums. Sort playlists, keep long selection toolbars scrollable, separate file operations in metadata menus, and show related local songs without online playback.
2026-10-02 18:11:37 +07:00
zarzet 9ea2647c39 feat(library): filter albums with missing tracks
Assess album completeness from the full local inventory, deduplicate track positions, and retain unknown status for ambiguous tags or disconnected sources. Add filters and count badges to Material and Mornye, including single-track albums and filtered search.
2026-10-02 17:03:07 +07:00
zarzet 2b022cdda3 fix(library): make missing-file cleanup responsive for downloaded tracks 2026-10-02 16:21:19 +07:00
zarzet eb6218b1ab fix(album): open track metadata from local album rows 2026-10-02 14:54:38 +07:00
zarzet c91d12dbf0 fix(artwork): preserve thumbnail aspect ratio during decoding 2026-10-02 13:58:13 +07:00
zarzet 26d713915f fix(library): restore Material playlist drag and drop 2026-10-02 13:57:18 +07:00
zarzet 3c62d38c34 fix(metadata): show re-enrich results above Library cards 2026-10-02 11:44:51 +07:00
zarzet 718e13f24e feat(library): filter tracks missing verified ReplayGain tags 2026-10-02 01:24:26 +07:00