diff --git a/app/src/main/kotlin/com/arflix/tv/data/repository/StreamRepository.kt b/app/src/main/kotlin/com/arflix/tv/data/repository/StreamRepository.kt index 35a63284..390d631c 100644 --- a/app/src/main/kotlin/com/arflix/tv/data/repository/StreamRepository.kt +++ b/app/src/main/kotlin/com/arflix/tv/data/repository/StreamRepository.kt @@ -1361,6 +1361,10 @@ class StreamRepository @Inject constructor( private fun idMatchesAnyPrefix(id: String, prefixes: List?): Boolean { if (prefixes.isNullOrEmpty()) return true + val isStandardId = id.startsWith("tt", ignoreCase = true) || + id.startsWith("tmdb:", ignoreCase = true) || + id.startsWith("imdb:", ignoreCase = true) + if (isStandardId) return true return prefixes.any { prefix -> val normalizedPrefix = prefix.trim() normalizedPrefix.isBlank() || diff --git a/app/src/test/kotlin/com/arflix/tv/data/repository/StreamEpisodeRequestPlannerTest.kt b/app/src/test/kotlin/com/arflix/tv/data/repository/StreamEpisodeRequestPlannerTest.kt index 4b3d8b97..5ae30b12 100644 --- a/app/src/test/kotlin/com/arflix/tv/data/repository/StreamEpisodeRequestPlannerTest.kt +++ b/app/src/test/kotlin/com/arflix/tv/data/repository/StreamEpisodeRequestPlannerTest.kt @@ -126,4 +126,17 @@ class StreamEpisodeRequestPlannerTest { assertEquals(false, shouldFallback) } + + @Test + fun `buildEpisodeIdCandidates produces valid candidates for tmdb and imdb ids`() { + val candidates = buildEpisodeIdCandidates( + seriesId = "tmdb:82928:1:1", + animeQuery = null, + tmdbEpisodeId = null, + preferNativeAnimeIds = false + ) + + assertEquals(listOf("tmdb:82928:1:1"), candidates.map { it.contentId }) + assertEquals(listOf("imdb"), candidates.map { it.label }) + } }