diff options
author | Assam Boudjelthia <assam.boudjelthia@qt.io> | 2021-02-10 20:06:09 +0200 |
---|---|---|
committer | Assam Boudjelthia <assam.boudjelthia@qt.io> | 2021-02-20 22:53:05 +0200 |
commit | 255459250d450286a8c5c492dab3f6d3652171c9 (patch) | |
tree | eba80911d7e278bdd123a9733c7f75a73d6ac004 /src/plugins/platforms | |
parent | 4c6579eacded086ad014b0fd2432095362c1d131 (diff) |
Add QAndroidApplication as a nativeInterface
QAndroidApplication provides the Android specific app context() and
isActivityContext() to determine whether the context is an Activity or
otherwise a Service.
Task-number: QTBUG-90499
Change-Id: Iae2eef7ec44859a89825b09f52f09506b20b5420
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Diffstat (limited to 'src/plugins/platforms')
-rw-r--r-- | src/plugins/platforms/android/androidcontentfileengine.cpp | 23 | ||||
-rw-r--r-- | src/plugins/platforms/android/qandroidplatformservices.cpp | 6 |
2 files changed, 17 insertions, 12 deletions
diff --git a/src/plugins/platforms/android/androidcontentfileengine.cpp b/src/plugins/platforms/android/androidcontentfileengine.cpp index 149bc1139d..9cea454c16 100644 --- a/src/plugins/platforms/android/androidcontentfileengine.cpp +++ b/src/plugins/platforms/android/androidcontentfileengine.cpp @@ -1,6 +1,7 @@ /**************************************************************************** ** ** Copyright (C) 2019 Volker Krause <vkrause@kde.org> +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the plugins of the Qt Toolkit. @@ -39,12 +40,14 @@ #include "androidcontentfileengine.h" -#include <QtCore/QJniEnvironment> -#include <QtCore/QJniObject> -#include <private/qjnihelpers_p.h> +#include <QtCore/qcoreapplication.h> +#include <QtCore/qjnienvironment.h> +#include <QtCore/qjniobject.h> #include <QDebug> +using namespace QNativeInterface; + AndroidContentFileEngine::AndroidContentFileEngine(const QString &f) : m_file(f) { @@ -69,7 +72,7 @@ bool AndroidContentFileEngine::open(QIODevice::OpenMode openMode) const auto fd = QJniObject::callStaticMethod<jint>("org/qtproject/qt/android/QtNative", "openFdForContentUrl", "(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)I", - QtAndroidPrivate::context(), + QAndroidApplication::context(), QJniObject::fromString(fileName(DefaultName)).object(), QJniObject::fromString(openModeStr).object()); @@ -84,7 +87,7 @@ qint64 AndroidContentFileEngine::size() const { const jlong size = QJniObject::callStaticMethod<jlong>( "org/qtproject/qt/android/QtNative", "getSize", - "(Landroid/content/Context;Ljava/lang/String;)J", QtAndroidPrivate::context(), + "(Landroid/content/Context;Ljava/lang/String;)J", QAndroidApplication::context(), QJniObject::fromString(fileName(DefaultName)).object()); return (qint64)size; } @@ -95,12 +98,12 @@ AndroidContentFileEngine::FileFlags AndroidContentFileEngine::fileFlags(FileFlag FileFlags flags; const bool isDir = QJniObject::callStaticMethod<jboolean>( "org/qtproject/qt/android/QtNative", "checkIfDir", - "(Landroid/content/Context;Ljava/lang/String;)Z", QtAndroidPrivate::context(), + "(Landroid/content/Context;Ljava/lang/String;)Z", QAndroidApplication::context(), QJniObject::fromString(fileName(DefaultName)).object()); // If it is a directory then we know it exists so there is no reason to explicitly check const bool exists = isDir ? true : QJniObject::callStaticMethod<jboolean>( "org/qtproject/qt/android/QtNative", "checkFileExists", - "(Landroid/content/Context;Ljava/lang/String;)Z", QtAndroidPrivate::context(), + "(Landroid/content/Context;Ljava/lang/String;)Z", QAndroidApplication::context(), QJniObject::fromString(fileName(DefaultName)).object()); if (!exists && !isDir) return flags; @@ -110,7 +113,7 @@ AndroidContentFileEngine::FileFlags AndroidContentFileEngine::fileFlags(FileFlag flags = FileType | commonFlags; const bool writable = QJniObject::callStaticMethod<jboolean>( "org/qtproject/qt/android/QtNative", "checkIfWritable", - "(Landroid/content/Context;Ljava/lang/String;)Z", QtAndroidPrivate::context(), + "(Landroid/content/Context;Ljava/lang/String;)Z", QAndroidApplication::context(), QJniObject::fromString(fileName(DefaultName)).object()); if (writable) flags |= WriteOwnerPerm|WriteUserPerm|WriteGroupPerm|WriteOtherPerm; @@ -186,13 +189,13 @@ bool AndroidContentFileEngineIterator::hasNext() const const bool isDir = QJniObject::callStaticMethod<jboolean>( "org/qtproject/qt/android/QtNative", "checkIfDir", "(Landroid/content/Context;Ljava/lang/String;)Z", - QtAndroidPrivate::context(), + QAndroidApplication::context(), QJniObject::fromString(path()).object()); if (isDir) { QJniObject objArray = QJniObject::callStaticObjectMethod("org/qtproject/qt/android/QtNative", "listContentsFromTreeUri", "(Landroid/content/Context;Ljava/lang/String;)[Ljava/lang/String;", - QtAndroidPrivate::context(), + QAndroidApplication::context(), QJniObject::fromString(path()).object()); if (objArray.isValid()) { QJniEnvironment env; diff --git a/src/plugins/platforms/android/qandroidplatformservices.cpp b/src/plugins/platforms/android/qandroidplatformservices.cpp index b5f829d3d3..36e1aef609 100644 --- a/src/plugins/platforms/android/qandroidplatformservices.cpp +++ b/src/plugins/platforms/android/qandroidplatformservices.cpp @@ -1,6 +1,7 @@ /**************************************************************************** ** ** Copyright (C) 2012 BogDan Vatra <bogdan@kde.org> +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the plugins of the Qt Toolkit. @@ -44,7 +45,7 @@ #include <QMimeDatabase> #include <QUrl> #include <QtCore/QJniObject> -#include <private/qjnihelpers_p.h> +#include <QtCore/qcoreapplication.h> QT_BEGIN_NAMESPACE @@ -67,12 +68,13 @@ bool QAndroidPlatformServices::openUrl(const QUrl &theUrl) mime = mimeDb.mimeTypeForUrl(url).name(); } + using namespace QNativeInterface; QJniObject urlString = QJniObject::fromString(url.toString()); QJniObject mimeString = QJniObject::fromString(mime); return QJniObject::callStaticMethod<jboolean>( QtAndroid::applicationClass(), "openURL", "(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)Z", - QtAndroidPrivate::context(), urlString.object(), mimeString.object()); + QAndroidApplication::context(), urlString.object(), mimeString.object()); } bool QAndroidPlatformServices::openDocument(const QUrl &url) |