ui: add "clear results" action to Benchmark screen
This commit is contained in:
parent
49df3aea9a
commit
bbf0420bac
|
|
@ -271,6 +271,11 @@ fun AppContent(
|
||||||
),
|
),
|
||||||
bottomBarConfig = BottomBarConfig.Benchmark(
|
bottomBarConfig = BottomBarConfig.Benchmark(
|
||||||
engineIdle = !engineState.isUninterruptible,
|
engineIdle = !engineState.isUninterruptible,
|
||||||
|
onShare = {
|
||||||
|
benchmarkResults.lastOrNull()?.let {
|
||||||
|
handleScaffoldEvent(ScaffoldEvent.ShareText(it.text))
|
||||||
|
}
|
||||||
|
},
|
||||||
onRerun = {
|
onRerun = {
|
||||||
if (engineState.isUninterruptible) {
|
if (engineState.isUninterruptible) {
|
||||||
handleScaffoldEvent(ScaffoldEvent.ShowSnackbar(
|
handleScaffoldEvent(ScaffoldEvent.ShowSnackbar(
|
||||||
|
|
@ -281,11 +286,7 @@ fun AppContent(
|
||||||
benchmarkViewModel.runBenchmark()
|
benchmarkViewModel.runBenchmark()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onShare = {
|
onClear = benchmarkViewModel::clearResults,
|
||||||
benchmarkResults.lastOrNull()?.let {
|
|
||||||
handleScaffoldEvent(ScaffoldEvent.ShareText(it.text))
|
|
||||||
}
|
|
||||||
},
|
|
||||||
showModelCard = showModelCard,
|
showModelCard = showModelCard,
|
||||||
onToggleModelCard = benchmarkViewModel::toggleModelCard,
|
onToggleModelCard = benchmarkViewModel::toggleModelCard,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -105,8 +105,9 @@ fun AppScaffold(
|
||||||
is BottomBarConfig.Benchmark -> {
|
is BottomBarConfig.Benchmark -> {
|
||||||
BenchmarkBottomBar(
|
BenchmarkBottomBar(
|
||||||
engineIdle = config.engineIdle,
|
engineIdle = config.engineIdle,
|
||||||
onRerun = config.onRerun,
|
|
||||||
onShare = config.onShare,
|
onShare = config.onShare,
|
||||||
|
onRerun = config.onRerun,
|
||||||
|
onClear = config.onClear,
|
||||||
showModelCard = config.showModelCard,
|
showModelCard = config.showModelCard,
|
||||||
onToggleModelCard = config.onToggleModelCard,
|
onToggleModelCard = config.onToggleModelCard,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import androidx.compose.animation.scaleIn
|
||||||
import androidx.compose.animation.scaleOut
|
import androidx.compose.animation.scaleOut
|
||||||
import androidx.compose.material.icons.Icons
|
import androidx.compose.material.icons.Icons
|
||||||
import androidx.compose.material.icons.filled.Badge
|
import androidx.compose.material.icons.filled.Badge
|
||||||
|
import androidx.compose.material.icons.filled.ClearAll
|
||||||
import androidx.compose.material.icons.filled.Replay
|
import androidx.compose.material.icons.filled.Replay
|
||||||
import androidx.compose.material.icons.filled.Share
|
import androidx.compose.material.icons.filled.Share
|
||||||
import androidx.compose.material.icons.outlined.Badge
|
import androidx.compose.material.icons.outlined.Badge
|
||||||
|
|
@ -20,8 +21,9 @@ import androidx.compose.runtime.Composable
|
||||||
@Composable
|
@Composable
|
||||||
fun BenchmarkBottomBar(
|
fun BenchmarkBottomBar(
|
||||||
engineIdle: Boolean,
|
engineIdle: Boolean,
|
||||||
onRerun: () -> Unit,
|
|
||||||
onShare: () -> Unit,
|
onShare: () -> Unit,
|
||||||
|
onRerun: () -> Unit,
|
||||||
|
onClear: () -> Unit,
|
||||||
showModelCard: Boolean,
|
showModelCard: Boolean,
|
||||||
onToggleModelCard: (Boolean) -> Unit,
|
onToggleModelCard: (Boolean) -> Unit,
|
||||||
) {
|
) {
|
||||||
|
|
@ -37,6 +39,13 @@ fun BenchmarkBottomBar(
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IconButton(onClick = onClear) {
|
||||||
|
Icon(
|
||||||
|
imageVector = Icons.Default.ClearAll,
|
||||||
|
contentDescription = "Clear benchmark results"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
IconButton(onClick = { onToggleModelCard(!showModelCard) } ) {
|
IconButton(onClick = { onToggleModelCard(!showModelCard) } ) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = if (showModelCard) Icons.Default.Badge else Icons.Outlined.Badge,
|
imageVector = if (showModelCard) Icons.Default.Badge else Icons.Outlined.Badge,
|
||||||
|
|
|
||||||
|
|
@ -87,8 +87,9 @@ sealed class BottomBarConfig {
|
||||||
|
|
||||||
data class Benchmark(
|
data class Benchmark(
|
||||||
val engineIdle: Boolean,
|
val engineIdle: Boolean,
|
||||||
val onRerun: () -> Unit,
|
|
||||||
val onShare: () -> Unit,
|
val onShare: () -> Unit,
|
||||||
|
val onRerun: () -> Unit,
|
||||||
|
val onClear: () -> Unit,
|
||||||
val showModelCard: Boolean,
|
val showModelCard: Boolean,
|
||||||
val onToggleModelCard: (Boolean) -> Unit,
|
val onToggleModelCard: (Boolean) -> Unit,
|
||||||
) : BottomBarConfig()
|
) : BottomBarConfig()
|
||||||
|
|
|
||||||
|
|
@ -67,6 +67,12 @@ class BenchmarkViewModel @Inject constructor(
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override suspend fun performCleanup() = clearResults()
|
||||||
|
|
||||||
|
fun clearResults() {
|
||||||
|
_benchmarkResults.value = emptyList()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
data class BenchmarkResult(
|
data class BenchmarkResult(
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue