Skip to content

5.8.0#240

Merged
shub39 merged 11 commits intomasterfrom
dev
Apr 17, 2026
Merged

5.8.0#240
shub39 merged 11 commits intomasterfrom
dev

Conversation

@shub39
Copy link
Copy Markdown
Owner

@shub39 shub39 commented Apr 16, 2026

Summary by CodeRabbit

  • New Features

    • Added an expressive motion scheme for enhanced animations.
  • Improvements

    • More consistent, smoother animations across lyrics, settings, sharing, previews, and scrollbars.
    • UI tweaks: color picker spacing, about/settings layout updates, pro/paywall shape, and refreshed palette preview.
    • Improved lyric syncing, loading-dot behavior, and related progress animations.
  • Localization

    • Updated Polish translations.
  • Documentation

    • Added 5.8.0 release note and updated app version to 5.8.0.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 16, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 8ee014be-fd84-4338-90c7-5fde645b2193

📥 Commits

Reviewing files that changed from the base of the PR and between ade4616 and 4dfa6f9.

📒 Files selected for processing (3)
  • app/build.gradle.kts
  • app/src/main/java/com/shub39/rush/presentation/Scrollbar.kt
  • app/src/main/java/com/shub39/rush/presentation/lyrics/component/SyllableSyncedLyrics.kt
🚧 Files skipped from review as they are similar to previous changes (1)
  • app/build.gradle.kts

📝 Walkthrough

Walkthrough

Bumps release to v5.8.0 and SDK/tools, adopts Material Expressive theming and MotionScheme-based animation specs across Compose UI, refactors DotLoadingProgress to a lambda progress API, inserts placeholder TTML lines for large timing gaps, and updates Polish translations.

Changes

Cohort / File(s) Summary
Version & Build Metadata
CHANGELOG.md, app/build.gradle.kts, gradle/libs.versions.toml
Added ## 5.8.0 changelog entry; bumped appVersionName5.8.0, appVersionCode5800; AGP→9.1.1, compileSdk/targetSdk37; bumped some library versions.
Theme & Motion Scheme
app/src/main/java/com/shub39/rush/presentation/components/RushTheme.kt
Replaced prior Dynamic theme wrapper with MaterialExpressiveTheme + rememberDynamicColorScheme; set motionScheme = MotionScheme.expressive() and changed dynamic accent fallback to android.R.color.system_accent1_900.
Animation Spec Standardization
app/src/main/java/com/shub39/rush/presentation/lyrics/Util.kt, .../component/Actions.kt, .../component/LineSyncedLyrics.kt, .../component/PlainLyrics.kt, .../component/SyllableSyncedLyrics.kt, .../section/LyricsPage.kt, .../component/customisation/LyricsCustomisationSettings.kt, .../share/SharePage.kt, app/src/main/java/com/shub39/rush/presentation/Scrollbar.kt
Replaced assorted tween/spring/easing usages with MaterialTheme.motionScheme.fastEffectsSpec() and fastSpatialSpec(); added explicit fadeIn/fadeOut transitions to many AnimatedVisibility usages; added OptIn for expressive APIs where needed.
DotLoadingProgress Refactor
app/src/main/java/com/shub39/rush/presentation/lyrics/component/DotLoadingProgress.kt
Signature changed from progress: Floatprogress: () -> Float; removed animate state; per-dot progress, scale and alpha computed directly each frame.
Syllable & Line Synced Lyrics
app/src/main/java/com/shub39/rush/presentation/lyrics/component/SyllableSyncedLyrics.kt, .../LineSyncedLyrics.kt
Added per-line animatedProgress, underTextAlpha, and isCurrent propagation; compute line progress using next line start times; empty-line rendering now shows DotLoadingProgress(progress = { animatedProgress }).
TTML Parsing Enhancement
app/src/main/java/com/shub39/rush/domain/dataclasses/TTMLParser.kt
Post-processes parsed lines to insert placeholder ParsedLine entries with empty text/words when first line starts after 5s or gaps between lines exceed 5s.
UI Layout & Component Adjustments
app/src/main/java/com/shub39/rush/presentation/components/ColorPickerDialog.kt, .../setting/component/AboutApp.kt, .../setting/section/LookAndFeelPage.kt, .../setting/section/SettingRootPage.kt
Removed 16.dp portrait padding in ColorPickerDialog; AboutApp root changed Row→Column and added @PreviewLightDark; LookAndFeel: palette preview replaced by Canvas arcs, locale-titlecased style label, accent fallback→900; pro/paywall card shape→CircleShape.
Localization
app/src/main/res/values-pl/strings.xml
Updated multiple Polish strings (empty state phrasing, track/artist labels and capitalization, sorting wording, lyric-type labels, AMOLED capitalization).

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Possibly related PRs

  • 🔧 maintainence #147: Overlaps on adopting Material3 expressive APIs and build/version metadata changes.
  • dev #155: Overlaps on DotLoadingProgress signature/behavior and related lyrics animation changes.
  • 5.7.1 #228: Overlaps on synced-lyrics components and animation/state propagation changes.

