@@ -29,29 +29,21 @@ import androidx.compose.foundation.background
2929import androidx.compose.foundation.border
3030import androidx.compose.foundation.clickable
3131import androidx.compose.foundation.interaction.MutableInteractionSource
32- import androidx.compose.foundation.layout.Arrangement
3332import androidx.compose.foundation.layout.Box
34- import androidx.compose.foundation.layout.Column
35- import androidx.compose.foundation.layout.Row
36- import androidx.compose.foundation.layout.WindowInsets
3733import androidx.compose.foundation.layout.fillMaxHeight
3834import androidx.compose.foundation.layout.fillMaxSize
3935import androidx.compose.foundation.layout.fillMaxWidth
4036import androidx.compose.foundation.layout.height
4137import androidx.compose.foundation.layout.padding
42- import androidx.compose.foundation.layout.safeDrawing
4338import androidx.compose.foundation.layout.size
4439import androidx.compose.foundation.layout.width
45- import androidx.compose.foundation.layout.windowInsetsPadding
4640import androidx.compose.foundation.lazy.LazyListState
4741import androidx.compose.foundation.lazy.rememberLazyListState
4842import androidx.compose.foundation.shape.CircleShape
4943import androidx.compose.foundation.shape.RoundedCornerShape
5044import androidx.compose.material.icons.Icons
5145import androidx.compose.material.icons.automirrored.filled.Article
52- import androidx.compose.material3.BottomAppBar
5346import androidx.compose.material3.MaterialTheme
54- import androidx.compose.material3.Scaffold
5547import androidx.compose.material3.Surface
5648import androidx.compose.material3.Text
5749import androidx.compose.runtime.Composable
@@ -193,37 +185,31 @@ private fun CameraScreenScaffold(
193185 thumbnailCoords : MutableState <Offset >,
194186 toAboutScreen : () -> Unit ,
195187) {
196- val documentBar : @Composable () -> Unit = {
197- DocumentBar (
198- pageListState = pageListState,
199- pageCount = cameraUiState.pageCount,
200- onFinalizePressed = onFinalizePressed,
201- onDebugModeSwitched = onDebugModeSwitched,
202- isLandscape = cameraUiState.isLandscape
203- )
204- }
205- Box {
206- if (! cameraUiState.isLandscape) {
207- Scaffold (
208- bottomBar = documentBar
209- ) { padding ->
210- val modifier = Modifier .padding(bottom = padding.calculateBottomPadding()).fillMaxSize()
211- CameraPreviewBox (cameraPreview, cameraUiState, onCapture, modifier)
188+ var tapCount by remember { mutableStateOf(0 ) }
189+ var lastTapTime by remember { mutableStateOf(0L ) }
190+ val tapThreshold = 500L
191+ val onPageCountClick = {
192+ val currentTime = System .currentTimeMillis()
193+ if (currentTime - lastTapTime < tapThreshold) {
194+ tapCount++
195+ if (tapCount >= 3 ) {
196+ onDebugModeSwitched()
197+ tapCount = 0
212198 }
213199 } else {
214- Scaffold { innerPadding ->
215- Row (
216- modifier = Modifier .padding(innerPadding).fillMaxSize()
217- ) {
218- CameraPreviewBox (cameraPreview, cameraUiState, onCapture, Modifier )
219- documentBar()
220- }
221- }
200+ tapCount = 1
201+ }
202+ lastTapTime = currentTime
203+ }
204+
205+ Box {
206+ MyScaffold (
207+ toAboutScreen = toAboutScreen,
208+ pageListState = pageListState,
209+ bottomBar = { Bar (cameraUiState.pageCount, onPageCountClick, onFinalizePressed) }
210+ ) {
211+ modifier -> CameraPreviewBox (cameraPreview, cameraUiState, onCapture, modifier)
222212 }
223- AboutScreenNavButton (
224- onClick = toAboutScreen,
225- modifier = Modifier .align(Alignment .TopEnd ).windowInsetsPadding(WindowInsets .safeDrawing)
226- )
227213 if (cameraUiState.captureState is CaptureState .CapturePreview ) {
228214 CapturedImage (cameraUiState.captureState.processed.asImageBitmap(), thumbnailCoords)
229215 }
@@ -410,61 +396,6 @@ fun MessageBox(inferenceTime: Long) {
410396 )
411397}
412398
413- @Composable
414- fun DocumentBar (
415- pageListState : CommonPageListState ,
416- pageCount : Int ,
417- onFinalizePressed : () -> Unit ,
418- onDebugModeSwitched : () -> Unit ,
419- isLandscape : Boolean ,
420- ) {
421- var tapCount by remember { mutableStateOf(0 ) }
422- var lastTapTime by remember { mutableStateOf(0L ) }
423- val tapThreshold = 500L
424- val onPageCountClick = {
425- val currentTime = System .currentTimeMillis()
426- if (currentTime - lastTapTime < tapThreshold) {
427- tapCount++
428- if (tapCount >= 3 ) {
429- onDebugModeSwitched()
430- tapCount = 0
431- }
432- } else {
433- tapCount = 1
434- }
435- lastTapTime = currentTime
436- }
437-
438- Column (
439- horizontalAlignment = Alignment .CenterHorizontally ,
440- modifier = Modifier .background(MaterialTheme .colorScheme.surfaceContainer)
441- ) {
442- CommonPageList (pageListState, Modifier .weight(1f ))
443- BottomAppBar (
444- containerColor = MaterialTheme .colorScheme.surfaceContainerHigh,
445- ) {
446- if (isLandscape) {
447- Column (
448- horizontalAlignment = Alignment .CenterHorizontally ,
449- modifier = Modifier .fillMaxWidth()
450- ) {
451- Bar (pageCount, onPageCountClick, onFinalizePressed)
452- }
453- } else {
454- Row (
455- modifier = Modifier
456- .padding(horizontal = 16 .dp, vertical = 1 .dp)
457- .fillMaxWidth(),
458- verticalAlignment = Alignment .CenterVertically ,
459- horizontalArrangement = Arrangement .SpaceBetween
460- ) {
461- Bar (pageCount, onPageCountClick, onFinalizePressed)
462- }
463- }
464- }
465- }
466- }
467-
468399@Composable
469400private fun Bar (
470401 pageCount : Int ,
@@ -479,7 +410,7 @@ private fun Bar(
479410 MainActionButton (
480411 onClick = onFinalizePressed,
481412 enabled = pageCount > 0 ,
482- text = " Document " ,
413+ text = stringResource( R .string.document) ,
483414 icon = Icons .AutoMirrored .Filled .Article ,
484415 )
485416}
0 commit comments