@@ -31,7 +31,6 @@ import androidx.compose.material3.ExperimentalMaterial3Api
3131import androidx.compose.material3.Icon
3232import androidx.compose.material3.MaterialTheme
3333import androidx.compose.material3.Scaffold
34- import androidx.compose.material3.Surface
3534import androidx.compose.material3.Text
3635import androidx.compose.material3.windowsizeclass.WindowSizeClass
3736import androidx.compose.runtime.Composable
@@ -45,13 +44,15 @@ import androidx.compose.ui.semantics.testTagsAsResourceId
4544import androidx.navigation.NavDestination
4645import androidx.navigation.NavDestination.Companion.hierarchy
4746import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaBackground
47+ import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaGradientBackground
4848import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaNavigationBar
4949import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaNavigationBarItem
5050import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaNavigationRail
5151import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaNavigationRailItem
5252import com.google.samples.apps.nowinandroid.core.designsystem.icon.Icon.DrawableResourceIcon
5353import com.google.samples.apps.nowinandroid.core.designsystem.icon.Icon.ImageVectorIcon
5454import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme
55+ import com.google.samples.apps.nowinandroid.feature.foryou.navigation.ForYouDestination
5556import com.google.samples.apps.nowinandroid.navigation.NiaNavHost
5657import com.google.samples.apps.nowinandroid.navigation.TopLevelDestination
5758
@@ -66,13 +67,20 @@ fun NiaApp(
6667 appState : NiaAppState = rememberNiaAppState(windowSizeClass)
6768) {
6869 NiaTheme {
69- NiaBackground {
70+ val background: @Composable (@Composable () -> Unit ) -> Unit =
71+ when (appState.currentDestination?.route) {
72+ ForYouDestination .route -> { content -> NiaGradientBackground (content = content) }
73+ else -> { content -> NiaBackground (content = content) }
74+ }
75+
76+ background {
7077 Scaffold (
7178 modifier = Modifier .semantics {
7279 testTagsAsResourceId = true
7380 },
7481 containerColor = Color .Transparent ,
7582 contentColor = MaterialTheme .colorScheme.onBackground,
83+ contentWindowInsets = WindowInsets (0 , 0 , 0 , 0 ),
7684 bottomBar = {
7785 if (appState.shouldShowBottomBar) {
7886 NiaBottomBar (
@@ -158,42 +166,32 @@ private fun NiaBottomBar(
158166 onNavigateToDestination : (TopLevelDestination ) -> Unit ,
159167 currentDestination : NavDestination ?
160168) {
161- // Wrap the navigation bar in a surface so the color behind the system
162- // navigation is equal to the container color of the navigation bar.
163- Surface (color = MaterialTheme .colorScheme.surface) {
164- NiaNavigationBar (
165- modifier = Modifier .windowInsetsPadding(
166- WindowInsets .safeDrawing.only(
167- WindowInsetsSides .Horizontal + WindowInsetsSides .Bottom
168- )
169+ NiaNavigationBar {
170+ destinations.forEach { destination ->
171+ val selected =
172+ currentDestination?.hierarchy?.any { it.route == destination.route } == true
173+ NiaNavigationBarItem (
174+ selected = selected,
175+ onClick = { onNavigateToDestination(destination) },
176+ icon = {
177+ val icon = if (selected) {
178+ destination.selectedIcon
179+ } else {
180+ destination.unselectedIcon
181+ }
182+ when (icon) {
183+ is ImageVectorIcon -> Icon (
184+ imageVector = icon.imageVector,
185+ contentDescription = null
186+ )
187+ is DrawableResourceIcon -> Icon (
188+ painter = painterResource(id = icon.id),
189+ contentDescription = null
190+ )
191+ }
192+ },
193+ label = { Text (stringResource(destination.iconTextId)) }
169194 )
170- ) {
171- destinations.forEach { destination ->
172- val selected =
173- currentDestination?.hierarchy?.any { it.route == destination.route } == true
174- NiaNavigationBarItem (
175- selected = selected,
176- onClick = { onNavigateToDestination(destination) },
177- icon = {
178- val icon = if (selected) {
179- destination.selectedIcon
180- } else {
181- destination.unselectedIcon
182- }
183- when (icon) {
184- is ImageVectorIcon -> Icon (
185- imageVector = icon.imageVector,
186- contentDescription = null
187- )
188- is DrawableResourceIcon -> Icon (
189- painter = painterResource(id = icon.id),
190- contentDescription = null
191- )
192- }
193- },
194- label = { Text (stringResource(destination.iconTextId)) }
195- )
196- }
197195 }
198196 }
199197}
0 commit comments