fix(discover): restore hero indicators and bottom fade on non-TV
The hero dots/pause row was gated on live input mode, so any navigation
key event (Android back key, BT keyboards, gamepad-source noise) hid it
until the next pointer event - on phones it ended up permanently hidden.
Gate on the TV platform instead (issue #600's actual scope); the TV
layout never renders the carousel, so nothing changes there.
The bottom fade lost its guaranteed opaque band when the section-level
gradient was removed (686a61ac): the per-item overlay only reached full
background at the literal last pixel, letting artwork ghost through the
final 15% and read as a hard cut against the content below - worst on
phones, where square hero art is bright at the bottom. Finish the fade
at solid background from the 0.94 stop (~32px band on a phone hero).
This commit is contained in:
@@ -1373,8 +1373,11 @@ class _DiscoverScreenState extends State<DiscoverScreen>
|
||||
return _buildHeroItem(_onDeck[index], heroHeight);
|
||||
},
|
||||
),
|
||||
// Page indicators with animated progress and pause/play button
|
||||
if (!InputModeTracker.isKeyboardMode(context))
|
||||
// Page indicators with animated progress and pause/play button.
|
||||
// Hidden on TV only (issue #600: pointer-only control unreachable
|
||||
// via d-pad) — never gated on transient input mode, which back-key
|
||||
// events, BT keyboards, and gamepads can flip on phones/desktop.
|
||||
if (!isTv)
|
||||
Positioned(
|
||||
bottom: 16,
|
||||
left: -26,
|
||||
@@ -1586,8 +1589,11 @@ class _DiscoverScreenState extends State<DiscoverScreen>
|
||||
gradient: LinearGradient(
|
||||
begin: Alignment.topCenter,
|
||||
end: Alignment.bottomCenter,
|
||||
colors: [Colors.transparent, bgColor.withValues(alpha: 0.9), bgColor],
|
||||
stops: isTv ? const [0.25, 0.78, 1.0] : const [0.5, 0.85, 1.0],
|
||||
// Reach full bg before the bottom edge so the hero
|
||||
// blends seamlessly into the content below and the
|
||||
// page dots sit on a solid band.
|
||||
colors: [Colors.transparent, bgColor.withValues(alpha: 0.9), bgColor, bgColor],
|
||||
stops: isTv ? const [0.25, 0.78, 0.94, 1.0] : const [0.5, 0.85, 0.94, 1.0],
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user