From b18774d60b3292ed4f0bc09f6b702fa54f877538 Mon Sep 17 00:00:00 2001 From: edde746 <86283021+edde746@users.noreply.github.com> Date: Tue, 19 May 2026 20:23:17 +0200 Subject: [PATCH] fix(tv): complete detail rail behavior --- lib/screens/media_detail/action_buttons.dart | 3 +++ lib/widgets/media_card.dart | 22 +++++++++++++++++--- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/lib/screens/media_detail/action_buttons.dart b/lib/screens/media_detail/action_buttons.dart index 38d339db..04c5ba24 100644 --- a/lib/screens/media_detail/action_buttons.dart +++ b/lib/screens/media_detail/action_buttons.dart @@ -98,6 +98,9 @@ extension _MediaDetailActionButtons on _MediaDetailScreenState { return Focus( skipTraversal: true, + onFocusChange: (hasFocus) { + if (isTv) _setTvDetailActionRowFocus(hasFocus); + }, onKeyEvent: _handlePlayButtonKeyEvent, child: Row( children: [ diff --git a/lib/widgets/media_card.dart b/lib/widgets/media_card.dart index 5be8ad52..4db94f24 100644 --- a/lib/widgets/media_card.dart +++ b/lib/widgets/media_card.dart @@ -59,6 +59,7 @@ class MediaCard extends StatefulWidget { final bool isOffline; // True for downloaded content without server access final bool mixedHubContext; // True when in a hub with mixed content (movies + episodes) final bool showServerName; // Show server name in list view (multi-server) + final EpisodePosterMode? episodePosterModeOverride; const MediaCard({ super.key, @@ -75,6 +76,7 @@ class MediaCard extends StatefulWidget { this.isOffline = false, this.mixedHubContext = false, this.showServerName = false, + this.episodePosterModeOverride, }); @override @@ -241,6 +243,7 @@ class MediaCardState extends State with ContextMenuTapMixin with ContextMenuTapMixin with ContextMenuTapMixin