mirror of
https://github.com/R0m1k3/xtremobile.git
synced 2026-10-20 21:59:03 +02:00
feat: Add mobile IPTV tabs for movies, series, and live TV.
This commit is contained in:
1 parent
7fea892766
commit
3145af9e8d
4 files changed
+88
-34
No files matched your search
@@ -171,6 +171,8 @@ class _MobileLiveTVTabState extends ConsumerState<MobileLiveTVTab>
|
||||
// Search Bar - Wrapped in TVFocusable for remote access
|
||||
TVFocusable(
|
||||
scale: 1.0, // Disable scaling to prevent overflow
|
||||
focusColor:
|
||||
Colors.white, // Solid white selection frame
|
||||
onPressed: () {
|
||||
setState(() => _isSearchEditing = true);
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
@@ -185,9 +187,7 @@ class _MobileLiveTVTabState extends ConsumerState<MobileLiveTVTab>
|
||||
decoration: BoxDecoration(
|
||||
color: AppColors.surface,
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
border: _isSearchEditing
|
||||
? Border.all(color: AppColors.primary)
|
||||
: null,
|
||||
// Removed internal editing border here to prevent conflict and "inside frame" look
|
||||
),
|
||||
padding:
|
||||
const EdgeInsets.symmetric(horizontal: 12),
|
||||
@@ -200,6 +200,8 @@ class _MobileLiveTVTabState extends ConsumerState<MobileLiveTVTab>
|
||||
child: ExcludeFocus(
|
||||
excluding: !_isSearchEditing,
|
||||
child: TextField(
|
||||
cursorColor:
|
||||
Colors.white, // Extra safety
|
||||
controller: _searchController,
|
||||
focusNode: _searchFocusNode,
|
||||
readOnly: !_isSearchEditing,
|
||||
@@ -208,6 +210,9 @@ class _MobileLiveTVTabState extends ConsumerState<MobileLiveTVTab>
|
||||
decoration: const InputDecoration(
|
||||
hintText: 'Rechercher une chaîne...',
|
||||
border: InputBorder.none,
|
||||
focusedBorder: InputBorder
|
||||
.none, // Explicitly remove focus border
|
||||
enabledBorder: InputBorder.none,
|
||||
isDense: true,
|
||||
),
|
||||
onSubmitted: (_) => setState(
|
||||
|
||||
@@ -280,6 +280,7 @@ class _MobileMoviesTabState extends ConsumerState<MobileMoviesTab>
|
||||
const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
|
||||
child: TVFocusable(
|
||||
scale: 1.0, // Disable scaling to prevent overflow
|
||||
focusColor: Colors.white, // Solid white selection frame
|
||||
onPressed: () {
|
||||
setState(() => _isSearchEditing = true);
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
@@ -292,9 +293,7 @@ class _MobileMoviesTabState extends ConsumerState<MobileMoviesTab>
|
||||
decoration: BoxDecoration(
|
||||
color: AppColors.surface,
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
border: _isSearchEditing
|
||||
? Border.all(color: AppColors.primary)
|
||||
: Border.all(color: AppColors.border),
|
||||
// Removed internal editing border here to prevent conflict and "inside frame" look
|
||||
),
|
||||
padding: const EdgeInsets.symmetric(horizontal: 12),
|
||||
child: Row(
|
||||
@@ -306,6 +305,7 @@ class _MobileMoviesTabState extends ConsumerState<MobileMoviesTab>
|
||||
child: ExcludeFocus(
|
||||
excluding: !_isSearchEditing,
|
||||
child: TextField(
|
||||
cursorColor: Colors.white, // Extra safety
|
||||
controller: _searchController,
|
||||
focusNode: _searchFocusNode,
|
||||
readOnly: !_isSearchEditing,
|
||||
@@ -314,6 +314,9 @@ class _MobileMoviesTabState extends ConsumerState<MobileMoviesTab>
|
||||
decoration: const InputDecoration(
|
||||
hintText: 'Rechercher un film...',
|
||||
border: InputBorder.none,
|
||||
focusedBorder: InputBorder
|
||||
.none, // Explicitly remove focus border
|
||||
enabledBorder: InputBorder.none,
|
||||
isDense: true,
|
||||
contentPadding: EdgeInsets.only(bottom: 11),
|
||||
),
|
||||
|
||||
@@ -259,6 +259,7 @@ class _MobileSeriesTabState extends ConsumerState<MobileSeriesTab>
|
||||
const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
|
||||
child: TVFocusable(
|
||||
scale: 1.0, // Disable scaling to prevent overflow
|
||||
focusColor: Colors.white, // Solid white selection frame
|
||||
onPressed: () {
|
||||
setState(() => _isSearchEditing = true);
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
@@ -271,9 +272,7 @@ class _MobileSeriesTabState extends ConsumerState<MobileSeriesTab>
|
||||
decoration: BoxDecoration(
|
||||
color: AppColors.surface,
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
border: _isSearchEditing
|
||||
? Border.all(color: AppColors.primary)
|
||||
: Border.all(color: AppColors.border),
|
||||
// Removed internal editing border here to prevent conflict and "inside frame" look
|
||||
),
|
||||
padding: const EdgeInsets.symmetric(horizontal: 12),
|
||||
child: Row(
|
||||
@@ -285,6 +284,7 @@ class _MobileSeriesTabState extends ConsumerState<MobileSeriesTab>
|
||||
child: ExcludeFocus(
|
||||
excluding: !_isSearchEditing,
|
||||
child: TextField(
|
||||
cursorColor: Colors.white, // Extra safety
|
||||
controller: _searchController,
|
||||
focusNode: _searchFocusNode,
|
||||
readOnly: !_isSearchEditing,
|
||||
@@ -293,6 +293,9 @@ class _MobileSeriesTabState extends ConsumerState<MobileSeriesTab>
|
||||
decoration: const InputDecoration(
|
||||
hintText: 'Rechercher une série...',
|
||||
border: InputBorder.none,
|
||||
focusedBorder: InputBorder
|
||||
.none, // Explicitly remove focus border
|
||||
enabledBorder: InputBorder.none,
|
||||
isDense: true,
|
||||
contentPadding: EdgeInsets.only(bottom: 11),
|
||||
),
|
||||
|
||||
Reference in new issue
Block a user