From 8d0599bb24abd3ee0025a3d2f23c8732ac405740 Mon Sep 17 00:00:00 2001 From: urFate Date: Fri, 17 Jan 2025 17:30:10 +0300 Subject: [PATCH] fix(player): new episode duplication --- .../org/shirabox/app/ui/activity/player/PlayerViewModel.kt | 1 + data/src/main/java/org/shirabox/data/EpisodesHelper.kt | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/app/src/main/java/org/shirabox/app/ui/activity/player/PlayerViewModel.kt b/app/src/main/java/org/shirabox/app/ui/activity/player/PlayerViewModel.kt index 8a92f5a..76e1b09 100644 --- a/app/src/main/java/org/shirabox/app/ui/activity/player/PlayerViewModel.kt +++ b/app/src/main/java/org/shirabox/app/ui/activity/player/PlayerViewModel.kt @@ -82,6 +82,7 @@ class PlayerViewModel @AssistedInject constructor( content = Util.mapEntityToContent(content), contentUid = content.uid, cachedEpisodes = cachedEpisodes, + team = team, range = cachedEpisodes.last().episode.inc()..Int.MAX_VALUE ) } diff --git a/data/src/main/java/org/shirabox/data/EpisodesHelper.kt b/data/src/main/java/org/shirabox/data/EpisodesHelper.kt index 06d2280..fac9261 100644 --- a/data/src/main/java/org/shirabox/data/EpisodesHelper.kt +++ b/data/src/main/java/org/shirabox/data/EpisodesHelper.kt @@ -4,6 +4,7 @@ import kotlinx.coroutines.flow.catch import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.flow.emitAll import kotlinx.coroutines.flow.emptyFlow +import kotlinx.coroutines.flow.map import org.shirabox.core.db.AppDatabase import org.shirabox.core.entity.EpisodeEntity import org.shirabox.core.model.Content @@ -28,12 +29,15 @@ class EpisodesHelper(private val db: AppDatabase) { repository: AbstractContentRepository, content: Content, contentUid: Long, + team: String? = null, cachedEpisodes: List, range: IntRange ) { repository.searchEpisodesInRange(content, range).catch { it.printStackTrace() emitAll(emptyFlow()) + }.map { results -> + results.filter { episode -> team?.let { episode.actingTeamName == it } == true } }.collectLatest { cacheEpisodes(it, cachedEpisodes, contentUid) }