Export screen: move filename field close to buttons

This commit is contained in:
Pierre-Yves Nicolas
2026-02-01 18:10:36 +01:00
parent a4822d3c9e
commit 0c8974af9a

View File

@@ -37,7 +37,9 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.width
import androidx.compose.foundation.layout.widthIn import androidx.compose.foundation.layout.widthIn
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.automirrored.filled.OpenInNew import androidx.compose.material.icons.automirrored.filled.OpenInNew
import androidx.compose.material.icons.filled.Clear import androidx.compose.material.icons.filled.Clear
@@ -191,15 +193,15 @@ fun ExportScreen(
val containerModifier = Modifier val containerModifier = Modifier
.padding(innerPadding) .padding(innerPadding)
.padding(16.dp) .padding(16.dp)
val onThumbnailClick = navigation.toDocumentScreen
if (!isLandscape(LocalConfiguration.current)) { if (!isLandscape(LocalConfiguration.current)) {
Column( Column(
modifier = containerModifier.fillMaxSize(), modifier = containerModifier.fillMaxSize(),
verticalArrangement = Arrangement.spacedBy(16.dp) verticalArrangement = Arrangement.spacedBy(16.dp)
) { ) {
TextFieldAndPdfInfos(filename, onFilenameChange, uiState, currentDocument, onOpen, PdfInfosAndResultBar(uiState, currentDocument, onOpen, onThumbnailClick)
onThumbnailClick = navigation.toDocumentScreen)
Spacer(Modifier.weight(1f)) // push buttons down Spacer(Modifier.weight(1f)) // push buttons down
MainActions(uiState, onShare, onSave, onCloseScan) MainActions(filename, onFilenameChange, uiState, onShare, onSave, onCloseScan)
} }
} else { } else {
Row( Row(
@@ -207,14 +209,14 @@ fun ExportScreen(
horizontalArrangement = Arrangement.spacedBy(16.dp) horizontalArrangement = Arrangement.spacedBy(16.dp)
) { ) {
Column( Column(
modifier = Modifier.weight(1f), modifier = Modifier.weight(1f)
.verticalScroll(rememberScrollState()),
verticalArrangement = Arrangement.spacedBy(16.dp) verticalArrangement = Arrangement.spacedBy(16.dp)
) { ) {
TextFieldAndPdfInfos(filename, onFilenameChange, uiState, currentDocument, onOpen, PdfInfosAndResultBar(uiState, currentDocument, onOpen, onThumbnailClick)
onThumbnailClick = navigation.toDocumentScreen)
} }
Column(modifier = Modifier.weight(1f)) { Column(modifier = Modifier.weight(1f)) {
MainActions(uiState, onShare, onSave, onCloseScan) MainActions(filename, onFilenameChange, uiState, onShare, onSave, onCloseScan)
} }
} }
@@ -223,15 +225,12 @@ fun ExportScreen(
} }
@Composable @Composable
private fun TextFieldAndPdfInfos( private fun PdfInfosAndResultBar(
filename: MutableState<String>,
onFilenameChange: (String) -> Unit,
uiState: ExportUiState, uiState: ExportUiState,
currentDocument: DocumentUiModel, currentDocument: DocumentUiModel,
onOpen: (SavedItem) -> Unit, onOpen: (SavedItem) -> Unit,
onThumbnailClick: () -> Unit, onThumbnailClick: () -> Unit,
) { ) {
FilenameTextField(filename, onFilenameChange)
val result = uiState.result val result = uiState.result
@@ -339,6 +338,8 @@ private fun FilenameTextField(
@Composable @Composable
private fun MainActions( private fun MainActions(
filename: MutableState<String>,
onFilenameChange: (String) -> Unit,
uiState: ExportUiState, uiState: ExportUiState,
onShare: () -> Unit, onShare: () -> Unit,
onSave: () -> Unit, onSave: () -> Unit,
@@ -347,6 +348,8 @@ private fun MainActions(
Column( Column(
verticalArrangement = Arrangement.spacedBy(12.dp) verticalArrangement = Arrangement.spacedBy(12.dp)
) { ) {
FilenameTextField(filename, onFilenameChange)
Row( Row(
horizontalArrangement = Arrangement.spacedBy(8.dp), horizontalArrangement = Arrangement.spacedBy(8.dp),
modifier = Modifier.fillMaxWidth() modifier = Modifier.fillMaxWidth()