Add back the "Share" button

This commit is contained in:
Pierre-Yves Nicolas
2025-06-04 15:44:02 +02:00
parent 80381eef6c
commit a6e1d8cc51
2 changed files with 34 additions and 9 deletions

View File

@@ -54,7 +54,7 @@ class MainActivity : ComponentActivity() {
viewModel, viewModel,
onBackPressed = { viewModel.navigateTo(Screen.Camera) }, onBackPressed = { viewModel.navigateTo(Screen.Camera) },
onSavePressed = savePdf(viewModel, context), onSavePressed = savePdf(viewModel, context),
// TODO "on share" onSharePressed = sharePdf(viewModel, context),
) )
} }
} }
@@ -64,11 +64,13 @@ class MainActivity : ComponentActivity() {
} }
} }
/* private fun sharePdf(
private fun createPdfAndShare(context: Context): (Bitmap) -> Unit = { bitmap -> viewModel: MainViewModel,
context: Context
): () -> Unit = {
val document = viewModel.createPdf()
val outputDir = File(cacheDir, "pdfs").apply { mkdirs() } val outputDir = File(cacheDir, "pdfs").apply { mkdirs() }
val outputFile = File(outputDir, "scan_${System.currentTimeMillis()}.pdf") val outputFile = File(outputDir, "scan_${System.currentTimeMillis()}.pdf")
val document = createPdfFromBitmaps(listOf(bitmap))
var success = true var success = true
try { try {
FileOutputStream(outputFile).use { outputStream -> FileOutputStream(outputFile).use { outputStream ->
@@ -94,7 +96,6 @@ class MainActivity : ComponentActivity() {
startActivity(Intent.createChooser(shareIntent, "Share PDF")) startActivity(Intent.createChooser(shareIntent, "Share PDF"))
} }
} }
*/
private fun savePdf( private fun savePdf(
viewModel: MainViewModel, viewModel: MainViewModel,

View File

@@ -5,13 +5,21 @@ import androidx.compose.foundation.border
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.FlowRow import androidx.compose.foundation.layout.FlowRow
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding 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.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.ArrowBack import androidx.compose.material.icons.automirrored.filled.ArrowBack
import androidx.compose.material.icons.filled.Share
import androidx.compose.material3.BottomAppBar
import androidx.compose.material3.Button import androidx.compose.material3.Button
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon import androidx.compose.material3.Icon
@@ -38,7 +46,8 @@ import org.mydomain.myscan.MainViewModel
fun FinalizeDocumentScreen( fun FinalizeDocumentScreen(
viewModel: MainViewModel = viewModel(), viewModel: MainViewModel = viewModel(),
onBackPressed: () -> Unit, onBackPressed: () -> Unit,
onSavePressed: () -> Unit onSavePressed: () -> Unit,
onSharePressed: () -> Unit,
) { ) {
val pageIds by viewModel.pageIds.collectAsStateWithLifecycle() val pageIds by viewModel.pageIds.collectAsStateWithLifecycle()
Scaffold ( Scaffold (
@@ -50,16 +59,31 @@ fun FinalizeDocumentScreen(
Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back") Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back")
} }
}, },
actions = { )
},
bottomBar = {
BottomAppBar(
contentPadding = PaddingValues(horizontal = 16.dp, vertical = 8.dp)
) {
Row(
modifier = Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.SpaceEvenly
) {
Button(onClick = onSharePressed) {
Icon(Icons.Default.Share, contentDescription = "Share")
Spacer(Modifier.width(8.dp))
Text("Share")
}
Button(onClick = onSavePressed) { Button(onClick = onSavePressed) {
Text(text = "Save PDF") Text("Save")
} }
} }
) }
} }
) { padding -> ) { padding ->
Column(modifier = Modifier Column(modifier = Modifier
.fillMaxSize() .fillMaxSize()
.verticalScroll(rememberScrollState())
.padding(padding)) { .padding(padding)) {
Text( Text(