Inference time should be displayed only on camera screen

This commit is contained in:
Pierre-Yves Nicolas
2025-06-01 07:43:15 +02:00
parent 734197f6e1
commit 77427c2695
2 changed files with 16 additions and 28 deletions

View File

@@ -10,19 +10,14 @@ import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.activity.viewModels
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.core.content.FileProvider
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import org.mydomain.myscan.ui.theme.MyScanTheme
@@ -46,7 +41,6 @@ class MainActivity : ComponentActivity() {
Scaffold { innerPadding ->
Column {
Greeting(modifier = Modifier.padding(innerPadding))
MyMessageBox(cameraScreenState.detectionMessage, cameraScreenState.inferenceTime)
when (val screen = currentScreen) {
is Screen.Camera -> {
CameraScreen(viewModel, cameraScreenState,
@@ -97,18 +91,6 @@ class MainActivity : ComponentActivity() {
}
}
@Composable
fun MyMessageBox(msg: String?, inferenceTime: Long) {
Text(
text = (msg ?: "") + " / inferred in " + inferenceTime + "ms",
modifier = Modifier
.padding(16.dp)
.background(Color.Gray)
.fillMaxWidth(),
color = Color.Black,
)
}
@Composable
fun Greeting(modifier: Modifier = Modifier) {
Text(
@@ -116,11 +98,3 @@ fun Greeting(modifier: Modifier = Modifier) {
modifier = modifier
)
}
@Preview(showBackground = true)
@Composable
fun MyMessageBoxPreview() {
MyScanTheme {
MyMessageBox("Found 2 objects!", 42)
}
}

View File

@@ -22,7 +22,9 @@ import androidx.compose.foundation.Canvas
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.width
import androidx.compose.material3.Button
import androidx.compose.material3.Text
@@ -49,9 +51,9 @@ import androidx.core.graphics.scale
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.compose.LocalLifecycleOwner
import com.google.common.util.concurrent.ListenableFuture
import org.mydomain.myscan.CameraScreenState
import org.mydomain.myscan.MainViewModel
import org.mydomain.myscan.Point
import org.mydomain.myscan.CameraScreenState
import org.mydomain.myscan.scaledTo
import java.util.concurrent.ExecutorService
import java.util.concurrent.Executors
@@ -94,6 +96,7 @@ fun CameraScreen(
captureController = captureController)
AnalysisOverlay(uiState)
}
MessageBox(uiState.inferenceTime)
Button(
onClick = {
captureController.takePicture(
@@ -249,3 +252,14 @@ class CameraCaptureController {
)
}
}
@Composable
fun MessageBox(inferenceTime: Long) {
Text(
text = if(inferenceTime == 0L) "" else "Segmentation time: $inferenceTime ms",
modifier = Modifier
.padding(16.dp)
.fillMaxWidth(),
color = Color.Gray,
)
}