mirror of
https://github.com/R0m1k3/xtremflow.git
synced 2026-10-19 05:06:21 +02:00
feat: Implement Xtream IPTV integration including providers, a dedicated player screen, EPG overlay, and live TV channel browsing.
This commit is contained in:
1 parent
210b6a81ca
commit
e5eca6ebac
4 files changed
+40
-3
No files matched your search
@@ -61,3 +61,28 @@ final epgProvider = FutureProvider.family.autoDispose((ref, String streamId) asy
|
||||
final service = ref.watch(activeXtreamServiceProvider);
|
||||
return await service.getShortEpg(streamId);
|
||||
});
|
||||
|
||||
/// EPG request key for family provider (combines playlist and streamId)
|
||||
class EpgRequestKey {
|
||||
final PlaylistConfig playlist;
|
||||
final String streamId;
|
||||
|
||||
const EpgRequestKey({required this.playlist, required this.streamId});
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is EpgRequestKey &&
|
||||
runtimeType == other.runtimeType &&
|
||||
playlist == other.playlist &&
|
||||
streamId == other.streamId;
|
||||
|
||||
@override
|
||||
int get hashCode => playlist.hashCode ^ streamId.hashCode;
|
||||
}
|
||||
|
||||
/// Provider for EPG with playlist context
|
||||
final epgByPlaylistProvider = FutureProvider.family.autoDispose((ref, EpgRequestKey key) async {
|
||||
final service = ref.watch(xtreamServiceProvider(key.playlist));
|
||||
return await service.getShortEpg(key.streamId);
|
||||
});
|
||||
Reference in new issue
Block a user