find local path of a file
This commit is contained in:
parent
46f95c9481
commit
ff825f07b5
2 changed files with 26 additions and 2 deletions
|
@ -1,7 +1,11 @@
|
||||||
package fr.uparis.diamantkennel.memorisationapplication
|
package fr.uparis.diamantkennel.memorisationapplication
|
||||||
|
|
||||||
|
import android.app.Activity
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import android.content.Intent
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
|
import androidx.activity.compose.rememberLauncherForActivityResult
|
||||||
|
import androidx.activity.result.contract.ActivityResultContracts
|
||||||
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.PaddingValues
|
import androidx.compose.foundation.layout.PaddingValues
|
||||||
|
@ -46,6 +50,7 @@ import fr.uparis.diamantkennel.memorisationapplication.ui.ActionImport
|
||||||
import fr.uparis.diamantkennel.memorisationapplication.ui.ErrorsAjout
|
import fr.uparis.diamantkennel.memorisationapplication.ui.ErrorsAjout
|
||||||
import fr.uparis.diamantkennel.memorisationapplication.ui.HomeViewModel
|
import fr.uparis.diamantkennel.memorisationapplication.ui.HomeViewModel
|
||||||
|
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun HomeScreen(padding: PaddingValues, model: HomeViewModel = viewModel()) {
|
fun HomeScreen(padding: PaddingValues, model: HomeViewModel = viewModel()) {
|
||||||
val context = LocalContext.current
|
val context = LocalContext.current
|
||||||
|
@ -215,6 +220,15 @@ fun ImportDialog(
|
||||||
|
|
||||||
var lien by remember { mutableStateOf("") }
|
var lien by remember { mutableStateOf("") }
|
||||||
|
|
||||||
|
val filePickerLauncher = rememberLauncherForActivityResult(
|
||||||
|
ActivityResultContracts.StartActivityForResult()
|
||||||
|
) { result ->
|
||||||
|
if (result.resultCode == Activity.RESULT_OK) {
|
||||||
|
val uri = result.data?.data
|
||||||
|
lien = uri?.let { it.toString() } ?: lien
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
AlertDialog(
|
AlertDialog(
|
||||||
onDismissRequest = dismiss,
|
onDismissRequest = dismiss,
|
||||||
title = { Text(text = "Importer un jeu de question") },
|
title = { Text(text = "Importer un jeu de question") },
|
||||||
|
@ -246,7 +260,13 @@ fun ImportDialog(
|
||||||
Button(
|
Button(
|
||||||
enabled = selectedOption == ActionImport.FILE,
|
enabled = selectedOption == ActionImport.FILE,
|
||||||
modifier = Modifier.padding(start = 16.dp),
|
modifier = Modifier.padding(start = 16.dp),
|
||||||
onClick = { /*TODO*/ }
|
onClick = {
|
||||||
|
filePickerLauncher.launch(
|
||||||
|
Intent(Intent.ACTION_OPEN_DOCUMENT)
|
||||||
|
.addCategory(Intent.CATEGORY_OPENABLE)
|
||||||
|
.setType("*/*")
|
||||||
|
)
|
||||||
|
}
|
||||||
) {
|
) {
|
||||||
Text(
|
Text(
|
||||||
text = "Explorateur",
|
text = "Explorateur",
|
||||||
|
@ -269,7 +289,7 @@ fun ImportDialog(
|
||||||
confirmButton = {
|
confirmButton = {
|
||||||
Button(
|
Button(
|
||||||
// TODO : on charge le jeu de question dans le sujet
|
// TODO : on charge le jeu de question dans le sujet
|
||||||
onClick = dismiss,
|
onClick = { model.import(lien) },
|
||||||
content = { Text("Importer") }
|
content = { Text("Importer") }
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
|
|
|
@ -130,4 +130,8 @@ class HomeViewModel(application: Application) : AndroidViewModel(application) {
|
||||||
fun cleanErrors() {
|
fun cleanErrors() {
|
||||||
error.value = null
|
error.value = null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun import(path: String) {
|
||||||
|
dismissImportation()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue