Commit Graph
840 Commits
Author SHA1 Message Date
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
zarzet 50f21d9c82 feat(library): pause and resume library scans
The scan progress tile offers Pause and Resume. A paused scan releases its foreground service and wake lock, shows a paused notice, and resumes from the next unscanned file.
2026-10-01 21:00:42 +07:00
zarzet be9e9903d9 perf(store): skip invisible backdrop blur on repo cards
Repo cards, category chips and the Store search field scroll over the plain page background, where a backdrop blur changes nothing visible but re-filters each panel on every scroll frame. MornyeGlass.navigation gains samplesBackdrop; these panels keep the same tint, rim, shadow and glass clarity without the blur pass. Floating chrome keeps its blur.
2026-10-01 19:41:44 +07:00
zarzet 86cf860288 refactor(library): share the track selection bar and delete action
The Library list's multi-select toolbar (FLAC upgrade, re-enrich, convert, ReplayGain add/remove, delete) becomes LibraryTrackSelectionBar, and its delete flow becomes deleteLibraryTracks. The Library list renders and behaves as before; other screens can now offer the same actions.
2026-10-01 18:46:21 +07:00
zarzet a549671c4e feat(metadata): add a primary artist tag mode
Artist Tag Mode gains "Primary artist only": downloads and re-enrichment write only the first credited artist to Artist and Album Artist, so players list one artist. The FFmpeg MP3, M4A and Vorbis embeds and the AC-4 path now honor the mode; MP3 and M4A previously ignored it.

Manual metadata edits, lyrics embedding and format conversion keep existing or typed credits joined instead of dropping names. The picker scrolls so three options fit on small and landscape screens. Closes #618.
2026-10-01 16:12:58 +07:00
zarzet a2974acee0 fix(mornye): respect glass clarity and accessibility limits 2026-10-01 00:42:15 +07:00
zarzet fa491356d8 fix(library): spread filters across the search field width 2026-10-01 00:16:38 +07:00
zarzet cef57af562 fix(library): offer re-enrichment for downloaded selections 2026-10-01 00:16:25 +07:00
zarzet eed56d4cbb feat(album): replace selection sharing with metadata re-enrichment 2026-09-30 23:51:54 +07:00
zarzet ce13e29b71 feat(appearance): add glass clarity controls and directional highlights 2026-09-30 23:42:20 +07:00
zarzet 9ebf98ff6c perf(mornye): adapt glass and player effects to device capabilities 2026-09-30 23:42:00 +07:00
zarzet b11e925ee4 perf(player): suspend covered pages and streamline transitions 2026-09-30 23:40:04 +07:00
zarzet 1e246138c8 perf(download): avoid repeated progress decoding and queue regrouping 2026-09-30 23:39:22 +07:00
zarzet 1d3f7a0d44 fix(lyrics): lift timed words together 2026-09-30 22:09:41 +07:00
zarzet 377710ec22 refactor(ui): consolidate file feedback and shared display helpers 2026-09-30 21:43:39 +07:00
zarzet 8aa8d598d8 feat(lyrics): keep the screen awake while viewing lyrics 2026-09-30 20:21:21 +07:00
zarzet c0997de19c style(playback): mark bit-perfect and DAP hi-res output as beta 2026-09-28 12:13:17 +07:00
zarzet c5a262b865 fix(motion): pause loading effects when hidden or motion is reduced 2026-09-28 11:58:50 +07:00
zarzet 987245de71 style(library): use theme colors for Material collections 2026-09-28 11:58:50 +07:00
zarzet aeba9b879e feat(player): show covers and expressive controls in Material queue 2026-09-28 11:58:50 +07:00
zarzet 892911c825 feat(material): unify search filters and extension actions 2026-09-28 11:58:49 +07:00
zarzet 25c6292783 fix(settings): use neutral category icons in Material 2026-09-27 18:28:50 +07:00
zarzet 3980f1f851 fix(player): move Material audio output to bottom right 2026-09-27 17:51:45 +07:00
zarzet fad7e64fd3 fix(player): align Material lyrics toggle to bottom left 2026-09-27 17:48:11 +07:00
zarzet cd7c60cca7 feat(player): show Material lyrics in the artwork area 2026-09-27 17:40:21 +07:00
zarzet 02a1c8504c fix(player): give Material quality badge and controls more space 2026-09-27 17:32:27 +07:00
zarzet 472e549f8f feat(player): animate Material seek bar with expressive waves 2026-09-27 17:18:51 +07:00
zarzet d390a214c3 feat(material): adopt expressive controls across the app 2026-09-27 17:01:11 +07:00
zarzet a9ed5a19cd fix(album): show Material quality badges only for exceptions 2026-09-27 16:15:17 +07:00
zarzet 579c6fe4d9 fix(ui): show Dolby Atmos as a compact logo 2026-09-27 16:11:00 +07:00
zarzet 63210c0277 fix(queue): style Mornye swipe removal and simplify queue heading 2026-09-27 16:06:23 +07:00
zarzet 25f9d16e3d feat(settings): give playback its own settings page 2026-09-27 15:28:03 +07:00
zarzet d92bcf7716 feat(player): add AAudio hi-res, WavPack DSD and DAC volume 2026-09-27 15:26:11 +07:00
zarzet 6decce0f8b fix(lyrics): keep V3 collaborations on the primary side 2026-09-27 15:26:11 +07:00