mirror of
https://invent.kde.org/graphics/okular
synced 2024-10-02 14:14:10 +00:00
Blind port android. Thanks Volker
This commit is contained in:
parent
1bdd1fa7e2
commit
fee0380fab
|
@ -5,11 +5,11 @@
|
|||
*/
|
||||
|
||||
#include "android.h"
|
||||
#include <QAndroidJniEnvironment>
|
||||
#include <QAndroidJniObject>
|
||||
#include <QCoreApplication>
|
||||
#include <QDebug>
|
||||
#include <QJniEnvironment>
|
||||
#include <QJniObject>
|
||||
#include <QStringList>
|
||||
#include <QtAndroid>
|
||||
|
||||
URIHandler URIHandler::handler;
|
||||
static AndroidInstance *s_instance = nullptr;
|
||||
|
@ -17,25 +17,24 @@ static AndroidInstance *s_instance = nullptr;
|
|||
void AndroidInstance::openFile(const QString &title, const QStringList &mimes)
|
||||
{
|
||||
s_instance = this;
|
||||
QAndroidJniObject activity = QAndroidJniObject::callStaticObjectMethod("org/qtproject/qt5/android/QtNative", "activity", "()Landroid/app/Activity;"); // activity is valid
|
||||
QJniObject activity = QJniObject::callStaticObjectMethod("org/qtproject/qt5/android/QtNative", "activity", "()Landroid/app/Activity;"); // activity is valid
|
||||
Q_ASSERT(activity.isValid());
|
||||
|
||||
QAndroidJniEnvironment _env;
|
||||
QAndroidJniObject::callStaticMethod<void>("org/kde/something/OpenFileActivity",
|
||||
QJniEnvironment _env;
|
||||
QJniObject::callStaticMethod<void>("org/kde/something/OpenFileActivity",
|
||||
"openFile",
|
||||
"(Landroid/app/Activity;Ljava/lang/String;Ljava/lang/String;)V",
|
||||
activity.object<jobject>(),
|
||||
QAndroidJniObject::fromString(title).object<jstring>(),
|
||||
QAndroidJniObject::fromString(mimes.join(QLatin1Char(';'))).object<jstring>());
|
||||
if (_env->ExceptionCheck()) {
|
||||
_env->ExceptionClear();
|
||||
QJniObject::fromString(title).object<jstring>(),
|
||||
QJniObject::fromString(mimes.join(QLatin1Char(';'))).object<jstring>());
|
||||
if (_env.checkAndClearExceptions()) {
|
||||
qWarning() << "couldn't launch intent";
|
||||
}
|
||||
}
|
||||
|
||||
void AndroidInstance::handleViewIntent()
|
||||
{
|
||||
QtAndroid::androidActivity().callMethod<void>("handleViewIntent", "()V");
|
||||
QJniObject(QNativeInterface::QAndroidApplication::context()).callMethod<void>("handleViewIntent", "()V");
|
||||
}
|
||||
|
||||
void Java_org_kde_something_FileClass_openUri(JNIEnv *env, jobject /*obj*/, jstring uri)
|
||||
|
|
|
@ -10,8 +10,8 @@
|
|||
#include <QQmlEngine>
|
||||
|
||||
#ifdef Q_OS_ANDROID
|
||||
#include <QAndroidJniObject>
|
||||
#include <QtAndroid>
|
||||
#include <QCoreApplication>
|
||||
#include <QJniObject>
|
||||
#endif
|
||||
|
||||
#include <core/bookmarkmanager.h>
|
||||
|
@ -61,7 +61,8 @@ void DocumentItem::openUrl(const QUrl &url, const QString &password)
|
|||
QUrl realUrl = url; // NOLINT(performance-unnecessary-copy-initialization) because of the ifdef below this can't be const &
|
||||
|
||||
#ifdef Q_OS_ANDROID
|
||||
realUrl = QUrl(QtAndroid::androidActivity().callObjectMethod("contentUrlToFd", "(Ljava/lang/String;)Ljava/lang/String;", QAndroidJniObject::fromString(url.toString(QUrl::FullyEncoded)).object<jstring>()).toString());
|
||||
realUrl =
|
||||
QUrl(QJniObject(QNativeInterface::QAndroidApplication::context()).callObjectMethod("contentUrlToFd", "(Ljava/lang/String;)Ljava/lang/String;", QJniObject::fromString(url.toString(QUrl::FullyEncoded)).object<jstring>()).toString());
|
||||
#endif
|
||||
|
||||
const QString path = realUrl.isLocalFile() ? realUrl.toLocalFile() : QStringLiteral("-");
|
||||
|
|
Loading…
Reference in a new issue