The empty lyrics page offers Search online, which asks the enabled lyrics
providers in their configured order. The result is shown in the player
only and never written to the file; a late result is dropped after the
track changes, and a miss says so.
Add two keyless providers that serve Apple Music TTML: lrc.red, matched by
recording, and BetterLyrics, which answers songs it has already cached.
TTML is read into the first-party Apple line structure, so vocal sides,
backing groups, word timing, translations and romanization share one eLRC
formatter. The XML depth guard moves to core so both readers use it.
SpotiFLAC-Mobile Lyrics becomes its own provider instead of a fallback
inside Apple Music. New defaults are Apple Music, lrc.red, SpotiFLAC-Mobile
Lyrics, LyricsPlus and LRCLIB. Migration 13 moves untouched defaults to the
new list and keeps the former fallback right after Apple Music in custom
orders. Replace the dead LyricsPlus Workers mirror.
Replace the banner with animated light and dark SVGs built from M3
Expressive shapes, give every section heading a shaped icon, and swap the
four screenshots for a themed showcase of Home, Library, Now Playing and
Equalizer. Rewrite the FAQ for the current app and trim API Credits to a
single line of services the app still uses.
Without a feed, the Material Home now greets in its header with a
prompt picked once per launch, keeps import and paste out of the
resting search field, and fills the page with Continue listening,
player shortcuts, Recently added tracks from the whole Library and the
most played tracks of the last four weeks.
Replace the old screenshots with Home, Library, Now Playing and
Equalizer captures, add the Featured on FMHY badge, redraw the release,
Crowdin and Telegram badges as Material Expressive light and dark
images, and replace the Extensions section with a two-column feature
table using colored shape icons.
Single-choice sheet rows still built their own checkmark trailing, with
inconsistent colours, so only three rows used AppSheetOption.choice. Move
the remaining sixteen rows to it, drop the now unused colour plumbing, and
remove a duplicate Semantics wrapper that announced selection twice.
Offer default and full-screen artwork in Material and Mornye, retaining landscape layouts and full-screen Mornye motion artwork. Keep the Material header readable over bright covers and normalize invalid saved styles without resetting other settings.
Validation: 144 related Flutter tests, flutter analyze, generated settings, formatter and diff checks.