Show bottom-bar only when current-destination is TopLevel.

pull/27/head
Kasem SM 3 years ago
parent ef42543b32
commit a39005c36f

@ -22,6 +22,7 @@ import androidx.compose.material.icons.filled.Upcoming
import androidx.compose.material.icons.outlined.Grid3x3 import androidx.compose.material.icons.outlined.Grid3x3
import androidx.compose.material.icons.outlined.Upcoming import androidx.compose.material.icons.outlined.Upcoming
import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.graphics.vector.ImageVector
import androidx.navigation.NavDestination
import androidx.navigation.NavGraph.Companion.findStartDestination import androidx.navigation.NavGraph.Companion.findStartDestination
import androidx.navigation.NavHostController import androidx.navigation.NavHostController
import com.google.samples.apps.nowinandroid.feature.foryou.R.string.for_you import com.google.samples.apps.nowinandroid.feature.foryou.R.string.for_you
@ -78,3 +79,15 @@ val TOP_LEVEL_DESTINATIONS = listOf(
iconTextId = interests iconTextId = interests
) )
) )
/**
* @return true when the current destination is
* top level destination else false.
*/
fun NavDestination?.isTopLevelDestination(): Boolean {
return when (this?.route) {
ForYouDestination.route -> true
InterestsDestination.route -> true
else -> false
}
}

@ -59,6 +59,7 @@ import com.google.samples.apps.nowinandroid.navigation.NiaNavHost
import com.google.samples.apps.nowinandroid.navigation.NiaTopLevelNavigation import com.google.samples.apps.nowinandroid.navigation.NiaTopLevelNavigation
import com.google.samples.apps.nowinandroid.navigation.TOP_LEVEL_DESTINATIONS import com.google.samples.apps.nowinandroid.navigation.TOP_LEVEL_DESTINATIONS
import com.google.samples.apps.nowinandroid.navigation.TopLevelDestination import com.google.samples.apps.nowinandroid.navigation.TopLevelDestination
import com.google.samples.apps.nowinandroid.navigation.isTopLevelDestination
@OptIn(ExperimentalMaterial3Api::class, ExperimentalLayoutApi::class) @OptIn(ExperimentalMaterial3Api::class, ExperimentalLayoutApi::class)
@Composable @Composable
@ -79,12 +80,14 @@ fun NiaApp(windowSizeClass: WindowSizeClass) {
contentColor = MaterialTheme.colorScheme.onBackground, contentColor = MaterialTheme.colorScheme.onBackground,
bottomBar = { bottomBar = {
if (windowSizeClass.widthSizeClass == WindowWidthSizeClass.Compact) { if (windowSizeClass.widthSizeClass == WindowWidthSizeClass.Compact) {
if (currentDestination.isTopLevelDestination()) {
NiABottomBar( NiABottomBar(
onNavigateToTopLevelDestination = niaTopLevelNavigation::navigateTo, onNavigateToTopLevelDestination = niaTopLevelNavigation::navigateTo,
currentDestination = currentDestination currentDestination = currentDestination
) )
} }
} }
}
) { padding -> ) { padding ->
Row( Row(
Modifier Modifier

Loading…
Cancel
Save