Alex Styl
03/13/2022, 5:39 PMHumphrey
03/14/2022, 7:30 AMDragos Rachieru
03/14/2022, 9:48 AMjava.awt.FileDialog
@Composable
actual fun ImagePicker(
path: String,
onPicked: (Uri?) -> Unit
) {
val context = LocalContext.current
var target: Uri? = null
val cameraLauncher = rememberLauncherForActivityResult(
ActivityResultContracts.TakePicture()
) {
if (it) onPicked(target)
}
val galleryLauncher = rememberLauncherForActivityResult(
ActivityResultContracts.GetContent(),
onResult = onPicked
)
val cameraPermission = rememberLauncherForActivityResult(
ActivityResultContracts.RequestPermission()
) {
if (it) {
//create target for camera
target = context.createPrivateImageUri(path = path)
cameraLauncher.launch(target)
}
}
AlertDialog(
onDismissRequest = { onPicked(null) },
dismissButton = {
Button(onClick = { onPicked(null) }) {
Text("Cancel")
}
},
confirmButton = {},
title = { Text("Pick photo") },
text = {
Row(
horizontalArrangement = Arrangement.spacedBy(16.dp)
) {
Button(
modifier = Modifier.weight(1f),
onClick = { cameraPermission.launch(Manifest.permission.CAMERA) }
) {
Text("Camera")
}
Button(
modifier = Modifier.weight(1f),
onClick = { galleryLauncher.launch("image/*") }
) {
Text("Gallery")
}
}
},
backgroundColor = MaterialTheme.colorScheme.primaryContainer,
shape = RoundedCornerShape(16.dp)
)
}
Alex Styl
03/14/2022, 7:14 PMDragos Rachieru
03/16/2022, 8:44 AMfileDialog.setFile("*.jpg;*.jpeg");
Kebbin
03/19/2022, 2:57 AM