mirror of
https://github.com/R0m1k3/xtremflow.git
synced 2026-10-19 21:18:06 +02:00
feat: add LiveTVTab for browsing live channels with search and favorites, and PlayerScreen for channel playback.
This commit is contained in:
1 parent
a1a8810ddc
commit
be51118dc2
2 files changed
+57
-31
No files matched your search
@@ -373,33 +373,58 @@ class _PlayerScreenState extends ConsumerState<PlayerScreen> {
|
||||
),
|
||||
),
|
||||
|
||||
// Channel Zapping Controls
|
||||
if (widget.channels != null && widget.channels!.length > 1)
|
||||
// Bottom Controls for Live TV (Channel Zapping + Play/Pause)
|
||||
if (_showControls)
|
||||
AnimatedPositioned(
|
||||
duration: const Duration(milliseconds: 200),
|
||||
bottom: 160,
|
||||
right: _showControls ? 24 : -100,
|
||||
bottom: 40,
|
||||
left: 0,
|
||||
right: 0,
|
||||
child: PointerInterceptor(
|
||||
child: GlassContainer(
|
||||
width: 60,
|
||||
borderRadius: 30,
|
||||
opacity: 0.15,
|
||||
padding: const EdgeInsets.symmetric(vertical: 12),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
_buildGlassIconButton(
|
||||
icon: Icons.keyboard_arrow_up_rounded,
|
||||
onTap: _previousChannel,
|
||||
transparent: true,
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
_buildGlassIconButton(
|
||||
icon: Icons.keyboard_arrow_down_rounded,
|
||||
onTap: _nextChannel,
|
||||
transparent: true,
|
||||
),
|
||||
],
|
||||
child: Center(
|
||||
child: GlassContainer(
|
||||
borderRadius: 30,
|
||||
opacity: 0.15,
|
||||
border: true,
|
||||
borderColor: Colors.white.withOpacity(0.1),
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 24, vertical: 12),
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
// Previous Channel
|
||||
if (widget.channels != null &&
|
||||
widget.channels!.length > 1) ...[
|
||||
_buildGlassIconButton(
|
||||
icon: Icons.skip_previous_rounded,
|
||||
onTap: _previousChannel,
|
||||
transparent: true,
|
||||
),
|
||||
const SizedBox(width: 24),
|
||||
],
|
||||
|
||||
// Play/Pause
|
||||
_buildGlassIconButton(
|
||||
icon: _isPlaying
|
||||
? Icons.pause_rounded
|
||||
: Icons.play_arrow_rounded,
|
||||
onTap: _togglePlayPause,
|
||||
size: 56,
|
||||
iconSize: 32,
|
||||
),
|
||||
|
||||
// Next Channel
|
||||
if (widget.channels != null &&
|
||||
widget.channels!.length > 1) ...[
|
||||
const SizedBox(width: 24),
|
||||
_buildGlassIconButton(
|
||||
icon: Icons.skip_next_rounded,
|
||||
onTap: _nextChannel,
|
||||
transparent: true,
|
||||
),
|
||||
],
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
Reference in new issue
Block a user