From a3487485226683560c4546c98b7a8a32bbfcc2e0 Mon Sep 17 00:00:00 2001 From: Michael SCHAL Date: Mon, 8 Dec 2025 21:02:12 +0100 Subject: [PATCH] feat: implement IPTV player screen with playback controls, stream type support, and iframe communication. --- lib/features/iptv/screens/player_screen.dart | 2 +- verify_pos_fix_log.txt | Bin 0 -> 81946 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 verify_pos_fix_log.txt diff --git a/lib/features/iptv/screens/player_screen.dart b/lib/features/iptv/screens/player_screen.dart index f087d41..f71ef28 100644 --- a/lib/features/iptv/screens/player_screen.dart +++ b/lib/features/iptv/screens/player_screen.dart @@ -755,7 +755,7 @@ class _PlayerScreenState extends ConsumerState { // EPG Overlay (Moved behind controls for Z-ordering) if (widget.streamType == StreamType.live) Positioned( - bottom: 100, // Move up above progress bar area/OS safe area + bottom: 15, // Moves EPG down to avoid blocking controls left: 0, right: 0, child: PointerInterceptor( diff --git a/verify_pos_fix_log.txt b/verify_pos_fix_log.txt new file mode 100644 index 0000000000000000000000000000000000000000..9d0b8540e872071f14b4442598638f421806fc3f GIT binary patch literal 81946 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 HVa)#z!etYU literal 0 HcmV?d00001