mirror of
https://github.com/R0m1k3/xtremflow.git
synced 2026-10-22 14:38:06 +02:00
feat: add IPTV player screen supporting live, VOD, and series stream playback via embedded web players.
This commit is contained in:
1 parent
1547b376e0
commit
e74aa822ad
1 file changed
+23
-23
@@ -59,8 +59,6 @@ class _PlayerScreenState extends ConsumerState<PlayerScreen> {
|
|||||||
bool _isSeeking = false;
|
bool _isSeeking = false;
|
||||||
String _viewId = 'iptv-player';
|
String _viewId = 'iptv-player';
|
||||||
String? _currentStreamUrl;
|
String? _currentStreamUrl;
|
||||||
String _statusMessage = 'Loading...';
|
|
||||||
String? _errorMessage;
|
|
||||||
String? _errorMessage;
|
String? _errorMessage;
|
||||||
bool _isMuted = false;
|
bool _isMuted = false;
|
||||||
bool _ignoreStatusUpdates = false;
|
bool _ignoreStatusUpdates = false;
|
||||||
@@ -730,28 +728,30 @@ class _PlayerScreenState extends ConsumerState<PlayerScreen> {
|
|||||||
double iconSize = 24,
|
double iconSize = 24,
|
||||||
}) {
|
}) {
|
||||||
// Simplified button with direct Material/InkWell and PointerInterceptor
|
// Simplified button with direct Material/InkWell and PointerInterceptor
|
||||||
// Simplified button with direct Material/InkWell
|
// Simplified button with direct Material/InkWell and PointerInterceptor
|
||||||
// Note: PointerInterceptor is handled by the parent container
|
// We wrap the specific button to ensure it catches events over the iframe
|
||||||
return Material(
|
return PointerInterceptor(
|
||||||
color: transparent ? Colors.transparent : Colors.white.withOpacity(0.1),
|
child: Material(
|
||||||
shape: const CircleBorder(),
|
color: transparent ? Colors.transparent : Colors.white.withOpacity(0.1),
|
||||||
child: InkWell(
|
shape: const CircleBorder(),
|
||||||
onTap: () {
|
child: InkWell(
|
||||||
print('[PlayerScreen] Button tapped: $icon');
|
onTap: () {
|
||||||
onTap();
|
print('[PlayerScreen] Button tapped: $icon');
|
||||||
},
|
onTap();
|
||||||
customBorder: const CircleBorder(),
|
},
|
||||||
child: Container(
|
customBorder: const CircleBorder(),
|
||||||
width: size,
|
child: Container(
|
||||||
height: size,
|
width: size,
|
||||||
alignment: Alignment.center,
|
height: size,
|
||||||
decoration: BoxDecoration(
|
alignment: Alignment.center,
|
||||||
shape: BoxShape.circle,
|
decoration: BoxDecoration(
|
||||||
border: transparent
|
shape: BoxShape.circle,
|
||||||
? null
|
border: transparent
|
||||||
: Border.all(color: Colors.white.withOpacity(0.1)),
|
? null
|
||||||
|
: Border.all(color: Colors.white.withOpacity(0.1)),
|
||||||
|
),
|
||||||
|
child: Icon(icon, color: Colors.white, size: iconSize),
|
||||||
),
|
),
|
||||||
child: Icon(icon, color: Colors.white, size: iconSize),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in new issue
Block a user