Poem

🐰 I hopped through motion, soft and clear,

Expressive schemes now drawing near,
Dots that pulse with tiny beats,
Gaps filled in and Polish treats,
Five-point-eight — I nibble cheer.

🚥 Pre-merge checks | ✅ 1 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Title check ❓ Inconclusive The title '5.8.0' is extremely vague and generic, providing no meaningful information about the changeset beyond a version number. Use a descriptive title that summarizes the main change, such as 'Add expressive motion scheme to animations and update to 5.8.0' or 'Implement Material3 expressive theme and motion specifications'.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (6)
gradle/libs.versions.toml (1)

4-5: Keep visualizer-helper on the cataloged SDK level.

visualizer-helper/build.gradle.kts:6-12 still hard-codes compileSdk = 36, so this bump leaves that module behind the rest of the project. Please switch that module to libs.versions.compileSdk as well so the repo keeps a single source of truth for SDK versions.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@gradle/libs.versions.toml` around lines 4 - 5, The visualizer-helper module
is still hard-coding compileSdk = 36; update visualizer-helper/build.gradle.kts
to use the cataloged SDK version (libs.versions.compileSdk or the DSL accessor
used in the project) instead of the literal 36 and likewise align targetSdk if
it’s hard-coded, replacing the compileSdk literal with the project’s
libs.versions.compileSdk reference so the repo has a single source of truth.
app/src/main/java/com/shub39/rush/presentation/setting/section/LookAndFeelPage.kt (1)

335-343: Prefer a localized label over PaletteStyle.toString().

This subtitle is now built from the enum name, so values like TONAL_SPOT will render as Tonal_spot. Please use a string resource/helper here, or at least normalize underscores before title-casing, so the label stays readable and translatable.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@app/src/main/java/com/shub39/rush/presentation/setting/section/LookAndFeelPage.kt`
around lines 335 - 343, The subtitle currently builds a label from the enum name
(state.theme.style.toString()) which yields awkward, non-localized text like
"Tonal_spot"; update LookAndFeelPage.kt to use a localized string or normalize
the enum name before title-casing: either map PaletteStyle enum values to string
resources (preferred) and fetch via stringResource, or at minimum convert the
enum name with replace('_', ' ') then apply titlecase using
LocalLocale.current.platformLocale so underscores are removed and the label is
localizable/readable; reference the usage at state.theme.style in the
supportingContent block to implement the change.
app/src/main/java/com/shub39/rush/presentation/lyrics/section/LyricsPage.kt (2)

498-502: Same consideration for consistency with Actions.kt.

