|
|
@ -31,7 +31,6 @@ import androidx.compose.material3.ExperimentalMaterial3Api
|
|
|
|
import androidx.compose.material3.Icon
|
|
|
|
import androidx.compose.material3.Icon
|
|
|
|
import androidx.compose.material3.MaterialTheme
|
|
|
|
import androidx.compose.material3.MaterialTheme
|
|
|
|
import androidx.compose.material3.Scaffold
|
|
|
|
import androidx.compose.material3.Scaffold
|
|
|
|
import androidx.compose.material3.Surface
|
|
|
|
|
|
|
|
import androidx.compose.material3.Text
|
|
|
|
import androidx.compose.material3.Text
|
|
|
|
import androidx.compose.material3.windowsizeclass.WindowSizeClass
|
|
|
|
import androidx.compose.material3.windowsizeclass.WindowSizeClass
|
|
|
|
import androidx.compose.runtime.Composable
|
|
|
|
import androidx.compose.runtime.Composable
|
|
|
@ -45,6 +44,7 @@ import androidx.compose.ui.semantics.testTagsAsResourceId
|
|
|
|
import androidx.navigation.NavDestination
|
|
|
|
import androidx.navigation.NavDestination
|
|
|
|
import androidx.navigation.NavDestination.Companion.hierarchy
|
|
|
|
import androidx.navigation.NavDestination.Companion.hierarchy
|
|
|
|
import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaBackground
|
|
|
|
import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaBackground
|
|
|
|
|
|
|
|
import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaGradientBackground
|
|
|
|
import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaNavigationBar
|
|
|
|
import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaNavigationBar
|
|
|
|
import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaNavigationBarItem
|
|
|
|
import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaNavigationBarItem
|
|
|
|
import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaNavigationRail
|
|
|
|
import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaNavigationRail
|
|
|
@ -52,6 +52,7 @@ import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaNavig
|
|
|
|
import com.google.samples.apps.nowinandroid.core.designsystem.icon.Icon.DrawableResourceIcon
|
|
|
|
import com.google.samples.apps.nowinandroid.core.designsystem.icon.Icon.DrawableResourceIcon
|
|
|
|
import com.google.samples.apps.nowinandroid.core.designsystem.icon.Icon.ImageVectorIcon
|
|
|
|
import com.google.samples.apps.nowinandroid.core.designsystem.icon.Icon.ImageVectorIcon
|
|
|
|
import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme
|
|
|
|
import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme
|
|
|
|
|
|
|
|
import com.google.samples.apps.nowinandroid.feature.foryou.navigation.ForYouDestination
|
|
|
|
import com.google.samples.apps.nowinandroid.navigation.NiaNavHost
|
|
|
|
import com.google.samples.apps.nowinandroid.navigation.NiaNavHost
|
|
|
|
import com.google.samples.apps.nowinandroid.navigation.TopLevelDestination
|
|
|
|
import com.google.samples.apps.nowinandroid.navigation.TopLevelDestination
|
|
|
|
|
|
|
|
|
|
|
@ -66,13 +67,20 @@ fun NiaApp(
|
|
|
|
appState: NiaAppState = rememberNiaAppState(windowSizeClass)
|
|
|
|
appState: NiaAppState = rememberNiaAppState(windowSizeClass)
|
|
|
|
) {
|
|
|
|
) {
|
|
|
|
NiaTheme {
|
|
|
|
NiaTheme {
|
|
|
|
NiaBackground {
|
|
|
|
val background: @Composable (@Composable () -> Unit) -> Unit =
|
|
|
|
|
|
|
|
when (appState.currentDestination?.route) {
|
|
|
|
|
|
|
|
ForYouDestination.route -> { content -> NiaGradientBackground(content = content) }
|
|
|
|
|
|
|
|
else -> { content -> NiaBackground(content = content) }
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
background {
|
|
|
|
Scaffold(
|
|
|
|
Scaffold(
|
|
|
|
modifier = Modifier.semantics {
|
|
|
|
modifier = Modifier.semantics {
|
|
|
|
testTagsAsResourceId = true
|
|
|
|
testTagsAsResourceId = true
|
|
|
|
},
|
|
|
|
},
|
|
|
|
containerColor = Color.Transparent,
|
|
|
|
containerColor = Color.Transparent,
|
|
|
|
contentColor = MaterialTheme.colorScheme.onBackground,
|
|
|
|
contentColor = MaterialTheme.colorScheme.onBackground,
|
|
|
|
|
|
|
|
contentWindowInsets = WindowInsets(0, 0, 0, 0),
|
|
|
|
bottomBar = {
|
|
|
|
bottomBar = {
|
|
|
|
if (appState.shouldShowBottomBar) {
|
|
|
|
if (appState.shouldShowBottomBar) {
|
|
|
|
NiaBottomBar(
|
|
|
|
NiaBottomBar(
|
|
|
@ -158,16 +166,7 @@ private fun NiaBottomBar(
|
|
|
|
onNavigateToDestination: (TopLevelDestination) -> Unit,
|
|
|
|
onNavigateToDestination: (TopLevelDestination) -> Unit,
|
|
|
|
currentDestination: NavDestination?
|
|
|
|
currentDestination: NavDestination?
|
|
|
|
) {
|
|
|
|
) {
|
|
|
|
// Wrap the navigation bar in a surface so the color behind the system
|
|
|
|
NiaNavigationBar {
|
|
|
|
// navigation is equal to the container color of the navigation bar.
|
|
|
|
|
|
|
|
Surface(color = MaterialTheme.colorScheme.surface) {
|
|
|
|
|
|
|
|
NiaNavigationBar(
|
|
|
|
|
|
|
|
modifier = Modifier.windowInsetsPadding(
|
|
|
|
|
|
|
|
WindowInsets.safeDrawing.only(
|
|
|
|
|
|
|
|
WindowInsetsSides.Horizontal + WindowInsetsSides.Bottom
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
) {
|
|
|
|
|
|
|
|
destinations.forEach { destination ->
|
|
|
|
destinations.forEach { destination ->
|
|
|
|
val selected =
|
|
|
|
val selected =
|
|
|
|
currentDestination?.hierarchy?.any { it.route == destination.route } == true
|
|
|
|
currentDestination?.hierarchy?.any { it.route == destination.route } == true
|
|
|
@ -195,5 +194,4 @@ private fun NiaBottomBar(
|
|
|
|
)
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|