mirror of
https://github.com/tapframe/NuvioStreaming.git
synced 2026-05-17 15:32:01 +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.LifecycleEventObserver
|
||||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||||
import androidx.navigation.NavBackStackEntry
|
import androidx.navigation.NavBackStackEntry
|
||||||
|
import androidx.navigation.NavController
|
||||||
|
import androidx.navigation.NavDestination.Companion.hasRoute
|
||||||
import androidx.navigation.NavHostController
|
import androidx.navigation.NavHostController
|
||||||
import androidx.navigation.compose.NavHost
|
import androidx.navigation.compose.NavHost
|
||||||
import androidx.navigation.compose.composable
|
import androidx.navigation.compose.composable
|
||||||
|
|
@ -576,6 +578,32 @@ private fun MainAppContent(
|
||||||
NativeTabBridge.publishSelectedTab(selectedTab.toNativeNavigationTab())
|
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) {
|
LaunchedEffect(Unit) {
|
||||||
NetworkStatusRepository.ensureStarted()
|
NetworkStatusRepository.ensureStarted()
|
||||||
EpisodeReleaseNotificationsRepository.refreshAsync()
|
EpisodeReleaseNotificationsRepository.refreshAsync()
|
||||||
|
|
@ -956,13 +984,6 @@ private fun MainAppContent(
|
||||||
com.nuvio.app.core.sync.SyncManager.pullAllForProfile(profile.profileIndex)
|
com.nuvio.app.core.sync.SyncManager.pullAllForProfile(profile.profileIndex)
|
||||||
}
|
}
|
||||||
|
|
||||||
DisposableEffect(useNativeBottomTabs) {
|
|
||||||
NativeTabBridge.publishTabBarVisible(useNativeBottomTabs)
|
|
||||||
onDispose {
|
|
||||||
NativeTabBridge.publishTabBarVisible(false)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Scaffold(
|
Scaffold(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.fillMaxSize()
|
.fillMaxSize()
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue