From db2e7e79c450b19fe79da383075f57f9a42490f5 Mon Sep 17 00:00:00 2001 From: Ritika Pahwa Date: Sun, 17 Aug 2025 12:58:43 +0530 Subject: [PATCH] Handle SecurityException for other upload methods --- .../main/java/fr/free/nrw/commons/filepicker/FilePicker.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/filepicker/FilePicker.kt b/app/src/main/java/fr/free/nrw/commons/filepicker/FilePicker.kt index e71e502f0..48d05f453 100644 --- a/app/src/main/java/fr/free/nrw/commons/filepicker/FilePicker.kt +++ b/app/src/main/java/fr/free/nrw/commons/filepicker/FilePicker.kt @@ -297,8 +297,7 @@ object FilePicker : Constants { */ private fun takePersistableUriPermissions(context: Context, result: ActivityResult) { result.data?.let { intentData -> - val takeFlags: Int = (Intent.FLAG_GRANT_READ_URI_PERMISSION - or Intent.FLAG_GRANT_WRITE_URI_PERMISSION) + val takeFlags: Int = (Intent.FLAG_GRANT_READ_URI_PERMISSION) // Persist the URI permission for all URIs in the clip data // if multiple images are selected, // or for the single URI if only one image is selected @@ -324,6 +323,7 @@ object FilePicker : Constants { callbacks: Callbacks ) { if (result.resultCode == Activity.RESULT_OK) { + takePersistableUriPermissions(activity, result) try { val files = getFilesFromCustomSelector(result.data, activity) callbacks.onImagesPicked(files, ImageSource.CUSTOM_SELECTOR, restoreType(activity)) @@ -368,6 +368,7 @@ object FilePicker : Constants { callbacks: Callbacks ) { if (result.resultCode == Activity.RESULT_OK && !isPhoto(result.data)) { + takePersistableUriPermissions(activity, result) try { val files = getFilesFromGalleryPictures(result.data, activity) callbacks.onImagesPicked(files, ImageSource.GALLERY, restoreType(activity)) @@ -414,6 +415,7 @@ object FilePicker : Constants { callbacks: Callbacks ) { if (activityResult.resultCode == Activity.RESULT_OK) { + takePersistableUriPermissions(activity, activityResult) try { val lastImageUri = PreferenceManager.getDefaultSharedPreferences(activity) .getString(KEY_PHOTO_URI, null)