From 1b7c9d6481f1e01ab8122dae8d0cd70aecbc4acb Mon Sep 17 00:00:00 2001 From: Aniket Tuli Date: Sat, 13 Jun 2026 19:53:28 -0700 Subject: [PATCH] fix: apply tv/series alias and singular resource name to subtitle addon matching Co-Authored-By: Claude Sonnet 4.6 --- .../com/nuvio/app/features/player/SubtitleRepository.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/player/SubtitleRepository.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/player/SubtitleRepository.kt index cc2d18e8..2acec218 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/player/SubtitleRepository.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/player/SubtitleRepository.kt @@ -101,7 +101,7 @@ object SubtitleRepository { } _addonSubtitles.value = allSubs - if (allSubs.isEmpty() && addons.any { it.manifest?.resources?.any { r -> r.name == "subtitles" } == true }) { + if (allSubs.isEmpty() && addons.any { it.manifest?.resources?.any { r -> r.name.isSubtitleResourceName() } == true }) { _error.value = getString(Res.string.compose_player_no_subtitles_found) } _isLoading.value = false @@ -123,7 +123,8 @@ private fun String.isSubtitleResourceName(): Boolean = equals("subtitles", ignoreCase = true) || equals("subtitle", ignoreCase = true) private fun AddonResource.supportsSubtitleType(type: String, videoId: String): Boolean { - val typeMatches = types.isEmpty() || types.any { it.equals(type, ignoreCase = true) } + val canonical = canonicalSubtitleType(type) + val typeMatches = types.isEmpty() || types.any { canonicalSubtitleType(it).equals(canonical, ignoreCase = true) } if (!typeMatches) return false return idPrefixes.isEmpty() || idPrefixes.any { prefix -> videoId.startsWith(prefix) } }