123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- package com.vpn.fastestvpnservice.navigation
- import androidx.activity.ComponentActivity
- import androidx.compose.animation.AnimatedContentTransitionScope
- import androidx.compose.animation.EnterTransition
- import androidx.compose.animation.ExitTransition
- import androidx.compose.animation.core.tween
- import androidx.compose.animation.fadeIn
- import androidx.compose.animation.fadeOut
- import androidx.compose.material.Surface
- import androidx.compose.runtime.Composable
- import androidx.navigation.NavBackStackEntry
- import androidx.navigation.NavHostController
- import androidx.navigation.compose.NavHost
- import androidx.navigation.compose.composable
- import com.vpn.fastestvpnservice.fragments.BlankFragment
- import com.vpn.fastestvpnservice.screens.Login
- import com.vpn.fastestvpnservice.screens.ServerList
- import com.vpn.fastestvpnservice.screens.accountScreensAll.ChangePassword
- import com.vpn.fastestvpnservice.screens.accountScreensAll.FavoriteServers
- import com.vpn.fastestvpnservice.screens.accountScreensAll.SubscriptionScreen
- import com.vpn.fastestvpnservice.screens.bottomNavBarScreens.Account
- import com.vpn.fastestvpnservice.screens.bottomNavBarScreens.Help
- import com.vpn.fastestvpnservice.screens.bottomNavBarScreens.Home
- import com.vpn.fastestvpnservice.screens.bottomNavBarScreens.Settings
- import com.vpn.fastestvpnservice.screens.helpScreensAll.About
- import com.vpn.fastestvpnservice.screens.helpScreensAll.CustomerSupport
- import com.vpn.fastestvpnservice.screens.helpScreensAll.FAQ
- import com.vpn.fastestvpnservice.screens.helpScreensAll.PrivacyPolicy
- import com.vpn.fastestvpnservice.screens.helpScreensAll.TermsAndConditions
- import com.vpn.fastestvpnservice.screens.settingsScreenAll.Notifications
- import com.vpn.fastestvpnservice.screens.settingsScreenAll.SplitTunneling
- import com.vpn.fastestvpnservice.sealedClass.BottomBarScreen
- import com.vpn.fastestvpnservice.sealedClass.Screen
- @Composable
- fun BottomBarNavGraph(navHostController: NavHostController,
- settingsNavHostController: NavHostController,
- activity: ComponentActivity
- ) {
- val noEnterTransition : AnimatedContentTransitionScope<NavBackStackEntry>.() -> EnterTransition = {
- fadeIn(
- animationSpec = tween(durationMillis = 0),
- initialAlpha = 1f
- )
- }
- val noExitTransition : AnimatedContentTransitionScope<NavBackStackEntry>.() -> ExitTransition = {
- fadeOut(
- animationSpec = tween(durationMillis = 0),
- targetAlpha = 1f
- )
- }
- NavHost(
- navController = navHostController,
- startDestination = BottomBarScreen.Home.route,
- enterTransition = noEnterTransition,
- exitTransition = noExitTransition
- ) {
- composable(route = BottomBarScreen.Home.route) {
- Home(navHostController = navHostController, activity, settingsNavHostController)
- }
- composable(route = BottomBarScreen.Settings.route) {
- Settings(navHostController = navHostController)
- }
- composable(route = BottomBarScreen.Help.route) { entry ->
- Help(navHostController = navHostController)
- }
- composable(route = BottomBarScreen.Account.route) {
- Account(navHostController = navHostController,
- settingsNavHostController = settingsNavHostController)
- }
- composable(route = Screen.FAQ.route) {
- FAQ(navHostController = navHostController)
- }
- composable(route = Screen.PrivacyPolicy.route) {
- PrivacyPolicy(navHostController = navHostController)
- }
- composable(route = Screen.TermsAndConditions.route) {
- TermsAndConditions(navHostController = navHostController, false)
- }
- composable(route = Screen.About.route) {
- About(navHostController = navHostController)
- }
- composable(route = Screen.ChangePassword.route) {
- ChangePassword(navHostController = navHostController)
- }
- composable(route = Screen.ServerList.route) {
- ServerList(navHostController = navHostController, false)
- }
- composable(route = Screen.Notifications.route) {
- Notifications(navHostController = navHostController)
- }
- composable(route = Screen.SplitTunneling.route) {
- SplitTunneling(navHostController = navHostController)
- }
- composable(route = Screen.FavoriteServers.route) {
- FavoriteServers(navHostController = navHostController)
- }
- composable(route = Screen.Subscription.route) {
- // SubscriptionScreenFragment(navHostController = navHostController)
- SubscriptionScreen(navHostController, activity)
- }
- composable(route = Screen.CustomerSupport.route) {
- CustomerSupport(navHostController = navHostController)
- }
- /* Again declare for login because of different -> navHostController */
- // composable(route = Screen.Login.route) {
- // Login(navHostController = navHostController)
- // }
- }
- }
|