Merge pull request #3439 from kiwix/Fixes#3370

Improved the permission asking scenario for custom apps
This commit is contained in:
Kelson 2023-07-26 07:44:55 +02:00 committed by GitHub
commit 8469e18e23
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -342,10 +342,25 @@ abstract class CoreReaderFragment :
// Successfully granted permission, so opening the note keeper // Successfully granted permission, so opening the note keeper
showAddNoteDialog() showAddNoteDialog()
} else { } else {
Toast.makeText( if (shouldShowRequestPermissionRationale(Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
requireActivity().applicationContext, /* shouldShowRequestPermissionRationale() returns false when:
getString(R.string.ext_storage_write_permission_denied_add_note), Toast.LENGTH_LONG * 1) User has previously checked on "Don't ask me again", and/or
).show() * 2) Permission has been disabled on device
*/
requireActivity().toast(
R.string.ext_storage_permission_rationale_add_note,
Toast.LENGTH_LONG
)
} else {
requireActivity().toast(
R.string.ext_storage_write_permission_denied_add_note,
Toast.LENGTH_LONG
)
alertDialogShower?.show(
KiwixDialog.ReadPermissionRequired,
requireActivity()::navigateToAppSettings
)
}
} }
} }
@ -1306,22 +1321,7 @@ abstract class CoreReaderFragment :
) { ) {
isPermissionGranted = true isPermissionGranted = true
} else { } else {
if (shouldShowRequestPermissionRationale(Manifest.permission.WRITE_EXTERNAL_STORAGE)) { storagePermissionForNotesLauncher?.launch(Manifest.permission.WRITE_EXTERNAL_STORAGE)
storagePermissionForNotesLauncher?.launch(Manifest.permission.WRITE_EXTERNAL_STORAGE)
/* shouldShowRequestPermissionRationale() returns false when:
* 1) User has previously checked on "Don't ask me again", and/or
* 2) Permission has been disabled on device
*/
requireActivity().toast(
R.string.ext_storage_permission_rationale_add_note,
Toast.LENGTH_LONG
)
} else {
alertDialogShower?.show(
KiwixDialog.ReadPermissionRequired,
requireActivity()::navigateToAppSettings
)
}
} }
} else { // For Android versions below Marshmallow 6.0 (API 23) } else { // For Android versions below Marshmallow 6.0 (API 23)
isPermissionGranted = true // As already requested at install time isPermissionGranted = true // As already requested at install time