Skip to content

Impl/lyrics sheet redesign#935

Merged
theovilardo merged 3 commits intomasterfrom
impl/lyrics-sheet-redesign
Jan 28, 2026
Merged

Impl/lyrics sheet redesign#935
theovilardo merged 3 commits intomasterfrom
impl/lyrics-sheet-redesign

Conversation

@theovilardo
Copy link
Copy Markdown
Owner

Redesigned LyricsSheet and added new features

…estures, and improved navigation.

- **Lyrics & Immersive Mode**:
    - Introduces an "Immersive Lyrics" mode that automatically hides UI controls and scales text size for a focused viewing experience.
    - Adds a configurable auto-hide timeout (3s to 6s) in Settings.
    - Implements `LyricsFloatingToolbar` to centralize navigation, lyrics mode switching (Synced vs. Static), and advanced options like temporary immersive disablement.
    - Adds `LyricsSyncControls` to provide granular timing adjustments (-0.5s to +0.5s) for synced lyrics.
    - Integrates a track info header (title, artist, and album art) directly into the `LyricsSheet`.
- **Gestures & Navigation**:
    - Implements horizontal swipe gestures on the lyrics sheet to skip tracks, including a visual feedback overlay with haptic response.
    - Adds a "Show Controls" button that appears when the interface is in immersive mode.
- **UI & Styling**:
    - Replaces the standard lyrics slider with `WavySliderExpressive` for a more dynamic seek bar.
    - Refactors `ToggleSegmentButton` into a standalone component for consistent mode switching.
    - Updates `PlayerSeekBar` to use a more expressive wavy stroke and improved layout alignment.
- **Data & Preferences**:
    - Adds `immersive_lyrics_enabled` and `immersive_lyrics_timeout` keys to `UserPreferencesRepository`.
    - Updates `SettingsViewModel` and `PlayerViewModel` to expose and manage these new immersive lyrics preferences.
    - Adds an "Immersive Lyrics" section to the Personalization settings screen.
- **Components**:
    - Refactors `LyricsSheet.kt` to move track metadata and sync controls into specialized sub-components (`LyricsTrackInfo`, `LyricsSyncControls`).
    - Optimizes `SyncedLyricsList` with better padding management and smoother scrolling.
- **Lyrics Sheet Improvements**:
    - Updates `LyricsTrackInfo` with a new `CircleShape` background, dynamic content sizing, and integrated `PlayingEqIcon`.
    - Adjusts track info positioning to `TopStart` and replaces auto-scrolling text with ellipsis-truncated standard text for better legibility in the header.
    - Refines playback control sizes and visual feedback, including updated play/pause icon dimensions and progress indicator colors.
    - Updates side-swipe overlay shapes to use a more pronounced asymmetrical corner radius (360.dp vs 8.dp).
    - Reduces the height of the top gradient overlay from 180.dp to 130.dp.
- **Lyrics Toolbar & Controls**:
    - Replaces icon-based toggle buttons in `LyricsFloatingToolbar` with text labels ("Synced" and "Static").
    - Reorganizes the toolbar overflow menu, moving "Save lyrics" and "Reset imported lyrics" to the top and adding a visual divider.
    - Adds a custom styled `Switch` for temporary immersive mode disabling.
    - Slightly increases the height of `LyricsSyncControls` for better touch targets.
- **UI Components**:
    - Adds a new text-based overload for `ToggleSegmentButton`.
    - Cleans up `LibraryScreen.kt` by removing unused commented-out navigation pill code.
- **Miscellaneous**:
    - Simplifies type references for `Song` in `LyricsSheet.kt`.
- Removes commented-out `HorizontalDivider` from the lyrics search results list.
@theovilardo theovilardo merged commit 6b67506 into master Jan 28, 2026
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.

1 participant