diff options
author | Volker Krause <vkrause@kde.org> | 2019-01-26 18:30:56 +0100 |
---|---|---|
committer | Nicolas Fella <nicolas.fella@kdab.com> | 2019-02-13 10:31:59 +0000 |
commit | 7d2d1eb9e051ad01dc5c5c3053c58364885bdc07 (patch) | |
tree | bc8914bec29e8219582a0842688eab9a0d39d8a6 /src/android | |
parent | 8cba096c2aa181b93887fa6f6086dee689dbf5ca (diff) | |
download | qtbase-7d2d1eb9e051ad01dc5c5c3053c58364885bdc07.tar.gz |
Add file engine for Android content URLs
The "file dialog" on Android returns such URLs, which so far required
special-casing this in application code. With this change QFile can
consume those URLs directly.
Change-Id: I489c0db112cf1dc7497e7a90f0e9a79ea8fa5237
Reviewed-by: Nicolas Fella <nicolas.fella@kdab.com>
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
Diffstat (limited to 'src/android')
-rw-r--r-- | src/android/jar/src/org/qtproject/qt5/android/QtNative.java | 13 |
1 files changed, 13 insertions, 0 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 5562c010aa..c5e8a5f794 100644 --- a/src/android/jar/src/org/qtproject/qt5/android/QtNative.java +++ b/src/android/jar/src/org/qtproject/qt5/android/QtNative.java @@ -41,6 +41,7 @@ package org.qtproject.qt5.android; import java.io.File; +import java.io.FileNotFoundException; import java.util.ArrayList; import java.util.concurrent.Semaphore; @@ -59,6 +60,7 @@ import android.os.Looper; import android.content.ClipboardManager; import android.content.ClipboardManager.OnPrimaryClipChangedListener; import android.content.ClipData; +import android.os.ParcelFileDescriptor; import android.util.Log; import android.view.ContextMenu; import android.view.KeyEvent; @@ -168,6 +170,17 @@ public class QtNative return ok; } + public static int openFdForContentUrl(Context context, String contentUrl, String openMode) + { + try { + ContentResolver resolver = context.getContentResolver(); + ParcelFileDescriptor fdDesc = resolver.openFileDescriptor(Uri.parse(contentUrl), openMode); + return fdDesc.detachFd(); + } catch (FileNotFoundException e) { + return -1; + } + } + // this method loads full path libs public static void loadQtLibraries(final ArrayList<String> libraries) { |