feat: Add rememberFileSaverDialog

This commit is contained in:
Myzel394 2023-08-05 15:16:09 +02:00
parent cabca2bb54
commit 35c59754b5
No known key found for this signature in database
GPG Key ID: 79CC92F37B3E1A2B

View File

@ -0,0 +1,31 @@
package app.myzel394.locationtest.ui.utils
import androidx.activity.compose.rememberLauncherForActivityResult
import androidx.activity.result.contract.ActivityResultContracts
import androidx.compose.runtime.Composable
import androidx.compose.ui.platform.LocalContext
import java.io.File
@Composable
fun rememberFileSaverDialog(mimeType: String): ((File) -> Unit) {
val context = LocalContext.current
var file: File? = null
val launcher = rememberLauncherForActivityResult(contract = ActivityResultContracts.CreateDocument(mimeType)) {
it?.let {
context.contentResolver.openOutputStream(it)?.use { outputStream ->
file!!.inputStream().use { inputStream ->
inputStream.copyTo(outputStream)
}
}
}
file = null
}
return {
file = it
launcher.launch(it.name)
}
}