[Android] Fix crash when opening a media from outside without the file permission

Nicolas Pomepuy git at videolan.org
Tue Jan 14 10:43:40 UTC 2025


vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Tue Jan 14 08:51:00 2025 +0100| [446ff2e36594fc6a26a11b28e092a0a4c89c31ed] | committer: Nicolas Pomepuy

Fix crash when opening a media from outside without the file permission

> https://code.videolan.org/videolan/vlc-android/commit/446ff2e36594fc6a26a11b28e092a0a4c89c31ed
---

 .../videolan/vlc/gui/helpers/hf/StoragePermissionsDelegate.kt | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/application/vlc-android/src/org/videolan/vlc/gui/helpers/hf/StoragePermissionsDelegate.kt b/application/vlc-android/src/org/videolan/vlc/gui/helpers/hf/StoragePermissionsDelegate.kt
index 12b843cfa8..357626bafa 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/helpers/hf/StoragePermissionsDelegate.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/helpers/hf/StoragePermissionsDelegate.kt
@@ -46,7 +46,12 @@ import org.videolan.resources.EXTRA_UPGRADE
 import org.videolan.resources.SCHEME_PACKAGE
 import org.videolan.resources.util.isExternalStorageManager
 import org.videolan.resources.util.startMedialibrary
-import org.videolan.tools.*
+import org.videolan.tools.INITIAL_PERMISSION_ASKED
+import org.videolan.tools.KEY_TV_ONBOARDING_DONE
+import org.videolan.tools.Settings
+import org.videolan.tools.isCallable
+import org.videolan.tools.putSingle
+import org.videolan.vlc.StartActivity
 import org.videolan.vlc.gui.dialogs.PermissionListDialog
 import org.videolan.vlc.gui.onboarding.ONBOARDING_DONE_KEY
 import org.videolan.vlc.util.FileUtils
@@ -54,6 +59,7 @@ import org.videolan.vlc.util.Permissions
 import org.videolan.vlc.util.Permissions.canReadStorage
 import videolan.org.commontools.LiveEvent
 
+
 private const val WRITE_ACCESS = "write"
 private const val WITH_DIALOG = "with_dialog"
 private const val ONLY_MEDIA = "only_media"
@@ -135,7 +141,8 @@ class StoragePermissionsDelegate : BaseHeadlessFragment() {
             val uri = Uri.fromParts(SCHEME_PACKAGE, requireContext().packageName, null)
             val intent = Intent(android.provider.Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION, uri)
             if (intent.isCallable(requireActivity())) {
-                if (withDialog)
+                //StartActivity doesn't have the right theme for the dialog. Fallback to no dialog
+                if (withDialog && requireActivity() !is StartActivity)
                     PermissionListDialog.newInstance().show(
                         requireActivity().supportFragmentManager,
                         PermissionListDialog::class.simpleName



More information about the Android mailing list