mirror of
https://github.com/R0m1k3/xtremobile.git
synced 2026-10-23 23:28:15 +02:00
feat: Introduce LitePlayerScreen for IPTV playback, including stream type definitions and mobile settings providers.
This commit is contained in:
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();
|
||||
});
|
||||
Reference in new issue
Block a user