mirror of
https://github.com/revanced/revanced-manager-compose-old.git
synced 2025-05-02 15:34:26 +02:00
feat(PermissionsDialog): reusable dialog (#19)
This commit is contained in:
parent
d25b67ceef
commit
a0f7e89e7c
@ -30,54 +30,44 @@ fun PermissionsDialog() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("NewApi")
|
|
||||||
@Composable
|
@Composable
|
||||||
fun AllFilesAccess() {
|
private fun PermissionsAlertDialog(onSuccess: () -> Unit) {
|
||||||
var hasAccess by remember { mutableStateOf(Environment.isExternalStorageManager()) }
|
|
||||||
if (!hasAccess) {
|
|
||||||
AlertDialog(onDismissRequest = {}, shape = RoundedCornerShape(12.dp), title = {
|
AlertDialog(onDismissRequest = {}, shape = RoundedCornerShape(12.dp), title = {
|
||||||
Text(stringResource(id = R.string.permissions))
|
Text(stringResource(R.string.permissions))
|
||||||
}, text = {
|
}, text = {
|
||||||
Text(stringResource(R.string.permission_request))
|
Text(stringResource(R.string.permission_request))
|
||||||
}, confirmButton = {
|
}, confirmButton = {
|
||||||
val launcher =
|
TextButton(onClick = onSuccess) {
|
||||||
rememberLauncherForActivityResult(ActivityResultContracts.StartActivityForResult()) {
|
Text(stringResource(R.string.ok))
|
||||||
if (Environment.isExternalStorageManager()) {
|
|
||||||
hasAccess = true
|
|
||||||
}
|
}
|
||||||
|
}, properties = DialogProperties(
|
||||||
|
dismissOnBackPress = false, dismissOnClickOutside = false
|
||||||
|
))
|
||||||
}
|
}
|
||||||
TextButton(onClick = {
|
|
||||||
|
@SuppressLint("NewApi")
|
||||||
|
@Composable
|
||||||
|
private fun AllFilesAccess() {
|
||||||
|
var hasAccess by remember { mutableStateOf(Environment.isExternalStorageManager()) }
|
||||||
|
val launcher = rememberLauncherForActivityResult(ActivityResultContracts.StartActivityForResult()) {
|
||||||
|
hasAccess = Environment.isExternalStorageManager()
|
||||||
|
}
|
||||||
|
if (!hasAccess) PermissionsAlertDialog {
|
||||||
Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION)
|
Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION)
|
||||||
.setData("package:${BuildConfig.APPLICATION_ID}".toUri())
|
.setData("package:${BuildConfig.APPLICATION_ID}".toUri())
|
||||||
.let { launcher.launch(it) }
|
.let { launcher.launch(it) }
|
||||||
}) {
|
|
||||||
Text(text = stringResource(R.string.ok))
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@OptIn(ExperimentalPermissionsApi::class)
|
@OptIn(ExperimentalPermissionsApi::class)
|
||||||
@Composable
|
@Composable
|
||||||
fun StoragePermission() {
|
private fun StoragePermission() {
|
||||||
val permission = rememberMultiplePermissionsState(
|
val permission = rememberMultiplePermissionsState(
|
||||||
listOf(
|
listOf(
|
||||||
android.Manifest.permission.READ_EXTERNAL_STORAGE,
|
android.Manifest.permission.READ_EXTERNAL_STORAGE,
|
||||||
android.Manifest.permission.WRITE_EXTERNAL_STORAGE
|
android.Manifest.permission.WRITE_EXTERNAL_STORAGE
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
if (!permission.allPermissionsGranted) {
|
if (!permission.allPermissionsGranted)
|
||||||
AlertDialog(onDismissRequest = {}, shape = RoundedCornerShape(12.dp), title = {
|
PermissionsAlertDialog(permission::launchMultiplePermissionRequest)
|
||||||
Text(stringResource(id = R.string.permissions))
|
|
||||||
}, text = {
|
|
||||||
R.string.permission_request
|
|
||||||
}, confirmButton = {
|
|
||||||
TextButton(onClick = permission::launchMultiplePermissionRequest) {
|
|
||||||
Text(text = stringResource(R.string.ok))
|
|
||||||
}
|
|
||||||
}, properties = DialogProperties(
|
|
||||||
dismissOnBackPress = false, dismissOnClickOutside = false
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user