android: add a proper exit from storage permission dialog

This commit is contained in:
Alibek Omarov
2026-03-25 00:50:47 +05:00
parent 9f6b571d79
commit d85d813d62

View File

@@ -60,22 +60,26 @@ class LibraryFragment : Fragment(), MenuProvider {
private fun checkStoragePermissions(): Boolean {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
if (!Environment.isExternalStorageManager())
if (!Environment.isExternalStorageManager()) {
MaterialAlertDialogBuilder(requireContext()).apply {
setTitle(R.string.file_access_required)
setMessage(R.string.file_access_message)
setPositiveButton(android.R.string.ok) { _, _ ->
setPositiveButton(R.string.open_settings) { _, _ ->
startActivityForResult.launch(
Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION).setData(
Uri.fromParts("package", BuildConfig.APPLICATION_ID, null)
)
)
}
setNeutralButton(R.string.done_check_permissions) { dialog, _ ->
checkStoragePermissions()
}
setCancelable(false)
show()
return false
} else {
}
} else {
return true
}
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
@@ -94,7 +98,7 @@ class LibraryFragment : Fragment(), MenuProvider {
MaterialAlertDialogBuilder(requireContext()).apply {
setTitle(R.string.external_storage_required)
setMessage(R.string.external_storage_message)
setPositiveButton(android.R.string.ok) { _, _ ->
setPositiveButton(R.string.open_settings) { _, _ ->
if (showRationale) {
requestPermissionLauncher.launch(permissionsNeeded)
} else {
@@ -106,6 +110,9 @@ class LibraryFragment : Fragment(), MenuProvider {
startActivity(intent)
}
}
setNeutralButton(R.string.done_check_permissions) { _, _ ->
checkStoragePermissions()
}
setCancelable(false)
show()
}