fix(tv): remove aliased hairline border on player transport controls - #223
Conversation
The rest-state border on the player transport controls is a 0.5dp translucent white stroke (22% alpha) drawn on each circular button. Because it is thinner than a device pixel and translucent, it dithers against the moving video and aliases into a jagged white fringe around every button, visible even on 4K panels where the sub-pixel stroke never lands on a whole device pixel. Drop the rest-state border and let the translucent fill carry the button edge. Focus treatment (white-fill inversion) is unchanged.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
💤 Files with no reviewable changes (1)
📝 WalkthroughWalkthroughThe change removes the unused ChangesTransport icon styling
Estimated code review effort: 1 (Trivial) | ~2 minutes Mergeability Score: ⚪ Minimal · up to This change removes a localized visual artifact from the TV player controls without changing focus behavior or other screens; no actionable merge-blocking risk remains after normal checks and review. Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
Why
The rest-state border on the player transport controls (play/pause, skip back and forward, subtitles, options, close) is a 0.5dp translucent white stroke at 22% alpha. Because it is thinner than a device pixel and translucent, it dithers against the moving video and aliases into a jagged white fringe around each button, visible even on 4K panels where the sub-pixel stroke never lands on a whole device pixel.
What
Drop the rest-state hairline border and let the translucent fill carry the button edge. Focus treatment (white-fill inversion) is unchanged.
Scope
Player screen only (
TvPlayerTransportCluster.kt). No other screens areaffected.
Testing
Compiles clean (
:androidTvApp:compileDebugKotlinAndroid) and manually validated that everything looks much cleaner.Summary by CodeRabbit