CameraScreen: use a BottomAppBar
This commit is contained in:
@@ -38,6 +38,7 @@ import androidx.compose.foundation.layout.width
|
||||
import androidx.compose.foundation.lazy.LazyListState
|
||||
import androidx.compose.foundation.lazy.rememberLazyListState
|
||||
import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.material3.BottomAppBar
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Scaffold
|
||||
@@ -137,25 +138,24 @@ private fun CameraScreenScaffold(
|
||||
onCapture: () -> Unit,
|
||||
onFinalizePressed: () -> Unit,
|
||||
) {
|
||||
Scaffold { innerPadding ->
|
||||
Box(modifier = Modifier.padding(innerPadding).fillMaxSize()) {
|
||||
CameraPreviewWithOverlay(cameraPreview, cameraUiState)
|
||||
MessageBox(cameraUiState.liveAnalysisState.inferenceTime)
|
||||
|
||||
Column(Modifier.align(Alignment.BottomCenter)) {
|
||||
CaptureButton(
|
||||
onClick = onCapture,
|
||||
modifier = Modifier
|
||||
.align(Alignment.CenterHorizontally)
|
||||
.padding(16.dp)
|
||||
)
|
||||
Scaffold(
|
||||
bottomBar = {
|
||||
CameraScreenFooter(
|
||||
pageList = pageList,
|
||||
pageCount = cameraUiState.pageCount,
|
||||
onFinalizePressed = onFinalizePressed,
|
||||
modifier = Modifier,
|
||||
)
|
||||
}
|
||||
) { innerPadding ->
|
||||
Box(modifier = Modifier.padding(bottom = innerPadding.calculateBottomPadding()).fillMaxSize()) {
|
||||
CameraPreviewWithOverlay(cameraPreview, cameraUiState)
|
||||
MessageBox(cameraUiState.liveAnalysisState.inferenceTime)
|
||||
CaptureButton(
|
||||
onClick = onCapture,
|
||||
modifier = Modifier
|
||||
.align(Alignment.BottomCenter)
|
||||
.padding(16.dp)
|
||||
)
|
||||
cameraUiState.captureState.processedImage?.let {
|
||||
Surface(
|
||||
color = Color.Black.copy(alpha = 0.3f),
|
||||
@@ -242,20 +242,15 @@ fun CameraScreenFooter(
|
||||
pageList: @Composable () -> Unit,
|
||||
pageCount: Int,
|
||||
onFinalizePressed: () -> Unit,
|
||||
modifier: Modifier,
|
||||
) {
|
||||
Surface (
|
||||
color = MaterialTheme.colorScheme.inverseOnSurface,
|
||||
tonalElevation = 4.dp,
|
||||
modifier = modifier
|
||||
.fillMaxWidth()
|
||||
.height(180.dp)
|
||||
) {
|
||||
Column {
|
||||
Column (modifier = Modifier.background(MaterialTheme.colorScheme.primaryContainer)) {
|
||||
pageList()
|
||||
BottomAppBar(
|
||||
tonalElevation = 4.dp,
|
||||
) {
|
||||
Row (
|
||||
modifier = Modifier
|
||||
.padding(horizontal = 16.dp, vertical = 8.dp)
|
||||
.padding(horizontal = 16.dp, vertical = 1.dp)
|
||||
.fillMaxWidth(),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.SpaceBetween
|
||||
|
||||
@@ -20,6 +20,7 @@ import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.border
|
||||
import androidx.compose.foundation.clickable
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.PaddingValues
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.height
|
||||
@@ -45,13 +46,12 @@ fun CommonPageList(
|
||||
listState: LazyListState = rememberLazyListState(),
|
||||
currentPageIndex: Int? = null,
|
||||
) {
|
||||
if (pageIds.isEmpty()) return
|
||||
LazyRow (
|
||||
state = listState,
|
||||
contentPadding = PaddingValues(4.dp),
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.background(MaterialTheme.colorScheme.secondaryContainer),
|
||||
.background(MaterialTheme.colorScheme.surfaceContainerLow),
|
||||
horizontalArrangement = Arrangement.spacedBy(8.dp),
|
||||
verticalAlignment = Alignment.CenterVertically
|
||||
) {
|
||||
@@ -63,11 +63,12 @@ fun CommonPageList(
|
||||
val isSelected = index == currentPageIndex
|
||||
val borderColor =
|
||||
if (isSelected) MaterialTheme.colorScheme.primary else Color.Transparent
|
||||
val maxImageSize = 120.dp
|
||||
val modifier =
|
||||
if (bitmap.height > bitmap.width)
|
||||
Modifier.height(120.dp)
|
||||
Modifier.height(maxImageSize)
|
||||
else
|
||||
Modifier.width(120.dp)
|
||||
Modifier.width(maxImageSize)
|
||||
Image(
|
||||
bitmap = bitmap,
|
||||
contentDescription = null,
|
||||
@@ -79,4 +80,7 @@ fun CommonPageList(
|
||||
}
|
||||
}
|
||||
}
|
||||
if (pageIds.isEmpty()) {
|
||||
Box(modifier = Modifier.height(120.dp)) {}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user