Similar to the previous comment, this uses fastSpatialSpec() for fade transitions while other files use fastEffectsSpec().

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@app/src/main/java/com/shub39/rush/presentation/lyrics/section/LyricsPage.kt`
around lines 498 - 502, The AnimatedVisibility block in LyricsPage.kt uses
MaterialTheme.motionScheme.fastSpatialSpec() for fadeIn/fadeOut, causing
inconsistency with other files (e.g., Actions.kt) that use fastEffectsSpec();
update the fadeIn and fadeOut calls inside the AnimatedVisibility (the block
referencing state.sync and fadeIn/fadeOut) to use
MaterialTheme.motionScheme.fastEffectsSpec() so transitions match the rest of
the codebase.

429-434: Consider using fastEffectsSpec() for fade transitions.

This AnimatedVisibility uses fastSpatialSpec() for fadeIn/fadeOut transitions, while Actions.kt uses fastEffectsSpec() for similar fade animations.

fastEffectsSpec() is typically intended for non-spatial effects (color, opacity), whereas fastSpatialSpec() is for spatial transformations (scale, position). For fade transitions, fastEffectsSpec() may be more semantically appropriate.

If this is intentional (e.g., you want different timing characteristics here), please disregard.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@app/src/main/java/com/shub39/rush/presentation/lyrics/section/LyricsPage.kt`
around lines 429 - 434, The fade transitions inside the AnimatedVisibility in
LyricsPage (the block using visible = state.autoChange and the fadeIn/fadeOut
calls) are using MaterialTheme.motionScheme.fastSpatialSpec(), but fade is a
non-spatial effect; change those calls to
MaterialTheme.motionScheme.fastEffectsSpec() for both fadeIn and fadeOut to
match semantic intent and the usage in Actions.kt (unless the spatial timing was
intentional).
app/src/main/java/com/shub39/rush/presentation/lyrics/component/Actions.kt (1)

126-136: Missing motion spec for consistency.

This AnimatedVisibility block (for the edit/correct lyrics button) doesn't have explicit enter/exit transitions with MaterialTheme.motionScheme.fastEffectsSpec(), unlike all other AnimatedVisibility blocks in this file.

