feat: Introduce LitePlayerScreen for IPTV playback, including stream type definitions and mobile settings providers.

This commit is contained in:
Michael committed 2025-12-20 22:53:14 +01:00
1 parent b60efd6acb
commit af95742321
3 files changed
+163 -24

No files matched your search

@@ -353,3 +353,38 @@ final mobileFavoritesProvider =
StateNotifierProvider<MobileFavoritesNotifier, Set<String>>((ref) {
return MobileFavoritesNotifier();
});
/// Per-channel deinterlace settings (stored locally)
class DeinterlaceSettingsNotifier extends StateNotifier<Set<String>> {
static const String _boxName = 'deinterlace_settings';
Box? _box;
DeinterlaceSettingsNotifier() : super({}) {
_init();
}
Future<void> _init() async {
_box = await Hive.openBox(_boxName);
final settings =
_box?.get('deinterlace_on', defaultValue: <String>[]) as List?;
state = settings?.cast<String>().toSet() ?? {};
}
void toggle(String streamId) {
final updated = {...state};
if (updated.contains(streamId)) {
updated.remove(streamId);
} else {
updated.add(streamId);
}
state = updated;
_box?.put('deinterlace_on', updated.toList());
}
bool isEnabled(String streamId) => state.contains(streamId);
}
final deinterlaceSettingsProvider =
StateNotifierProvider<DeinterlaceSettingsNotifier, Set<String>>((ref) {
return DeinterlaceSettingsNotifier();
});