Post a test build with the shop notes, car removal, split settings, and a sync bar.
This commit is contained in:
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,
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user