summaryrefslogtreecommitdiffstats
path: root/src/network/access/qnetworkaccessfilebackend.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/network/access/qnetworkaccessfilebackend.cpp')
-rw-r--r--src/network/access/qnetworkaccessfilebackend.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/network/access/qnetworkaccessfilebackend.cpp b/src/network/access/qnetworkaccessfilebackend.cpp
index a7f35815f9..13428cc802 100644
--- a/src/network/access/qnetworkaccessfilebackend.cpp
+++ b/src/network/access/qnetworkaccessfilebackend.cpp
@@ -65,7 +65,11 @@ QNetworkAccessFileBackendFactory::create(QNetworkAccessManager::Operation op,
}
QUrl url = request.url();
- if (url.scheme().compare(QLatin1String("qrc"), Qt::CaseInsensitive) == 0 || url.isLocalFile()) {
+ if (url.scheme().compare(QLatin1String("qrc"), Qt::CaseInsensitive) == 0
+#if defined(Q_OS_ANDROID)
+ || url.scheme().compare(QLatin1String("assets"), Qt::CaseInsensitive) == 0
+#endif
+ || url.isLocalFile()) {
return new QNetworkAccessFileBackend;
} else if (!url.scheme().isEmpty() && url.authority().isEmpty() && (url.scheme().length() > 1)) {
// check if QFile could, in theory, open this URL via the file engines
@@ -113,10 +117,16 @@ void QNetworkAccessFileBackend::open()
QString fileName = url.toLocalFile();
if (fileName.isEmpty()) {
- if (url.scheme() == QLatin1String("qrc"))
+ if (url.scheme() == QLatin1String("qrc")) {
fileName = QLatin1Char(':') + url.path();
- else
- fileName = url.toString(QUrl::RemoveAuthority | QUrl::RemoveFragment | QUrl::RemoveQuery);
+ } else {
+#if defined(Q_OS_ANDROID)
+ if (url.scheme() == QLatin1String("assets"))
+ fileName = QLatin1String("assets:") + url.path();
+ else
+#endif
+ fileName = url.toString(QUrl::RemoveAuthority | QUrl::RemoveFragment | QUrl::RemoveQuery);
+ }
}
file.setFileName(fileName);