Commit Graph
2172 Commits
Author SHA1 Message Date
zarzet edd29a3f92 fix(extensions): accept account forms with optional cancel actions 2026-10-03 19:11:07 +07:00
zarzet f035538778 fix(library): expose failed scan files and reasons in app logs 2026-10-03 17:57:35 +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 82068263f2 fix(mornye): match tab highlights to the expanding glass outline 2026-10-03 16:59:29 +07:00
zarzet 6550104df9 chore(release): bump app version to 5.1.0 2026-10-03 16:12:01 +07:00
zarzet fb41a86f5a fix(library): match SAF documents across folder tree aliases 2026-10-03 13:40:39 +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 9247b99ab0 fix(mornye): use consistent animated oval switches across glass levels 2026-10-03 04:24:24 +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 2e71e88a9a fix(selection): dismiss action panels with a downward swipe 2026-10-03 03:25:42 +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 4eef5542be fix(metadata): recognize featured artist credits consistently
Handle feature and featured separators across display, Android finalization and Rust tag writing. Split conjunction credits only when separate artist IDs confirm them, and offer a picker for multi-artist navigation.
2026-10-02 18:10:00 +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 ae679214a9 fix(lyrics): preserve batch track identity and report results promptly 2026-10-02 14:54:47 +07:00
zarzet eb6218b1ab fix(album): open track metadata from local album rows 2026-10-02 14:54:38 +07:00
zarzet 7584daad88 fix(history): prevent maintenance from restoring orphan downloads 2026-10-02 13:58:13 +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 2ba4c46618 chore(release): bump app version to 5.0.8 2026-10-02 12:40:12 +07:00
zarzet 7a245ee620 fix(library): restore search selection actions after re-enrich 2026-10-02 11:44:57 +07:00
zarzet 3c62d38c34 fix(metadata): show re-enrich results above Library cards 2026-10-02 11:44:51 +07:00
zarzet 4b39716b23 fix(library): preserve SD card visibility during transient access failures 2026-10-02 11:44:44 +07:00
zarzet c1892fcd69 fix(library): include unindexed tracks in missing ReplayGain filter 2026-10-02 11:44:37 +07:00
zarzet 8758790d9f fix(download): preserve native media workspace across cache eviction 2026-10-02 11:44:29 +07:00
zarzet e200879d14 perf(mornye): share chrome backdrops and scale blur to clarity 2026-10-02 01:24:26 +07:00
zarzet 718e13f24e feat(library): filter tracks missing verified ReplayGain tags 2026-10-02 01:24:26 +07:00
zarzet b487154065 fix(backup): restore download and metadata provider order
Backups now carry both provider priority lists in the extensions section. Restore applies them after reinstalled extensions are enabled, so the saved order replaces the defaults instead of being reset.
2026-10-01 23:16:21 +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 a21e46e6dd perf(library): trim scan ingestion writes
Fresh staging tables hold no path keys, so the first row for an id no longer issues a delete. Removing scanned paths now runs in one transaction with a subselect instead of committing a lookup and two deletes per chunk.
2026-10-01 19:06:25 +07:00
zarzet 6e6d9dd00e fix(background): keep library scans and update downloads running with the screen off
Android froze the process once the activity stopped, because only track downloads held a foreground service. A dataSync BackgroundWorkService with a partial wake lock now covers library scans and in-app APK downloads, and stops when the last task ends or the system timeout fires. Its notification shows the existing localized progress, so no duplicate appears. If Android refuses the service, work continues as before.

On iOS a scan holds its own background task; on expiry it cancels the scan cleanly instead of being suspended.
2026-10-01 18:46:21 +07:00
zarzet ad9670eb46 feat(library): select search results with a long press
Long-pressing a song in Library search results enters multi-select with the Library track actions. Taps toggle songs, select all covers the visible songs, back leaves selection mode, and a new query clears it. Applies to the Mornye Library tab and the Material/Songs search.
2026-10-01 18:46:21 +07:00