mirror of
https://github.com/R0m1k3/xtremflow.git
synced 2026-10-11 17:30:00 +02:00
feat: introduce IPTV settings management with a dedicated mobile tab, providers, and service.
This commit is contained in:
1 parent
7ea12511a0
commit
7eb483fc07
5 files changed
+92
-13
No files matched your search
@@ -17,7 +17,8 @@ class MobileSettingsTab extends ConsumerStatefulWidget {
|
||||
class _MobileSettingsTabState extends ConsumerState<MobileSettingsTab> {
|
||||
late TextEditingController _liveTvController;
|
||||
late TextEditingController _moviesController;
|
||||
late TextEditingController _seriesController;
|
||||
late final TextEditingController _seriesController;
|
||||
late final TextEditingController _backendUrlController;
|
||||
bool _initialized = false;
|
||||
|
||||
@override
|
||||
@@ -26,6 +27,7 @@ class _MobileSettingsTabState extends ConsumerState<MobileSettingsTab> {
|
||||
_liveTvController = TextEditingController();
|
||||
_moviesController = TextEditingController();
|
||||
_seriesController = TextEditingController();
|
||||
_backendUrlController = TextEditingController();
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -33,6 +35,7 @@ class _MobileSettingsTabState extends ConsumerState<MobileSettingsTab> {
|
||||
_liveTvController.dispose();
|
||||
_moviesController.dispose();
|
||||
_seriesController.dispose();
|
||||
_backendUrlController.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@@ -49,6 +52,9 @@ class _MobileSettingsTabState extends ConsumerState<MobileSettingsTab> {
|
||||
_seriesController.text != settings.seriesCategoryFilter) {
|
||||
_seriesController.text = settings.seriesCategoryFilter;
|
||||
}
|
||||
if (!_initialized || _backendUrlController.text != settings.backendUrl) {
|
||||
_backendUrlController.text = settings.backendUrl;
|
||||
}
|
||||
_initialized = true;
|
||||
}
|
||||
|
||||
@@ -273,6 +279,40 @@ class _MobileSettingsTabState extends ConsumerState<MobileSettingsTab> {
|
||||
),
|
||||
const SizedBox(height: 24),
|
||||
|
||||
const _SectionHeader(title: 'Server Settings'),
|
||||
Container(
|
||||
decoration: BoxDecoration(
|
||||
color: AppColors.surface,
|
||||
borderRadius: BorderRadius.circular(16),
|
||||
),
|
||||
padding: const EdgeInsets.all(16),
|
||||
child: Column(
|
||||
children: [
|
||||
_FilterInput(
|
||||
label: 'Backend URL Override',
|
||||
icon: Icons.lan,
|
||||
controller: _backendUrlController,
|
||||
onChanged: (val) => ref
|
||||
.read(iptvSettingsProvider.notifier)
|
||||
.setBackendUrl(val),
|
||||
),
|
||||
if (settings.backendUrl.isEmpty)
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: 8, left: 32),
|
||||
child: Text(
|
||||
'Currently using: ${Uri.base.origin}',
|
||||
style: const TextStyle(
|
||||
fontSize: 10,
|
||||
color: AppColors.textSecondary,
|
||||
fontStyle: FontStyle.italic,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 24),
|
||||
|
||||
// Content Filters
|
||||
const _SectionHeader(title: 'Content Filters'),
|
||||
Container(
|
||||
|
||||
Reference in new issue
Block a user