Skip to content

perf: gate QueueSheet playing waveform animation on playback state - #1050

Merged
A-EDev merged 8 commits into
A-EDev:mainfrom
OshekharO:main
Sep 14, 2026
Merged

A-EDev merged 8 commits into
A-EDev:mainfrom
OshekharO:main

Conversation

@OshekharO

@OshekharO OshekharO commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

Summary

Gated the PlayingWaveform animation in QueueSheet and QueueTrackRow on the playback state (isPlaying = uiState.isPlaying). Previously, when playback was paused, the queue sheet's currently playing track item's waveform bars would continue animating infinitely, consuming unnecessary frame budgets and CPU cycles.

  • Pass isPlaying = uiState.isPlaying from FullMusicPlayerContent to QueueSheet
  • Forward isPlaying to QueueTrackRow
  • Pass animate = isPlaying to PlayingWaveform in QueueTrackRow

Change type

  • Bug fix
  • Feature
  • Refactor or maintenance
  • Build, packaging, or CI
  • Documentation

Validation

  • ./gradlew :app:assembleGithubDebug
  • ./gradlew :app:testGithubDebugUnitTest
  • I ran any additional flavor-specific build or test tasks affected by this change.
  • I manually tested the affected behavior on an Android device or emulator.

Risk and compatibility

  • The change does not introduce secrets, private data, or unexpected telemetry.
  • New user-facing text uses Android string resources.
  • Dependency and lockfile changes are intentional and limited to this PR.
  • Room schema changes include the required version bump and migration, or this PR does not change the Room schema.
  • Breaking changes and upgrade steps are clearly documented.

)

Ensure CancellationException is rethrown when loading SponsorBlock segments in SponsorBlockHandler so coroutine cancellation is preserved cleanly and false error logs are avoided. Added unit test verification in SponsorBlockHandlerTest.
Gated the PlayingWaveform animation in QueueSheet and QueueTrackRow on the playback state (`isPlaying = uiState.isPlaying`). Previously, when playback was paused, the queue sheet's currently playing track item's waveform bars would continue animating infinitely, consuming unnecessary frame budgets and CPU cycles.

- Pass `isPlaying = uiState.isPlaying` from `FullMusicPlayerContent` to `QueueSheet`
- Forward `isPlaying` to `QueueTrackRow`
- Pass `animate = isPlaying` to `PlayingWaveform` in `QueueTrackRow`
@OshekharO
OshekharO requested a review from A-EDev as a code owner September 12, 2026 03:01
@github-actions github-actions Bot added player Video and audio playback ui Compose UI, theming, or Material 3 surfaces labels Sep 12, 2026
@A-EDev
A-EDev merged commit b66b94b into A-EDev:main Sep 14, 2026
5 checks passed
@A-EDev A-EDev added the merged Pull request verified, tested and merged label Sep 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merged Pull request verified, tested and merged player Video and audio playback ui Compose UI, theming, or Material 3 surfaces

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants