diff --git a/app/src/main/java/ru/fincode/tsudesk/presentation/main/MainScaffold.kt b/app/src/main/java/ru/fincode/tsudesk/presentation/main/MainScaffold.kt index a5d7baf..06338b8 100644 --- a/app/src/main/java/ru/fincode/tsudesk/presentation/main/MainScaffold.kt +++ b/app/src/main/java/ru/fincode/tsudesk/presentation/main/MainScaffold.kt @@ -5,8 +5,8 @@ import androidx.compose.material3.Scaffold import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource +import androidx.compose.ui.res.vectorResource import androidx.navigation.NavHostController import androidx.navigation.compose.currentBackStackEntryAsState import ru.fincode.core.ui.components.BottomBarItem @@ -20,32 +20,20 @@ fun MainScaffold( navController: NavHostController, content: @Composable (Modifier) -> Unit, ) { - val scheduleIcon = painterResource(R.drawable.ic_progress) - val newsIcon = painterResource(R.drawable.ic_news) - val progressIcon = painterResource(R.drawable.ic_progress) - val settingsIcon = painterResource(R.drawable.ic_progress) + val scheduleIcon = + androidx.compose.ui.graphics.vector.ImageVector.vectorResource(R.drawable.ic_progress) + val newsIcon = + androidx.compose.ui.graphics.vector.ImageVector.vectorResource(R.drawable.ic_progress) + val progressIcon = + androidx.compose.ui.graphics.vector.ImageVector.vectorResource(R.drawable.ic_progress) + val settingsIcon = + androidx.compose.ui.graphics.vector.ImageVector.vectorResource(R.drawable.ic_progress) val items = listOf( - TopLevelItem( - destination = TopLevelDestination.SCHEDULE, - labelRes = R.string.tab_schedule, - icon = scheduleIcon - ), - TopLevelItem( - destination = TopLevelDestination.NEWS, - labelRes = R.string.tab_news, - icon = newsIcon - ), - TopLevelItem( - destination = TopLevelDestination.PROGRESS, - labelRes = R.string.tab_progress, - icon = progressIcon - ), - TopLevelItem( - destination = TopLevelDestination.SETTINGS, - labelRes = R.string.tab_settings, - icon = settingsIcon - ), + TopLevelItem(TopLevelDestination.SCHEDULE, R.string.tab_schedule, scheduleIcon), + TopLevelItem(TopLevelDestination.NEWS, R.string.tab_news, newsIcon), + TopLevelItem(TopLevelDestination.PROGRESS, R.string.tab_progress, progressIcon), + TopLevelItem(TopLevelDestination.SETTINGS, R.string.tab_settings, settingsIcon), ) val backStackEntry by navController.currentBackStackEntryAsState() diff --git a/app/src/main/java/ru/fincode/tsudesk/presentation/main/TopLevelItem.kt b/app/src/main/java/ru/fincode/tsudesk/presentation/main/TopLevelItem.kt index 408eb0c..fead3ce 100644 --- a/app/src/main/java/ru/fincode/tsudesk/presentation/main/TopLevelItem.kt +++ b/app/src/main/java/ru/fincode/tsudesk/presentation/main/TopLevelItem.kt @@ -1,11 +1,11 @@ package ru.fincode.tsudesk.presentation.main import androidx.annotation.StringRes -import androidx.compose.ui.graphics.painter.Painter +import androidx.compose.ui.graphics.vector.ImageVector import ru.fincode.tsudesk.core.navigation.TopLevelDestination data class TopLevelItem( val destination: TopLevelDestination, @StringRes val labelRes: Int, - val icon: Painter, + val icon: ImageVector ) \ No newline at end of file diff --git a/app/src/main/java/ru/fincode/tsudesk/presentation/navigation/AppNavHost.kt b/app/src/main/java/ru/fincode/tsudesk/presentation/navigation/AppNavHost.kt index 70b0b66..96aaefb 100644 --- a/app/src/main/java/ru/fincode/tsudesk/presentation/navigation/AppNavHost.kt +++ b/app/src/main/java/ru/fincode/tsudesk/presentation/navigation/AppNavHost.kt @@ -9,6 +9,7 @@ import androidx.navigation.compose.composable import androidx.navigation.compose.rememberNavController import ru.fincode.tsudesk.core.navigation.AppRoute import ru.fincode.tsudesk.core.navigation.navigateRoute +import ru.fincode.tsudesk.feature.news.presentation.screen.NewsRoute import ru.fincode.tsudesk.presentation.main.MainScaffold import ru.fincode.tsudesk.feature.schedule.presentation.screen.ScheduleRoute import ru.fincode.tsudesk.feature.splash.presentation.screen.SplashRoute @@ -73,9 +74,4 @@ private fun MainTabsNavHost( // SettingsRoute(modifier = Modifier) } } -} - -@Composable -fun NewsRoute(modifier: Modifier) { - TODO("Not yet implemented") } \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_progress.xml b/app/src/main/res/drawable/ic_progress.xml index 610f3c9..b6691e5 100644 --- a/app/src/main/res/drawable/ic_progress.xml +++ b/app/src/main/res/drawable/ic_progress.xml @@ -3,10 +3,12 @@ android:height="24dp" android:viewportWidth="24" android:viewportHeight="24"> + + android:fillColor="#FF000000"/> + - + android:fillColor="#FF000000"/> + \ No newline at end of file diff --git a/core/ui/src/main/java/ru/fincode/core/ui/components/BottomBarItem.kt b/core/ui/src/main/java/ru/fincode/core/ui/components/BottomBarItem.kt new file mode 100644 index 0000000..94e3347 --- /dev/null +++ b/core/ui/src/main/java/ru/fincode/core/ui/components/BottomBarItem.kt @@ -0,0 +1,9 @@ +package ru.fincode.core.ui.components + +import androidx.compose.ui.graphics.vector.ImageVector + +data class BottomBarItem( + val key: String, + val label: String, + val icon: ImageVector, +) \ No newline at end of file diff --git a/core/ui/src/main/java/ru/fincode/core/ui/components/TsudeskBottomBar.kt b/core/ui/src/main/java/ru/fincode/core/ui/components/TsudeskBottomBar.kt index bacc231..22f409d 100644 --- a/core/ui/src/main/java/ru/fincode/core/ui/components/TsudeskBottomBar.kt +++ b/core/ui/src/main/java/ru/fincode/core/ui/components/TsudeskBottomBar.kt @@ -1,17 +1,11 @@ package ru.fincode.core.ui.components import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme import androidx.compose.material3.NavigationBar import androidx.compose.material3.NavigationBarItem import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.ui.graphics.painter.Painter - -data class BottomBarItem( - val key: String, - val label: String, - val icon: Painter, -) @Composable fun TsudeskBottomBar( @@ -21,19 +15,22 @@ fun TsudeskBottomBar( ) { NavigationBar { items.forEach { item -> + val selected = item.key == selectedKey + NavigationBarItem( - selected = item.key == selectedKey, + selected = selected, onClick = { onItemClick(item) }, icon = { Icon( - painter = item.icon, - contentDescription = item.label + imageVector = item.icon, + contentDescription = item.label, + tint = if (selected) + MaterialTheme.colorScheme.primary + else + MaterialTheme.colorScheme.onSurfaceVariant ) }, - label = { - Text(text = item.label) - }, - alwaysShowLabel = true + label = { Text(item.label) } ) } }