diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 0180495..e1c66a5 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -51,6 +51,7 @@ dependencies { implementation(libs.androidx.ui.graphics) implementation(libs.androidx.ui.tooling.preview) implementation(libs.androidx.material3) + implementation(libs.accompanist.flowlayout) implementation(libs.androidx.camera.core) implementation(libs.androidx.camera.camera2) implementation(libs.androidx.camera.lifecycle) diff --git a/app/src/main/java/org/mydomain/myscan/view/FinalizeDocument.kt b/app/src/main/java/org/mydomain/myscan/view/FinalizeDocument.kt index 39e838d..c0ca96e 100644 --- a/app/src/main/java/org/mydomain/myscan/view/FinalizeDocument.kt +++ b/app/src/main/java/org/mydomain/myscan/view/FinalizeDocument.kt @@ -2,32 +2,33 @@ package org.mydomain.myscan.view import android.graphics.Bitmap import androidx.compose.foundation.Image -import androidx.compose.foundation.background +import androidx.compose.foundation.border import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.PaddingValues -import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.FlowRow import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.material3.Button -import androidx.compose.material3.Card -import androidx.compose.material3.CardDefaults import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.material3.TopAppBar import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.asImageBitmap +import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel @@ -58,28 +59,35 @@ fun FinalizeDocumentScreen( ) } ) { padding -> - LazyColumn ( - modifier = Modifier - .fillMaxSize() - .padding(padding) - .background(Color(0xFFF0F0F0)), - verticalArrangement = Arrangement.spacedBy(16.dp), - contentPadding = PaddingValues(16.dp) - ) { - items(pages) { bitmap -> - Card( - shape = RoundedCornerShape(12.dp), - elevation = CardDefaults.cardElevation(4.dp), - modifier = Modifier.fillMaxWidth() - ) { - Image( - bitmap = bitmap.asImageBitmap(), - contentDescription = "Page", - modifier = Modifier - .fillMaxWidth() - .aspectRatio(bitmap.width.toFloat() / bitmap.height) - .background(Color.White) - ) + Column(modifier = Modifier + .fillMaxSize() + .padding(padding)) { + + Text( + "Pages", + modifier = Modifier.padding(start = 16.dp, top = 16.dp), + style = MaterialTheme.typography.titleMedium + ) + FlowRow ( + modifier = Modifier + .padding(horizontal = 16.dp) + .fillMaxWidth(), + horizontalArrangement = Arrangement.spacedBy(12.dp), + verticalArrangement = Arrangement.spacedBy(12.dp) + ) { + pages.forEachIndexed { index, bitmap -> + Column(horizontalAlignment = Alignment.CenterHorizontally) { + Image( + bitmap = bitmap.asImageBitmap(), + contentDescription = "Page ${index + 1}", + modifier = Modifier + .size(160.dp) + .clip(RoundedCornerShape(8.dp)) + .border(1.dp, Color.DarkGray, RoundedCornerShape(8.dp)), + contentScale = ContentScale.Fit + ) + Text("Page ${index + 1}") + } } } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 99a00b5..cbd5fb4 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -11,6 +11,7 @@ composeBom = "2025.05.00" camerax = "1.4.2" litert = "1.2.0" opencv = "4.11.0" +flowlayout = "0.36.0" [libraries] androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } @@ -30,6 +31,7 @@ androidx-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-man androidx-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" } androidx-material3 = { group = "androidx.compose.material3", name = "material3" } +accompanist-flowlayout = { group = "com.google.accompanist", name = "accompanist-flowlayout", version.ref = "flowlayout" } androidx-camera-core = { group = "androidx.camera", name = "camera-core", version.ref = "camerax" } androidx-camera-camera2 = { group = "androidx.camera", name = "camera-camera2", version.ref = "camerax" } androidx-camera-lifecycle = { group = "androidx.camera", name = "camera-lifecycle", version.ref = "camerax" }