Skip to content

Refine Home Screen Row Alignment and Media Bar Visibility for Expanded Home Rows#552

Merged
RadicalMuffinMan merged 1 commit into
Moonfin-Client:mainfrom
mattsigal:feature/expanded-rows-refinement
Jun 16, 2026
Merged

Refine Home Screen Row Alignment and Media Bar Visibility for Expanded Home Rows#552
RadicalMuffinMan merged 1 commit into
Moonfin-Client:mainfrom
mattsigal:feature/expanded-rows-refinement

Conversation

@mattsigal

Copy link
Copy Markdown
Collaborator

Pull Request

Summary

The goal of Expanded Home Rows is to have 1 home row on screen at a time. However, this logic was based on set padding values and they stopped being accurate with certain combinations of UI Scale, Home Row Image Size, and the number of ratings a movie has. This PR refines the Home Screen row alignment, scroll target calculations, and Media Bar visibility logic when using Expanded Home Rows (fullScreenRows) on TV/Desktop viewports.

Related Issues

Link related issues or tickets separated by commas.

  • Closes #
  • Fixes #
  • Related to #

Type of Change

  • Bug fix
  • New feature
  • Refactor
  • Performance improvement
  • UI/UX update
  • Documentation update
  • Build/CI change
  • Other (describe):

Changes Made

  • Ratings Height Pre-Reservation: Pre-allocates vertical space (adds 32.0 * desktopScale) to the measured rowHeight during scroll target calculations when enableAdditionalRatings is true. This prevents description text from being pushed off-screen or shifting when wrapped/two-row ratings load asynchronously.
  • Hide Non-Focused Next Rows: Updates _buildShiftedRow to hide all non-focused rows (both previous and next rows) when fullScreenRows is active. This prevents next-row titles from peeking or overlapping at the bottom of the viewport when a tall focused row is shifted up.
  • Banner Media Bar Persistence: Guards _mediaBarVisible changes to keep the Banner Media Bar visible when focus changes or moves down to content rows.
  • Banner to Row-0 Positioning: Bypasses the default off-screen scroll jump when navigating down from the Banner Media Bar, keeping the initial scroll offset at 0.0 and correctly aligning the following row directly below the banner.
  • Moonfin (Full Display) Navigation: Configures the full-screen media bar to return the standard top overlay position (defaultTop) for row 0 scroll targets. This slides the full-screen media bar completely off-screen and positions My Media perfectly under the navigation overlay with no blank screen.

Platform

  • Android
  • iOS
  • macOS
  • Windows
  • Linux
  • All / Shared code

Testing

Describe how this change was tested.

  • Tested on emulator / simulator
  • Tested on physical device
  • Manual testing completed - Extensively tested on the Shield with various setting combinations
  • Not tested (explain why):

Test Steps

  1. Configured Home Rows style to V2, enabled Expanded Home Rows, and set Media Bar mode to Banner.
  2. Verified that navigating down to My Media keeps the Banner visible at the top and positions the row below it.
  3. Verified that focusing a row with ratings that wrap to two lines (e.g. at Medium UI scale and Medium Card size) shifts the row up pre-emptively so the description fits entirely.
  4. Verified that next row headers (like Latest Cinema or Latest Serials) are completely hidden and do not peek at the bottom of the screen.
  5. Switched Media Bar mode to Moonfin (full display), navigated down to My Media, and verified the media bar scrolls off-screen cleanly, leaving no blank space.

Screenshots (if applicable)

Include screenshots or recordings for UI changes.

DIFFERENT UI SCALING/POSTER SIZES

Shield_Screenshot_2026-06-16_05-45-12 Shield_Screenshot_2026-06-16_05-48-39

FULL SCREEN MEDIA BAR

Shield_Screenshot_2026-06-16_06-19-56 Shield_Screenshot_2026-06-16_06-20-10

HALF-SCREEN MEDIA BAR

Shield_Screenshot_2026-06-16_06-20-32 Shield_Screenshot_2026-06-16_06-20-46

MULTI-LINE RATINGS

Shield_Screenshot_2026-06-16_06-59-11

Checklist

  • Code builds successfully
  • Code follows project style and conventions
  • No unnecessary commented-out code
  • No new warnings introduced

- Pre-reserve vertical space for wrapped ratings in height checks when additional ratings are enabled, preventing description text cutoff on V2 rows.
- Hide non-focused rows (both previous and next) when Expanded Home Rows (fullScreenRows) is active to prevent next-row titles from peeking at the bottom of the viewport.
- Prevent Banner Media Bar from going transparent when navigation or content focus changes.
- Ensure the full-display media bar correctly hides and scrolls off-screen on content focus, positioning the first row (My Media) correctly under the navigation overlay.
@RadicalMuffinMan
RadicalMuffinMan merged commit 282cea8 into Moonfin-Client:main Jun 16, 2026
8 checks passed
@mattsigal
mattsigal deleted the feature/expanded-rows-refinement branch June 23, 2026 20:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants