Refactoring: move Scaffold into CameraScreen
This commit is contained in:
@@ -26,10 +26,7 @@ import androidx.activity.compose.setContent
|
||||
import androidx.activity.enableEdgeToEdge
|
||||
import androidx.activity.viewModels
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.material3.Scaffold
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.core.content.FileProvider
|
||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
@@ -54,19 +51,16 @@ class MainActivity : ComponentActivity() {
|
||||
val pageIds by viewModel.pageIds.collectAsStateWithLifecycle()
|
||||
val context = LocalContext.current
|
||||
MyScanTheme {
|
||||
|
||||
Column {
|
||||
when (val screen = currentScreen) {
|
||||
is Screen.Camera -> {
|
||||
Scaffold { innerPadding->
|
||||
CameraScreen(
|
||||
viewModel, liveAnalysisState,
|
||||
viewModel,
|
||||
liveAnalysisState,
|
||||
onImageAnalyzed = { image -> viewModel.liveAnalysis(image) },
|
||||
onFinalizePressed = { viewModel.navigateTo(Screen.FinalizeDocument()) },
|
||||
modifier = Modifier.padding(innerPadding)
|
||||
)
|
||||
}
|
||||
}
|
||||
is Screen.FinalizeDocument -> {
|
||||
DocumentScreen (
|
||||
pageIds,
|
||||
|
||||
@@ -40,6 +40,7 @@ import androidx.compose.foundation.lazy.rememberLazyListState
|
||||
import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Scaffold
|
||||
import androidx.compose.material3.Surface
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
@@ -77,7 +78,6 @@ fun CameraScreen(
|
||||
liveAnalysisState: LiveAnalysisState,
|
||||
onImageAnalyzed: (ImageProxy) -> Unit,
|
||||
onFinalizePressed: () -> Unit,
|
||||
modifier: Modifier,
|
||||
) {
|
||||
var previewView by remember { mutableStateOf<PreviewView?>(null) }
|
||||
val pageIds by viewModel.pageIds.collectAsStateWithLifecycle()
|
||||
@@ -101,9 +101,7 @@ fun CameraScreen(
|
||||
listState.animateScrollToItem(pageIds.lastIndex)
|
||||
}
|
||||
}
|
||||
|
||||
CameraScreenContent(
|
||||
modifier,
|
||||
CameraScreenScaffold(
|
||||
cameraPreview = {
|
||||
CameraPreview(
|
||||
onImageAnalyzed = onImageAnalyzed,
|
||||
@@ -132,15 +130,15 @@ fun CameraScreen(
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun CameraScreenContent(
|
||||
modifier: Modifier,
|
||||
private fun CameraScreenScaffold(
|
||||
cameraPreview: @Composable () -> Unit,
|
||||
pageList: @Composable () -> Unit,
|
||||
cameraUiState: CameraUiState,
|
||||
onCapture: () -> Unit,
|
||||
onFinalizePressed: () -> Unit,
|
||||
) {
|
||||
Box(modifier = modifier.fillMaxSize()) {
|
||||
Scaffold { innerPadding ->
|
||||
Box(modifier = Modifier.padding(innerPadding).fillMaxSize()) {
|
||||
CameraPreviewWithOverlay(cameraPreview, cameraUiState)
|
||||
MessageBox(cameraUiState.liveAnalysisState.inferenceTime)
|
||||
|
||||
@@ -161,7 +159,8 @@ private fun CameraScreenContent(
|
||||
cameraUiState.captureState.processedImage?.let {
|
||||
Surface(
|
||||
color = Color.Black.copy(alpha = 0.3f),
|
||||
modifier = Modifier.fillMaxSize())
|
||||
modifier = Modifier.fillMaxSize()
|
||||
)
|
||||
{}
|
||||
Image(
|
||||
bitmap = it.asImageBitmap(),
|
||||
@@ -171,6 +170,7 @@ private fun CameraScreenContent(
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun CaptureButton(onClick: () -> Unit, modifier: Modifier) {
|
||||
@@ -292,8 +292,7 @@ fun CameraScreenPreviewWithProcessedImage() {
|
||||
private fun ScreenPreview(captureState: CaptureState) {
|
||||
val context = LocalContext.current
|
||||
MyScanTheme {
|
||||
CameraScreenContent(
|
||||
modifier = Modifier,
|
||||
CameraScreenScaffold(
|
||||
cameraPreview = {
|
||||
Box(
|
||||
modifier = Modifier
|
||||
|
||||
Reference in New Issue
Block a user