Post a test build with the shop notes, car removal, split settings, and a sync bar.

This commit is contained in:
RallyBlock committed 2026-10-22 22:24:36 -07:00
1 parent 9a4db39b58
commit 119f9b9554
8 files changed
+341 -96

No files matched your search

@@ -1,7 +1,19 @@
package com.racingapp.pitlog.ui
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.statusBarsPadding
import androidx.compose.material3.LinearProgressIndicator
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.semantics.contentDescription
import androidx.compose.ui.semantics.semantics
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.navigation.NavType
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
@@ -23,6 +35,8 @@ import com.racingapp.pitlog.ui.setup.CarSetupScreen
fun PitNav() {
val nav = rememberNavController()
val context = LocalContext.current
val refreshing by LocalRepository.current.syncRefreshing().collectAsStateWithLifecycle(false)
Box(Modifier.fillMaxSize()) {
NavHost(navController = nav, startDestination = "cars") {
composable("cars") {
CarsScreen(
@@ -32,7 +46,7 @@ fun PitNav() {
launchSingleTop = true
}
},
onAddCar = { nav.navigate("settings") },
onAddCar = { nav.navigate("settings/car") },
onSettings = { nav.navigate("settings") },
)
}
@@ -42,14 +56,21 @@ fun PitNav() {
onNewNight = { nav.navigate("editor/night") },
onOpenNight = { id -> nav.navigate("night/$id") },
onLogRun = { id -> nav.navigate("editor/run/$id") },
onSettings = { nav.navigate("settings") },
onSettings = { nav.navigate("settings/car") },
onGuide = { nav.navigate("guide") },
onCarSetup = { nav.navigate("car-setup") },
onExport = { name, csv -> shareCsv(context, name, csv) },
)
}
composable("settings") {
SettingsScreen(onBack = { nav.popBackStack() })
SettingsScreen(showCar = false, onBack = { nav.popBackStack() })
}
composable("settings/car") {
SettingsScreen(
showCar = true,
onBack = { nav.popBackStack() },
onCarRemoved = { nav.popBackStack("cars", inclusive = false) },
)
}
composable("guide") {
SetupGuideScreen(onBack = { nav.popBackStack() })
@@ -164,4 +185,16 @@ fun PitNav() {
)
}
}
if (refreshing) {
LinearProgressIndicator(
modifier = Modifier
.align(Alignment.TopCenter)
.fillMaxWidth()
.statusBarsPadding()
.semantics { contentDescription = "Syncing" },
color = MaterialTheme.colorScheme.primary,
trackColor = MaterialTheme.colorScheme.background,
)
}
}
}