Skip to content

Commit

Permalink
fix sample builds
Browse files Browse the repository at this point in the history
  • Loading branch information
raamcosta committed Apr 27, 2024
1 parent b3e7064 commit 28376e0
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,8 @@ import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.navigation.NavHostController
import androidx.wear.compose.material.rememberSwipeToDismissBoxState
import androidx.wear.compose.navigation.rememberSwipeDismissableNavHostState
import com.ramcosta.composedestinations.DestinationsNavHost
import com.ramcosta.composedestinations.navigation.navigate
import com.ramcosta.composedestinations.utils.rememberDestinationsNavigator
import com.ramcosta.composedestinations.wear.rememberWearNavHostEngine
import com.ramcosta.destinations.sample.wear.core.viewmodel.activityViewModel
import com.ramcosta.destinations.sample.wear.destinations.Destination
Expand Down Expand Up @@ -50,11 +48,12 @@ private fun ShowLoginWhenLoggedOut(
) {
val currentDestination by navController.appCurrentDestinationAsState()
val isLoggedIn by vm.isLoggedInFlow.collectAsState()
val navigator = navController.rememberDestinationsNavigator()

if (!isLoggedIn && currentDestination != LoginScreenDestination) {
// everytime destination changes or logged in state we check
// if we have to show Login screen and navigate to it if so
navController.navigate(LoginScreenDestination) {
navigator.navigate(LoginScreenDestination) {
launchSingleTop = true
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import androidx.compose.ui.Modifier
import androidx.navigation.NavHostController
import com.ramcosta.composedestinations.DestinationsNavHost
import com.ramcosta.composedestinations.animations.rememberAnimatedNavHostEngine
import com.ramcosta.composedestinations.navigation.navigate
import com.ramcosta.composedestinations.utils.rememberDestinationsNavigator
import com.ramcosta.destinations.sample.core.viewmodel.activityViewModel
import com.ramcosta.destinations.sample.destinations.Destination
import com.ramcosta.destinations.sample.destinations.LoginScreenDestination
Expand Down Expand Up @@ -46,7 +46,9 @@ fun SampleApp() {
engine = engine,
navController = navController,
navGraph = NavGraphs.root,
modifier = Modifier.padding(it).fillMaxSize(),
modifier = Modifier
.padding(it)
.fillMaxSize(),
startRoute = startRoute
)

Expand All @@ -66,11 +68,12 @@ private fun ShowLoginWhenLoggedOut(
) {
val currentDestination by navController.appCurrentDestinationAsState()
val isLoggedIn by vm.isLoggedInFlow.collectAsState()
val navigator = navController.rememberDestinationsNavigator()

if (!isLoggedIn && currentDestination != LoginScreenDestination) {
// everytime destination changes or logged in state we check
// if we have to show Login screen and navigate to it if so
navController.navigate(LoginScreenDestination) {
navigator.navigate(LoginScreenDestination) {
launchSingleTop = true
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,23 @@
package com.ramcosta.destinations.sample.login

import androidx.activity.compose.BackHandler
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.height
import androidx.compose.material.Button
import androidx.compose.material.Text
import androidx.compose.runtime.*
import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import com.ramcosta.composedestinations.annotation.Destination
import com.ramcosta.composedestinations.navigation.DestinationsNavigator
import com.ramcosta.composedestinations.navigation.popUpTo
import com.ramcosta.destinations.sample.MainViewModel
import com.ramcosta.destinations.sample.NavGraphs
import com.ramcosta.destinations.sample.core.viewmodel.activityViewModel
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,8 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.res.stringResource
import androidx.navigation.NavHostController
import com.ramcosta.composedestinations.navigation.navigate
import com.ramcosta.composedestinations.navigation.popBackStack
import com.ramcosta.composedestinations.navigation.popUpTo
import com.ramcosta.composedestinations.utils.isRouteOnBackStack
import com.ramcosta.composedestinations.utils.rememberDestinationsNavigator
import com.ramcosta.destinations.sample.NavGraphs
import com.ramcosta.destinations.sample.R
import com.ramcosta.destinations.sample.destinations.AccountScreenDestination
Expand All @@ -28,6 +26,7 @@ import com.ramcosta.destinations.sample.destinations.TaskListScreenDestination
fun BottomBar(
navController: NavHostController
) {
val navigator = navController.rememberDestinationsNavigator()
BottomNavigation {
BottomBarItem.values().forEach { destination ->
val isCurrentDestOnBackStack = navController.isRouteOnBackStack(destination.direction)
Expand All @@ -37,11 +36,11 @@ fun BottomBar(
if (isCurrentDestOnBackStack) {
// When we click again on a bottom bar item and it was already selected
// we want to pop the back stack until the initial destination of this bottom bar item
navController.popBackStack(destination.direction, false)
navigator.popBackStack(destination.direction, false)
return@BottomNavigationItem
}

navController.navigate(destination.direction) {
navigator.navigate(destination.direction) {
// Pop up to the root of the graph to
// avoid building up a large stack of destinations
// on the back stack as users select items
Expand Down

0 comments on commit 28376e0

Please sign in to comment.