[Android] PermissionDialog: fix dialog spawn loop

Duncan McNamara git at videolan.org
Fri Jan 31 09:48:57 UTC 2025


vlc-android | branch: master | Duncan McNamara <dcn.mcnamara at gmail.com> | Wed Jan 29 17:13:08 2025 +0100| [1a925f59684ad5bfef81c3bec66bd31d4406a0b9] | committer: Nicolas Pomepuy

PermissionDialog: fix dialog spawn loop

On a new install, the manageMediaPermsCheck onclicklistener will
ask for video/audio permission for API 33+, but for 30+ goes to
getStoragePermission which ends calling requestStorageAccess.
When API 30+ this will spawn a new PermissionListDialog, creating a
loop.

In the onClickListener, asking for READ_EXTERNAL_STORAGE straight away
for API 30+ solves this.

> https://code.videolan.org/videolan/vlc-android/commit/1a925f59684ad5bfef81c3bec66bd31d4406a0b9
---

 .../src/org/videolan/vlc/gui/dialogs/PermissionListDialog.kt       | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/application/vlc-android/src/org/videolan/vlc/gui/dialogs/PermissionListDialog.kt b/application/vlc-android/src/org/videolan/vlc/gui/dialogs/PermissionListDialog.kt
index abacebb1ab..d3fd596f19 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/dialogs/PermissionListDialog.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/dialogs/PermissionListDialog.kt
@@ -257,6 +257,13 @@ class PermissionListDialog : VLCBottomSheetDialogFragment() {
                         ), Permissions.FINE_STORAGE_PERMISSION_REQUEST_CODE
                     )
                     Permissions.timeAsked = System.currentTimeMillis()
+                } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
+                    ActivityCompat.requestPermissions(
+                        requireActivity(), arrayOf(
+                            Manifest.permission.READ_EXTERNAL_STORAGE,
+                        ), Permissions.FINE_STORAGE_PERMISSION_REQUEST_CODE
+                    )
+                    Permissions.timeAsked = System.currentTimeMillis()
                 } else lifecycleScope.launch {
                     requireActivity().getStoragePermission(withDialog = false, onlyMedia = true)
                 }



More information about the Android mailing list