From 0ce89650c23dbde9c86f19481813d8042245f1d8 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Sat, 9 May 2026 00:28:36 +0530 Subject: [PATCH] fix: stripping off parameters after manifest.json --- composeApp/src/commonMain/kotlin/com/nuvio/app/App.kt | 5 +++++ .../com/nuvio/app/features/addons/AddonTransportUrls.kt | 8 ++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/App.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/App.kt index 3eebbdac..1d605c3c 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/App.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/App.kt @@ -512,6 +512,7 @@ private fun MainAppContent( val hapticFeedback = LocalHapticFeedback.current val coroutineScope = rememberCoroutineScope() var selectedTab by rememberSaveable { mutableStateOf(AppScreenTab.Home) } + val currentBackStackEntry by navController.currentBackStackEntryAsState() val nativeRequestedTab by remember { NativeTabBridge.requestedTab }.collectAsStateWithLifecycle() val liquidGlassNativeTabBarEnabled by remember { ThemeSettingsRepository.liquidGlassNativeTabBarEnabled @@ -975,6 +976,7 @@ private fun MainAppContent( val isTabletLayout = maxWidth >= 768.dp val useNativeBottomTabs = liquidGlassNativeTabBarSupported && liquidGlassNativeTabBarEnabled && initialHomeReady + val tabsRouteActive = currentBackStackEntry?.destination?.hasRoute() == true val onProfileSelected: (NuvioProfile) -> Unit = { profile -> profileSwitchLoading = true selectedTab = AppScreenTab.Home @@ -1033,6 +1035,7 @@ private fun MainAppContent( .fillMaxSize() .padding(innerPadding), selectedTab = selectedTab, + animateHomeCollectionGifs = tabsRouteActive, onCatalogClick = onCatalogClick, onPosterClick = { meta -> navController.navigate(DetailRoute(type = meta.type, id = meta.id)) @@ -1952,6 +1955,7 @@ private fun rememberGuardedPopBackStack( private fun AppTabHost( selectedTab: AppScreenTab, modifier: Modifier = Modifier, + animateHomeCollectionGifs: Boolean = true, onCatalogClick: ((HomeCatalogSection) -> Unit)? = null, onPosterClick: ((MetaPreview) -> Unit)? = null, onPosterLongClick: ((MetaPreview) -> Unit)? = null, @@ -1981,6 +1985,7 @@ private fun AppTabHost( AppScreenTab.Home -> { HomeScreen( modifier = Modifier.fillMaxSize(), + animateCollectionGifs = animateHomeCollectionGifs, onCatalogClick = onCatalogClick, onPosterClick = onPosterClick, onPosterLongClick = onPosterLongClick, diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/addons/AddonTransportUrls.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/addons/AddonTransportUrls.kt index 47b852fe..80f913cb 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/addons/AddonTransportUrls.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/addons/AddonTransportUrls.kt @@ -12,11 +12,15 @@ internal fun buildAddonResourceUrl( ): String { val encodedId = id.encodeAddonPathSegment() val baseUrl = addonTransportBaseUrl(manifestUrl) - return if (extraPathSegment.isNullOrEmpty()) { + val query = manifestUrl.substringAfter("?", "").let { query -> + if (query.isBlank()) "" else "?$query" + } + val resourceUrl = if (extraPathSegment.isNullOrEmpty()) { "$baseUrl/$resource/$type/$encodedId.json" } else { "$baseUrl/$resource/$type/$encodedId/$extraPathSegment.json" } + return resourceUrl + query } @@ -43,4 +47,4 @@ internal fun String.encodeAddonPathSegment(): String = } } -private const val ADDON_URL_HEX = "0123456789ABCDEF" \ No newline at end of file +private const val ADDON_URL_HEX = "0123456789ABCDEF"