fix: restore EPG display in live TV player and channel cards

- Fix EPG not showing in NativePlayerScreen by reusing the shared
  mobileXtreamServiceProvider (cache already populated by channel cards)
  instead of creating a fresh service instance per player session
- Add periodic EPG refresh timer (every 5 min) matching LitePlayerScreen
- Fix empty-title fallback in _buildEPGBox
- Force dark theme, invert default live TV player (NativePlayer default),
  remove next-program display from OSD
- Fix back button exit dialog firing from wrong tab (add tab index guards)
- Halve card grid count for Movies/Series (6 categories, 8 items)
- Revamp Movies/Series search bars to match Live TV aesthetic
- Fix first channel row clipping when entering a category (scroll-to-top)
- Fix playlist edit dialog TV remote navigation
- Fix empty playlist screen button readability
- Remove theme switcher from settings

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
MichaelandClaude Sonnet 4.6 committed 2026-03-29 10:04:47 +02:00
1 parent f07a6e91f9
commit 6bb0d73f38
8 files changed
+564 -350

No files matched your search

+2 -20
View File
@@ -41,26 +41,8 @@ class ThemeNotifier extends StateNotifier<ThemeState> {
_loadTheme();
}
/// Load saved theme preference from SharedPreferences
Future<void> _loadTheme() async {
try {
final prefs = await SharedPreferences.getInstance();
final savedMode = prefs.getString(_ThemeKeys.themeMode);
if (savedMode != null) {
final appMode = AppThemeMode.values.firstWhere(
(e) => e.name == savedMode,
orElse: () => AppThemeMode.dark,
);
state = state.copyWith(
appThemeMode: appMode,
themeMode: _mapToThemeMode(appMode),
);
}
} catch (e) {
debugPrint('Error loading theme: $e');
}
}
/// Theme is always forced to dark — no loading from preferences
Future<void> _loadTheme() async {}
/// Set theme mode and persist to SharedPreferences
Future<void> setThemeMode(AppThemeMode mode) async {