From 96066c1db7b14af7bc8f433b47bffa0f1bc49207 Mon Sep 17 00:00:00 2001 From: Himanth Reddy Date: Thu, 6 Aug 2026 15:51:34 +0530 Subject: [PATCH] fix(stream): allow standard playback IDs for installed external Stremio addons (#139) --- .../arflix/tv/data/repository/StreamRepository.kt | 4 ++++ .../repository/StreamEpisodeRequestPlannerTest.kt | 13 +++++++++++++ 2 files changed, 17 insertions(+) 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 35a632844..390d631ce 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 4b3d8b970..5ae30b128 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 }) + } }