♻️ Suggested fix for consistency
-    AnimatedVisibility(visible = state.source == Sources.LRCLIB && state.selectedLines.isEmpty()) {
+    AnimatedVisibility(
+        visible = state.source == Sources.LRCLIB && state.selectedLines.isEmpty(),
+        enter = fadeIn(MaterialTheme.motionScheme.fastEffectsSpec()),
+        exit = fadeOut(MaterialTheme.motionScheme.fastEffectsSpec())
+    ) {
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@app/src/main/java/com/shub39/rush/presentation/lyrics/component/Actions.kt`
around lines 126 - 136, The AnimatedVisibility that shows the edit/correct
button (AnimatedVisibility where visible = state.source == Sources.LRCLIB &&
state.selectedLines.isEmpty()) is missing explicit enter/exit motion specs;
update that AnimatedVisibility to pass enter and exit transitions using
MaterialTheme.motionScheme.fastEffectsSpec() (consistent with other blocks in
this file) so its appearance/disappearance uses the same motion scheme; keep the
existing onClick behavior invoking LyricsPageAction.OnLyricsCorrect(true),
LyricsPageAction.OnSync(false), and possibly
LyricsPageAction.OnToggleAutoChange.
app/src/main/java/com/shub39/rush/presentation/components/ColorPickerDialog.kt (1)

74-78: Padding removal creates inconsistency with landscape layout.

The portrait layout no longer has outer padding (Line 75), while the landscape layout at Line 115 retains .padding(16.dp). This may cause visual inconsistency between orientations.

Was this intentional? If so, consider documenting why portrait needs different padding behavior.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@app/src/main/java/com/shub39/rush/presentation/components/ColorPickerDialog.kt`
around lines 74 - 78, The portrait Column in ColorPickerDialog uses
Modifier.wrapContentSize() with no padding, causing inconsistency with the
landscape branch that uses .padding(16.dp); make the padding consistent by
adding .padding(16.dp) to the portrait Column modifier (or alternatively remove
.padding(16.dp) from the landscape branch or apply a single conditional modifier
based on orientation inside the ColorPickerDialog composable) so both
orientations render with the same outer spacing; if the omission was
intentional, add a brief comment in ColorPickerDialog explaining why portrait
omits padding.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@app/src/main/java/com/shub39/rush/domain/dataclasses/TTMLParser.kt`:
- Around line 176-183: The injected blank-line filler is using line.startTime
when line.words is empty, which can hide an active lyric parsed via
getDirectTextContent(...); update the logic in TTMLParser.kt inside the
lines.forEachIndexed loop (where add(ParsedLine(text = "", startTime =
currentLineEnd, ...)) is created) to use the real line end timestamp parsed from
the <p> element (the parsed line's explicit end/dur value) as the fallback
instead of line.startTime, and if no explicit end/dur is available then skip
inserting the placeholder altogether; locate the code around the currentLineEnd
calculation (uses line.words.lastOrNull()?.endTime ?: line.startTime) and change
the fallback to use line.endTime or omit the filler when endTime is null.

In `@app/src/main/java/com/shub39/rush/presentation/components/RushTheme.kt`:
- Around line 49-50: The dynamic-color branch in RushTheme.kt skips Android 12
because the check uses > Build.VERSION_CODES.S; change the condition in the
theme.materialTheme guard to include API 31 by using >= Build.VERSION_CODES.S so
Android 12 devices hit the dynamic color path (the block that calls
colorResource(android.R.color.system_accent1_900)). Update the conditional where
theme.materialTheme is evaluated to use >= so LookAndFeelPage and the app theme
behavior align.

In
`@app/src/main/java/com/shub39/rush/presentation/lyrics/component/SyllableSyncedLyrics.kt`:
- Around line 339-344: The non-word line branch in SyllableSyncedLyrics (the
Text composable using isCurrent, textColor and underTextAlpha) immediately
applies underTextAlpha when not current, causing abrupt dimming; change the
color logic to treat already-completed lines the same as the word-timed path
(keep full textColor) and only apply underTextAlpha for truly future/unused
lines—e.g., compute or reuse an isCompleted/isPast flag (matching the word-timed
completion check) and use color = if (isCurrent || isCompleted) textColor else
textColor.copy(alpha = underTextAlpha).

---

Nitpick comments:
In
`@app/src/main/java/com/shub39/rush/presentation/components/ColorPickerDialog.kt`:
- Around line 74-78: The portrait Column in ColorPickerDialog uses
Modifier.wrapContentSize() with no padding, causing inconsistency with the
landscape branch that uses .padding(16.dp); make the padding consistent by
adding .padding(16.dp) to the portrait Column modifier (or alternatively remove
.padding(16.dp) from the landscape branch or apply a single conditional modifier
based on orientation inside the ColorPickerDialog composable) so both
orientations render with the same outer spacing; if the omission was
intentional, add a brief comment in ColorPickerDialog explaining why portrait
omits padding.

In `@app/src/main/java/com/shub39/rush/presentation/lyrics/component/Actions.kt`:
- Around line 126-136: The AnimatedVisibility that shows the edit/correct button
(AnimatedVisibility where visible = state.source == Sources.LRCLIB &&
state.selectedLines.isEmpty()) is missing explicit enter/exit motion specs;
update that AnimatedVisibility to pass enter and exit transitions using
MaterialTheme.motionScheme.fastEffectsSpec() (consistent with other blocks in
this file) so its appearance/disappearance uses the same motion scheme; keep the
existing onClick behavior invoking LyricsPageAction.OnLyricsCorrect(true),
LyricsPageAction.OnSync(false), and possibly
LyricsPageAction.OnToggleAutoChange.

In `@app/src/main/java/com/shub39/rush/presentation/lyrics/section/LyricsPage.kt`:
- Around line 498-502: The AnimatedVisibility block in LyricsPage.kt uses
MaterialTheme.motionScheme.fastSpatialSpec() for fadeIn/fadeOut, causing
inconsistency with other files (e.g., Actions.kt) that use fastEffectsSpec();
update the fadeIn and fadeOut calls inside the AnimatedVisibility (the block
referencing state.sync and fadeIn/fadeOut) to use
MaterialTheme.motionScheme.fastEffectsSpec() so transitions match the rest of
the codebase.
- Around line 429-434: The fade transitions inside the AnimatedVisibility in
LyricsPage (the block using visible = state.autoChange and the fadeIn/fadeOut
calls) are using MaterialTheme.motionScheme.fastSpatialSpec(), but fade is a
non-spatial effect; change those calls to
MaterialTheme.motionScheme.fastEffectsSpec() for both fadeIn and fadeOut to
match semantic intent and the usage in Actions.kt (unless the spatial timing was
intentional).

In
`@app/src/main/java/com/shub39/rush/presentation/setting/section/LookAndFeelPage.kt`:
- Around line 335-343: The subtitle currently builds a label from the enum name
(state.theme.style.toString()) which yields awkward, non-localized text like
"Tonal_spot"; update LookAndFeelPage.kt to use a localized string or normalize
the enum name before title-casing: either map PaletteStyle enum values to string
resources (preferred) and fetch via stringResource, or at minimum convert the
enum name with replace('_', ' ') then apply titlecase using
LocalLocale.current.platformLocale so underscores are removed and the label is
localizable/readable; reference the usage at state.theme.style in the
supportingContent block to implement the change.

In `@gradle/libs.versions.toml`:
- Around line 4-5: The visualizer-helper module is still hard-coding compileSdk
= 36; update visualizer-helper/build.gradle.kts to use the cataloged SDK version
(libs.versions.compileSdk or the DSL accessor used in the project) instead of
the literal 36 and likewise align targetSdk if it’s hard-coded, replacing the
compileSdk literal with the project’s libs.versions.compileSdk reference so the
repo has a single source of truth.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: cf4e45f6-f885-4796-b6be-1e23ce126a52

📥 Commits

Reviewing files that changed from the base of the PR and between e7b0cb1 and 864740b.

📒 Files selected for processing (19)
  • CHANGELOG.md
  • app/build.gradle.kts
  • app/src/main/java/com/shub39/rush/domain/dataclasses/TTMLParser.kt
  • app/src/main/java/com/shub39/rush/presentation/components/ColorPickerDialog.kt
  • app/src/main/java/com/shub39/rush/presentation/components/RushTheme.kt
  • app/src/main/java/com/shub39/rush/presentation/lyrics/Util.kt
  • app/src/main/java/com/shub39/rush/presentation/lyrics/component/Actions.kt
  • app/src/main/java/com/shub39/rush/presentation/lyrics/component/DotLoadingProgress.kt
  • app/src/main/java/com/shub39/rush/presentation/lyrics/component/LineSyncedLyrics.kt
  • app/src/main/java/com/shub39/rush/presentation/lyrics/component/PlainLyrics.kt
  • app/src/main/java/com/shub39/rush/presentation/lyrics/component/SyllableSyncedLyrics.kt
  • app/src/main/java/com/shub39/rush/presentation/lyrics/component/customisation/LyricsCustomisationSettings.kt
  • app/src/main/java/com/shub39/rush/presentation/lyrics/section/LyricsPage.kt
  • app/src/main/java/com/shub39/rush/presentation/setting/component/AboutApp.kt
  • app/src/main/java/com/shub39/rush/presentation/setting/section/LookAndFeelPage.kt
  • app/src/main/java/com/shub39/rush/presentation/setting/section/SettingRootPage.kt
  • app/src/main/java/com/shub39/rush/presentation/share/SharePage.kt
  • app/src/main/res/values-pl/strings.xml
  • gradle/libs.versions.toml

Comment thread app/src/main/java/com/shub39/rush/domain/dataclasses/TTMLParser.kt
Comment on lines +49 to +50
if (theme.materialTheme && Build.VERSION.SDK_INT > Build.VERSION_CODES.S) {
colorResource(android.R.color.system_accent1_900)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Include Android 12 in the dynamic-color path.

Line 49 uses > Build.VERSION_CODES.S, so API 31 falls through to Color(theme.seedColor). LookAndFeelPage already treats >= Build.VERSION_CODES.S as eligible for Material theming, which means Android 12 can show dynamic-color settings/previews while the actual app theme still ignores them.

Suggested fix
-                if (theme.materialTheme && Build.VERSION.SDK_INT > Build.VERSION_CODES.S) {
+                if (theme.materialTheme && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
if (theme.materialTheme && Build.VERSION.SDK_INT > Build.VERSION_CODES.S) {
colorResource(android.R.color.system_accent1_900)
if (theme.materialTheme && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
colorResource(android.R.color.system_accent1_900)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@app/src/main/java/com/shub39/rush/presentation/components/RushTheme.kt`
around lines 49 - 50, The dynamic-color branch in RushTheme.kt skips Android 12
because the check uses > Build.VERSION_CODES.S; change the condition in the
theme.materialTheme guard to include API 31 by using >= Build.VERSION_CODES.S so
Android 12 devices hit the dynamic color path (the block that calls
colorResource(android.R.color.system_accent1_900)). Update the conditional where
theme.materialTheme is evaluated to use >= so LookAndFeelPage and the app theme
behavior align.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In
`@app/src/main/java/com/shub39/rush/presentation/setting/section/LookAndFeelPage.kt`:
- Around line 335-344: The string transformation in the supportingContent Text
uses inconsistent locales (lowercase() default vs
titlecase(LocalLocale.current.platformLocale)); update the lowering call to
explicitly use the same locale (e.g., call
lowercase(LocalLocale.current.platformLocale)) so both lowercase and titlecase
use LocalLocale.current.platformLocale when transforming
state.theme.style.toString() in the supportingContent lambda of LookAndFeelPage.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: b5dbeab0-0954-48a8-a7be-6ef7c5b7d278

📥 Commits

Reviewing files that changed from the base of the PR and between 864740b and 4633073.

📒 Files selected for processing (8)
  • app/src/main/java/com/shub39/rush/presentation/lyrics/Util.kt
  • app/src/main/java/com/shub39/rush/presentation/lyrics/component/Actions.kt
  • app/src/main/java/com/shub39/rush/presentation/lyrics/component/LineSyncedLyrics.kt
  • app/src/main/java/com/shub39/rush/presentation/lyrics/component/PlainLyrics.kt
  • app/src/main/java/com/shub39/rush/presentation/lyrics/component/customisation/LyricsCustomisationSettings.kt
  • app/src/main/java/com/shub39/rush/presentation/setting/component/AboutApp.kt
  • app/src/main/java/com/shub39/rush/presentation/setting/section/LookAndFeelPage.kt
  • app/src/main/java/com/shub39/rush/presentation/share/SharePage.kt
✅ Files skipped from review due to trivial changes (2)
  • app/src/main/java/com/shub39/rush/presentation/share/SharePage.kt
  • app/src/main/java/com/shub39/rush/presentation/lyrics/component/customisation/LyricsCustomisationSettings.kt
🚧 Files skipped from review as they are similar to previous changes (2)
  • app/src/main/java/com/shub39/rush/presentation/lyrics/component/Actions.kt
  • app/src/main/java/com/shub39/rush/presentation/setting/component/AboutApp.kt

@shub39 shub39 merged commit d91f23e into master Apr 17, 2026
3 checks passed
@coderabbitai coderabbitai Bot mentioned this pull request Apr 21, 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.

2 participants