Skip to content

Commit 105d25b

Browse files
committed
[Issue-16] - Removing unnecessary change
1 parent 2cc9321 commit 105d25b

File tree

3 files changed

+49
-52
lines changed

3 files changed

+49
-52
lines changed
Lines changed: 44 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,6 @@
11
package com.codandotv.streamplayerapp.core_navigation.bottomnavigation
22

3-
import androidx.compose.foundation.background
4-
import androidx.compose.foundation.layout.WindowInsets
5-
import androidx.compose.foundation.layout.fillMaxHeight
6-
import androidx.compose.foundation.layout.fillMaxSize
73
import androidx.compose.foundation.layout.height
8-
import androidx.compose.foundation.layout.navigationBarsPadding
9-
import androidx.compose.foundation.layout.padding
104
import androidx.compose.material3.Icon
115
import androidx.compose.material3.LocalAbsoluteTonalElevation
126
import androidx.compose.material3.MaterialTheme
@@ -16,67 +10,70 @@ import androidx.compose.material3.NavigationBarItemDefaults
1610
import androidx.compose.material3.Text
1711
import androidx.compose.material3.surfaceColorAtElevation
1812
import androidx.compose.runtime.Composable
19-
import androidx.compose.runtime.getValue
2013
import androidx.compose.ui.Modifier
21-
import androidx.compose.ui.graphics.Color
2214
import androidx.compose.ui.res.painterResource
2315
import androidx.compose.ui.res.stringResource
2416
import androidx.compose.ui.unit.dp
2517
import androidx.navigation.NavController
26-
import androidx.navigation.compose.currentBackStackEntryAsState
18+
import com.codandotv.streamplayerapp.core_navigation.helper.currentRoute
19+
20+
private val bottomMenuItems = listOf(
21+
BottomNavItem.Home, BottomNavItem.Games, BottomNavItem.News, BottomNavItem.Downloads
22+
)
2723

2824
@Composable
2925
fun StreamPlayerBottomNavigation(navController: NavController) {
30-
val items = listOf(
31-
BottomNavItem.Home,
32-
BottomNavItem.Games,
33-
BottomNavItem.News,
34-
BottomNavItem.Downloads
35-
)
36-
3726
NavigationBar(
3827
containerColor = MaterialTheme.colorScheme.surface,
3928
contentColor = MaterialTheme.colorScheme.onBackground,
4029
modifier = Modifier.height(72.dp)
4130
) {
42-
val navBackStackEntry by navController.currentBackStackEntryAsState()
43-
val currentRoute = navBackStackEntry?.destination?.route
44-
items.forEach { item ->
45-
NavigationBarItem(
46-
colors = NavigationBarItemDefaults.colors(
47-
selectedIconColor = MaterialTheme.colorScheme.onBackground,
48-
unselectedIconColor = MaterialTheme.colorScheme.surfaceVariant,
49-
selectedTextColor = MaterialTheme.colorScheme.onBackground,
50-
unselectedTextColor = MaterialTheme.colorScheme.surfaceVariant,
51-
indicatorColor = MaterialTheme.colorScheme.surfaceColorAtElevation(
52-
LocalAbsoluteTonalElevation.current
53-
)
54-
),
55-
icon = {
56-
Icon(
57-
painterResource(id = if (currentRoute == item.screenRoute) item.iconSelected else item.iconUnselected),
58-
contentDescription = stringResource(id = item.title),
59-
)
60-
},
31+
val currentRoute = currentRoute(navController = navController)
32+
33+
bottomMenuItems.forEach { item ->
34+
NavigationBarItem(colors = NavigationBarItemDefaults.colors(
35+
selectedIconColor = MaterialTheme.colorScheme.onBackground,
36+
unselectedIconColor = MaterialTheme.colorScheme.surfaceVariant,
37+
selectedTextColor = MaterialTheme.colorScheme.onBackground,
38+
unselectedTextColor = MaterialTheme.colorScheme.surfaceVariant,
39+
indicatorColor = MaterialTheme.colorScheme.surfaceColorAtElevation(
40+
LocalAbsoluteTonalElevation.current
41+
)
42+
),
43+
icon = { NavItemIcon(currentRoute, item) },
6144
label = {
6245
Text(
6346
text = stringResource(id = item.title),
6447
style = MaterialTheme.typography.bodySmall,
6548
)
6649
},
6750
selected = currentRoute == item.screenRoute,
68-
onClick = {
69-
navController.navigate(item.screenRoute) {
70-
navController.graph.startDestinationRoute?.let { screen_route ->
71-
popUpTo(screen_route) {
72-
saveState = true
73-
}
74-
}
75-
launchSingleTop = true
76-
restoreState = true
77-
}
78-
}
79-
)
51+
onClick = { onItemClicked(navController, item) })
52+
}
53+
}
54+
}
55+
56+
@Composable
57+
private fun NavItemIcon(
58+
currentRoute: String?,
59+
item: BottomNavItem
60+
) {
61+
Icon(
62+
painterResource(id = if (currentRoute == item.screenRoute) item.iconSelected else item.iconUnselected),
63+
contentDescription = stringResource(id = item.title),
64+
)
65+
}
66+
67+
private fun onItemClicked(
68+
navController: NavController, item: BottomNavItem
69+
) {
70+
navController.navigate(item.screenRoute) {
71+
navController.graph.startDestinationRoute?.let { screen_route ->
72+
popUpTo(screen_route) {
73+
saveState = true
74+
}
8075
}
76+
launchSingleTop = true
77+
restoreState = true
8178
}
8279
}

core-navigation/src/main/java/com/codandotv/streamplayerapp/core_navigation/helper/NavigationHelper.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ package com.codandotv.streamplayerapp.core_navigation.helper
22

33
import androidx.compose.runtime.Composable
44
import androidx.compose.runtime.getValue
5-
import androidx.navigation.NavHostController
5+
import androidx.navigation.NavController
66
import androidx.navigation.compose.currentBackStackEntryAsState
77

88
@Composable
9-
fun currentRoute(navController: NavHostController): String? {
9+
fun currentRoute(navController: NavController): String? {
1010
val navBackStackEntry by navController.currentBackStackEntryAsState()
1111
return navBackStackEntry?.destination?.route
1212
}

core-shared-ui/src/main/res/values-night/themes.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
<!-- Base application theme. -->
33
<style name="Theme.StreamPlayerApp" parent="Theme.MaterialComponents.DayNight.NoActionBar">
44
<!-- Primary brand color. -->
5-
<item name="colorPrimary">@color/purple_500</item>
6-
<item name="colorPrimaryVariant">@color/black</item>
7-
<item name="colorOnPrimary">@color/white</item>
5+
<item name="colorPrimary">@color/purple_200</item>
6+
<item name="colorPrimaryVariant">@color/purple_700</item>
7+
<item name="colorOnPrimary">@color/black</item>
88
<!-- Secondary brand color. -->
99
<item name="colorSecondary">@color/teal_200</item>
1010
<item name="colorSecondaryVariant">@color/teal_700</item>

0 commit comments

Comments
 (0)