feat: Implement Xtream IPTV integration including providers, a dedicated player screen, EPG overlay, and live TV channel browsing.

This commit is contained in:
Michael committed 2025-12-06 09:45:22 +01:00
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);
});