Popraw dolna nawigacje i safe area

This commit is contained in:
admin
2026-06-30 21:12:26 +02:00
parent 3e37a61024
commit 780463cc3a
2 changed files with 16 additions and 16 deletions
+2 -2
View File
@@ -12,8 +12,8 @@ android {
applicationId = "pl.firmatpp.kierowca" applicationId = "pl.firmatpp.kierowca"
minSdk = 26 minSdk = 26
targetSdk = 35 targetSdk = 35
versionCode = 3 versionCode = 4
versionName = "1.0.2" versionName = "1.0.3"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
buildConfigField("String", "API_BASE_URL", "\"https://api-intranet.firmatpp.pl/api/\"") buildConfigField("String", "API_BASE_URL", "\"https://api-intranet.firmatpp.pl/api/\"")
@@ -29,8 +29,10 @@ import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.heightIn import androidx.compose.foundation.layout.heightIn
import androidx.compose.foundation.layout.navigationBarsPadding
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.statusBarsPadding
import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.width
import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.grid.GridCells import androidx.compose.foundation.lazy.grid.GridCells
@@ -44,12 +46,10 @@ import androidx.compose.material.icons.outlined.ArrowBack
import androidx.compose.material.icons.outlined.CameraAlt import androidx.compose.material.icons.outlined.CameraAlt
import androidx.compose.material.icons.outlined.CalendarToday import androidx.compose.material.icons.outlined.CalendarToday
import androidx.compose.material.icons.outlined.LocalShipping import androidx.compose.material.icons.outlined.LocalShipping
import androidx.compose.material.icons.outlined.Logout
import androidx.compose.material.icons.outlined.Menu import androidx.compose.material.icons.outlined.Menu
import androidx.compose.material.icons.outlined.Person import androidx.compose.material.icons.outlined.Person
import androidx.compose.material.icons.outlined.Phone import androidx.compose.material.icons.outlined.Phone
import androidx.compose.material.icons.outlined.Refresh import androidx.compose.material.icons.outlined.Refresh
import androidx.compose.material.icons.outlined.TaskAlt
import androidx.compose.material3.Button import androidx.compose.material3.Button
import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.Card import androidx.compose.material3.Card
@@ -112,7 +112,7 @@ fun DriverApp(viewModel: DriverViewModel) {
when (state.screen) { when (state.screen) {
DriverScreen.Phone -> PhoneScreen(state, viewModel::requestOtp) DriverScreen.Phone -> PhoneScreen(state, viewModel::requestOtp)
DriverScreen.Otp -> OtpScreen(state, viewModel::updateOtpCode, viewModel::verifyOtp, viewModel::back) DriverScreen.Otp -> OtpScreen(state, viewModel::updateOtpCode, viewModel::verifyOtp, viewModel::back)
DriverScreen.Routes -> RoutesScreen(state, viewModel::refreshRoutes, viewModel::openRoute, viewModel::logout) DriverScreen.Routes -> RoutesScreen(state, viewModel::refreshRoutes, viewModel::openRoute)
DriverScreen.Detail -> DetailScreen(state, viewModel::back, viewModel::uploadPhoto, viewModel::openPhoto) DriverScreen.Detail -> DetailScreen(state, viewModel::back, viewModel::uploadPhoto, viewModel::openPhoto)
DriverScreen.Photo -> PhotoScreen(state, viewModel::back) DriverScreen.Photo -> PhotoScreen(state, viewModel::back)
} }
@@ -185,11 +185,10 @@ private fun RoutesScreen(
state: DriverUiState, state: DriverUiState,
onRefresh: () -> Unit, onRefresh: () -> Unit,
onRoute: (String) -> Unit, onRoute: (String) -> Unit,
onLogout: () -> Unit,
) { ) {
Scaffold( Scaffold(
topBar = { StitchHeader(onRefresh = onRefresh, onLogout = onLogout) }, topBar = { StitchHeader(onRefresh = onRefresh) },
bottomBar = { StitchBottomBar(onRefresh = onRefresh, onLogout = onLogout) }, bottomBar = { StitchBottomBar(driverName = state.driver?.displayName.orEmpty(), onRefresh = onRefresh) },
containerColor = TppColors.Surface, containerColor = TppColors.Surface,
) { padding -> ) { padding ->
LazyColumn( LazyColumn(
@@ -223,8 +222,8 @@ private fun RoutesScreen(
} }
@Composable @Composable
private fun StitchHeader(onRefresh: () -> Unit, onLogout: () -> Unit) { private fun StitchHeader(onRefresh: () -> Unit) {
Column(Modifier.fillMaxWidth().background(Color.White)) { Column(Modifier.fillMaxWidth().background(Color.White).statusBarsPadding()) {
Row( Row(
Modifier.fillMaxWidth().height(104.dp).padding(horizontal = 24.dp), Modifier.fillMaxWidth().height(104.dp).padding(horizontal = 24.dp),
horizontalArrangement = Arrangement.SpaceBetween, horizontalArrangement = Arrangement.SpaceBetween,
@@ -234,7 +233,7 @@ private fun StitchHeader(onRefresh: () -> Unit, onLogout: () -> Unit) {
Icon(Icons.Outlined.Menu, contentDescription = "Menu", tint = TppColors.Muted, modifier = Modifier.size(32.dp)) Icon(Icons.Outlined.Menu, contentDescription = "Menu", tint = TppColors.Muted, modifier = Modifier.size(32.dp))
} }
TppWordmark() TppWordmark()
IconButton(onClick = onLogout) { IconButton(onClick = { }) {
Icon(Icons.Outlined.Person, contentDescription = "Profil", tint = TppColors.Muted, modifier = Modifier.size(32.dp)) Icon(Icons.Outlined.Person, contentDescription = "Profil", tint = TppColors.Muted, modifier = Modifier.size(32.dp))
} }
} }
@@ -357,17 +356,16 @@ private fun RouteTimeline(origin: String, destination: String) {
} }
@Composable @Composable
private fun StitchBottomBar(onRefresh: () -> Unit, onLogout: () -> Unit) { private fun StitchBottomBar(driverName: String, onRefresh: () -> Unit) {
Column(Modifier.fillMaxWidth().background(Color.White)) { Column(Modifier.fillMaxWidth().background(Color.White).navigationBarsPadding()) {
HorizontalDivider(color = TppColors.Outline.copy(alpha = 0.9f), thickness = 2.dp) HorizontalDivider(color = TppColors.Outline.copy(alpha = 0.9f), thickness = 2.dp)
Row( Row(
Modifier.fillMaxWidth().height(82.dp), Modifier.fillMaxWidth().height(82.dp),
horizontalArrangement = Arrangement.SpaceEvenly, horizontalArrangement = Arrangement.SpaceEvenly,
verticalAlignment = Alignment.CenterVertically, verticalAlignment = Alignment.CenterVertically,
) { ) {
BottomNavItem("Zlecenia", Icons.Outlined.TaskAlt, active = true, onClick = onRefresh) BottomNavItem("Zlecenia", Icons.Outlined.LocalShipping, active = true, onClick = onRefresh)
BottomNavItem("Trasy", Icons.Outlined.LocalShipping, active = false, onClick = onRefresh) BottomNavItem(driverName.ifBlank { "Profil" }, Icons.Outlined.Person, active = false, onClick = { })
BottomNavItem("Profil", Icons.Outlined.Person, active = false, onClick = onLogout)
} }
} }
} }
@@ -421,6 +419,7 @@ private fun DetailScreen(
Scaffold( Scaffold(
topBar = { topBar = {
TopAppBar( TopAppBar(
modifier = Modifier.statusBarsPadding(),
title = { Text("Szczegoly kursu") }, title = { Text("Szczegoly kursu") },
navigationIcon = { IconButton(onClick = onBack) { Icon(Icons.Outlined.ArrowBack, contentDescription = "Wstecz") } }, navigationIcon = { IconButton(onClick = onBack) { Icon(Icons.Outlined.ArrowBack, contentDescription = "Wstecz") } },
colors = TopAppBarDefaults.topAppBarColors(containerColor = TppColors.Surface), colors = TopAppBarDefaults.topAppBarColors(containerColor = TppColors.Surface),
@@ -516,6 +515,7 @@ private fun PhotoScreen(state: DriverUiState, onBack: () -> Unit) {
Scaffold( Scaffold(
topBar = { topBar = {
TopAppBar( TopAppBar(
modifier = Modifier.statusBarsPadding(),
title = { Text("Podglad zdjecia") }, title = { Text("Podglad zdjecia") },
navigationIcon = { IconButton(onClick = onBack) { Icon(Icons.Outlined.ArrowBack, contentDescription = "Wstecz") } }, navigationIcon = { IconButton(onClick = onBack) { Icon(Icons.Outlined.ArrowBack, contentDescription = "Wstecz") } },
colors = TopAppBarDefaults.topAppBarColors(containerColor = Color.Black, titleContentColor = Color.White, navigationIconContentColor = Color.White), colors = TopAppBarDefaults.topAppBarColors(containerColor = Color.Black, titleContentColor = Color.White, navigationIconContentColor = Color.White),