diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/player/PlayerScreen.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/player/PlayerScreen.kt index 5376fc00..196b81f6 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/player/PlayerScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/player/PlayerScreen.kt @@ -1036,6 +1036,12 @@ fun PlayerScreen( controlsVisible = false } + fun fetchAddonSubtitlesForActiveItem() { + val type = contentType ?: return + val videoId = activeVideoId ?: return + SubtitleRepository.fetchAddonSubtitles(type, videoId) + } + LaunchedEffect(activeSourceUrl, activeSourceAudioUrl, activeSourceHeaders, activeSourceResponseHeaders) { errorMessage = null playerController = null @@ -1066,6 +1072,13 @@ fun PlayerScreen( playerController?.applySubtitleStyle(subtitleStyle) } + LaunchedEffect(showSubtitleModal, activeSubtitleTab, contentType, activeVideoId) { + if (!showSubtitleModal || activeSubtitleTab != SubtitleTab.Addons) return@LaunchedEffect + if (!isLoadingAddonSubtitles && addonSubtitles.isEmpty()) { + fetchAddonSubtitlesForActiveItem() + } + } + LaunchedEffect(playbackSnapshot.isLoading, playerController) { if (!playbackSnapshot.isLoading && playerController != null) { refreshTracks() @@ -1709,11 +1722,7 @@ fun PlayerScreen( useCustomSubtitles = true playerController?.setSubtitleUri(addon.url) }, - onFetchAddonSubtitles = { - if (contentType != null && activeVideoId != null) { - SubtitleRepository.fetchAddonSubtitles(contentType, activeVideoId!!) - } - }, + onFetchAddonSubtitles = ::fetchAddonSubtitlesForActiveItem, onStyleChanged = PlayerSettingsRepository::setSubtitleStyle, onDismiss = { showSubtitleModal = false }, )