mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 20:33:53 +01:00
Handle SecurityException in case of multi-upload
This commit is contained in:
parent
970d38ecc2
commit
556952e3b1
1 changed files with 17 additions and 4 deletions
|
|
@ -12,6 +12,7 @@ import androidx.preference.PreferenceManager
|
||||||
import fr.free.nrw.commons.customselector.model.Image
|
import fr.free.nrw.commons.customselector.model.Image
|
||||||
import fr.free.nrw.commons.customselector.ui.selector.CustomSelectorActivity
|
import fr.free.nrw.commons.customselector.ui.selector.CustomSelectorActivity
|
||||||
import fr.free.nrw.commons.filepicker.PickedFiles.singleFileList
|
import fr.free.nrw.commons.filepicker.PickedFiles.singleFileList
|
||||||
|
import timber.log.Timber
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import java.net.URISyntaxException
|
import java.net.URISyntaxException
|
||||||
|
|
@ -296,10 +297,22 @@ object FilePicker : Constants {
|
||||||
* https://github.com/commons-app/apps-android-commons/issues/6357
|
* https://github.com/commons-app/apps-android-commons/issues/6357
|
||||||
*/
|
*/
|
||||||
private fun takePersistableUriPermissions(context: Context, result: ActivityResult) {
|
private fun takePersistableUriPermissions(context: Context, result: ActivityResult) {
|
||||||
result.data?.data?.also { uri ->
|
val intent = result.data
|
||||||
val takeFlags: Int = (Intent.FLAG_GRANT_READ_URI_PERMISSION
|
val takeFlags: Int = (Intent.FLAG_GRANT_READ_URI_PERMISSION
|
||||||
or Intent.FLAG_GRANT_WRITE_URI_PERMISSION)
|
or Intent.FLAG_GRANT_WRITE_URI_PERMISSION)
|
||||||
context.contentResolver.takePersistableUriPermission(uri, takeFlags)
|
intent?.let {
|
||||||
|
val urisToPersist = mutableListOf<Uri>()
|
||||||
|
it.clipData?.let { clipData ->
|
||||||
|
for (i in 0 until clipData.itemCount) {
|
||||||
|
urisToPersist.add(clipData.getItemAt(i).uri)
|
||||||
|
}
|
||||||
|
} ?: it.data?.let { uri ->
|
||||||
|
urisToPersist.add(uri)
|
||||||
|
}
|
||||||
|
|
||||||
|
urisToPersist.forEach { uri ->
|
||||||
|
context.contentResolver.takePersistableUriPermission(uri, takeFlags)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue