summaryrefslogtreecommitdiffstats
path: root/src/android
diff options
context:
space:
mode:
authorAndy Shaw <andy.shaw@qt.io>2020-03-04 13:36:27 +0100
committerAndy Shaw <andy.shaw@qt.io>2020-04-14 14:51:17 +0100
commite7eff98401723ff7e4e8d962405f9af1b53b9759 (patch)
treeb9a429ff8d3f2577d0454325ee5b61772df74d92 /src/android
parent504b37e39955f223ccd80188bd1badbd197286e1 (diff)
Android: Only check for uri permissions when it is a file or content
This amends f36b042e2b66a3ad32980b21e9fafc1bd9b0c7c1 to only check permissions for uris that are going to be local to the device itself. Other uris, such as http, https etc, should go through fine without a check. Change-Id: If05caadb6e0712d9db8f57185ef017d724d9e172 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Diffstat (limited to 'src/android')
-rw-r--r--src/android/jar/src/org/qtproject/qt5/android/QtNative.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/android/jar/src/org/qtproject/qt5/android/QtNative.java b/src/android/jar/src/org/qtproject/qt5/android/QtNative.java
index a8bf4c15e1..76ecbe043b 100644
--- a/src/android/jar/src/org/qtproject/qt5/android/QtNative.java
+++ b/src/android/jar/src/org/qtproject/qt5/android/QtNative.java
@@ -160,8 +160,13 @@ public class QtNative
private static Uri getUriWithValidPermission(Context context, String uri, String openMode)
{
try {
+ Uri parsedUri = Uri.parse(uri);
+ String scheme = parsedUri.getScheme();
+ // We only want to check permissions for files and content Uris
+ if (scheme.compareTo("file") != 0 && scheme.compareTo("content") != 0)
+ return parsedUri;
List<UriPermission> permissions = context.getContentResolver().getPersistedUriPermissions();
- String uriStr = Uri.parse(uri).getPath();
+ String uriStr = parsedUri.getPath();
for (int i = 0; i < permissions.size(); ++i) {
Uri iterUri = permissions.get(i).getUri();