Skip to content

feat(lyrics): Add Share Lyrics (select lines, styled card, share/save as image) - #343

Merged
ajisth69 merged 11 commits into
Clash-Projects:mainfrom
X-MAN-TG:feature/share-lyrics
Oct 17, 2026
Merged

ajisth69 merged 11 commits into
Clash-Projects:mainfrom
X-MAN-TG:feature/share-lyrics

Conversation

@X-MAN-TG

Copy link
Copy Markdown
Contributor

Adds a "Share Lyrics" feature to the lyrics view, similar to the Spotify and YouTube Music lyrics sharing.

A. How it works

  • A new share button in the lyrics controls opens a full-screen flow.
  • Step 1: select 1 to 5 contiguous lines. The default is the current line plus the line before and after.
  • Step 2: preview the card with a Song / Lyrics toggle and a color picker, including a dimmed album-cover background.
  • The card is rendered to a PNG (album art, title, artist, lyrics, LastWave logo and name), then shared through the Android share sheet or saved to Pictures/LastWave.
  • Lyrics wrap like the original lines, and RTL and complex scripts (Devanagari, Arabic, CJK) are supported.
  • The card uses the app's existing font, artwork pipeline and theme.

B. Scope

  • New code lives in ui/player/lyricsshare/, plus a new tintable logo drawable.
  • Existing files are only touched in small, additive ways: ModernLyricsView.kt (share button), PlayerHost.kt (one param), FileExportHelper.kt (new share/save functions), strings.xml (all locales), CHANGELOG.md.
  • No changes to lyrics providers, playback, database or navigation.

C. Testing

  • Unit and renderer tests added for selection rules, color contrast, card layout, scripts, cache cleanup and share intents.
  • testDebugUnitTest, lintDebug, assembleDebug and assembleRelease pass.
  • Manually tested on a physical device: select, preview, share and save. No crashes found.

D.
photo_2026-10-17_19-24-47
photo_2026-10-17_19-24-46
photo_2026-10-17_19-24-44
photo_2026-10-17_19-24-42
photo_2026-10-17_19-24-40
photo_2026-10-17_16-49-27
Notes

  • Rebased on the latest main.
  • Screenshots of the select screen and the generated cards are attached below.

@ajisth69
ajisth69 merged commit 7ce1ac3 into Clash-Projects:main Oct 17, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants