From 40588e0ed61b0729326ad73c9c5ee51b2db1e43f Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Fri, 24 Apr 2026 02:03:23 +0530 Subject: [PATCH] feat: auto fetchfetch addon subtitles Co-authored-by: Copilot --- .../nuvio/app/features/player/PlayerScreen.kt | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) 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 }, )