[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