Skip to content

Instantly share code, notes, and snippets.

View MyricSeptember's full-sized avatar

Myric September MyricSeptember

View GitHub Profile
scannerLauncher =
rememberLauncherForActivityResult(contract = ActivityResultContracts.StartIntentSenderForResult(),
onResult = { activityResult ->
val resultCode = activityResult.resultCode
val result = GmsDocumentScanningResult.fromActivityResultIntent(
activityResult.data
)
when (resultCode) {
RESULT_OK -> {
@MyricSeptember
MyricSeptember / ScannerOptionsBuilder.kt
Last active March 19, 2024 17:37
Scanner Options Builder
return GmsDocumentScannerOptions.Builder()
.setScannerMode(GmsDocumentScannerOptions.SCANNER_MODE_FULL)
.setGalleryImportAllowed(true)
.setPageLimit(numberOfPages.toInt())
.setResultFormats(
GmsDocumentScannerOptions.RESULT_FORMAT_JPEG,
GmsDocumentScannerOptions.RESULT_FORMAT_PDF
).build()
@MyricSeptember
MyricSeptember / LaunchActivityForResult.kt
Created March 19, 2024 13:33
Launch Activity For Result
var pages by remember {
mutableStateOf<List<Uri>>(emptyList())
}
scannerLauncher =
rememberLauncherForActivityResult(contract = ActivityResultContracts.StartIntentSenderForResult(),
onResult = { activityResult ->
val resultCode = activityResult.resultCode
val result = GmsDocumentScanningResult.fromActivityResultIntent(
activityResult.data
@MyricSeptember
MyricSeptember / SavePDF.kt
Created March 19, 2024 13:31
Load and save PDF
result?.pdf?.let { pdf ->
val fileOutputStream = FileOutputStream(
File(
filesDir,
"$documentName.pdf"
)
)
contentResolver.openInputStream(pdf.uri).use {
it?.copyTo(fileOutputStream)
}
@MyricSeptember
MyricSeptember / ScannerLauncher.kt
Created March 19, 2024 13:29
Scanner Launcher
val options = configureDucumentScannerOptions()
val scanner = GmsDocumentScanning.getClient(options)
scanner.getStartScanIntent(this@MainActivity).addOnSuccessListener {
scannerLauncher.launch(
IntentSenderRequest.Builder(it).build()
)
}.addOnFailureListener {
it.message?.let { errorMessage -> showToast(errorMessage) }
}
scanner.getStartScanIntent(this@MainActivity).addOnSuccessListener {
scannerLauncher.launch(
IntentSenderRequest.Builder(it).build()
)
}.addOnFailureListener {
it.message?.let { errorMessage -> showToast(errorMessage) }
}
composable(route = CountryScreens.HomeScreen.route) {
HomeScreen(navController = navController)
}
composable(route = CountryScreens.DetailScreen.route) {
DetailScreen(navController = navController)
}
composable(route = CountryScreens.HomeScreen.route) {
HomeScreen()
}
composable(route = CountryScreens.DetailScreen.route) {
DetailScreen()
}
setContent {
CountriesApp {
Navigation()
}
}
@MyricSeptember
MyricSeptember / DetailScreen().kt
Created January 27, 2022 15:08
Shows how the implementation of the toolbar show look like
TopAppBar(backgroundColor = Color.Transparent, elevation = 0.dp) {
Row(
horizontalArrangement = Arrangement.Start,
modifier = Modifier.padding(start = 8.dp)
) {
Icon(
imageVector = Icons.Default.ArrowBack,
contentDescription = "Arrow Back",
modifier = Modifier.clickable {
navController.popBackStack()