mirror of
https://github.com/tapframe/NuvioStreaming.git
synced 2026-05-17 07:21:58 +00:00
ref(ios): implement native tab visibily change
This commit is contained in:
parent
96c04c86e8
commit
eee6d1a2a8
1 changed files with 28 additions and 7 deletions
|
|
@ -61,6 +61,8 @@ import androidx.lifecycle.Lifecycle
|
|||
import androidx.lifecycle.LifecycleEventObserver
|
||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import androidx.navigation.NavBackStackEntry
|
||||
import androidx.navigation.NavController
|
||||
import androidx.navigation.NavDestination.Companion.hasRoute
|
||||
import androidx.navigation.NavHostController
|
||||
import androidx.navigation.compose.NavHost
|
||||
import androidx.navigation.compose.composable
|
||||
|
|
@ -576,6 +578,32 @@ private fun MainAppContent(
|
|||
NativeTabBridge.publishSelectedTab(selectedTab.toNativeNavigationTab())
|
||||
}
|
||||
|
||||
DisposableEffect(
|
||||
navController,
|
||||
liquidGlassNativeTabBarSupported,
|
||||
liquidGlassNativeTabBarEnabled,
|
||||
initialHomeReady,
|
||||
) {
|
||||
fun publishNativeTabVisibilityForCurrentRoute() {
|
||||
val visible = liquidGlassNativeTabBarSupported &&
|
||||
liquidGlassNativeTabBarEnabled &&
|
||||
initialHomeReady &&
|
||||
navController.currentDestination?.hasRoute<TabsRoute>() == true
|
||||
NativeTabBridge.publishTabBarVisible(visible)
|
||||
}
|
||||
|
||||
val destinationChangedListener = NavController.OnDestinationChangedListener { _, _, _ ->
|
||||
publishNativeTabVisibilityForCurrentRoute()
|
||||
}
|
||||
|
||||
publishNativeTabVisibilityForCurrentRoute()
|
||||
navController.addOnDestinationChangedListener(destinationChangedListener)
|
||||
onDispose {
|
||||
navController.removeOnDestinationChangedListener(destinationChangedListener)
|
||||
NativeTabBridge.publishTabBarVisible(false)
|
||||
}
|
||||
}
|
||||
|
||||
LaunchedEffect(Unit) {
|
||||
NetworkStatusRepository.ensureStarted()
|
||||
EpisodeReleaseNotificationsRepository.refreshAsync()
|
||||
|
|
@ -956,13 +984,6 @@ private fun MainAppContent(
|
|||
com.nuvio.app.core.sync.SyncManager.pullAllForProfile(profile.profileIndex)
|
||||
}
|
||||
|
||||
DisposableEffect(useNativeBottomTabs) {
|
||||
NativeTabBridge.publishTabBarVisible(useNativeBottomTabs)
|
||||
onDispose {
|
||||
NativeTabBridge.publishTabBarVisible(false)
|
||||
}
|
||||
}
|
||||
|
||||
Scaffold(
|
||||
modifier = Modifier
|
||||
.fillMaxSize()
|
||||
|
|
|
|||
Loading…
Reference in a new issue