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 "android.h"
|
||||||
#include <QAndroidJniEnvironment>
|
#include <QCoreApplication>
|
||||||
#include <QAndroidJniObject>
|
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
#include <QJniEnvironment>
|
||||||
|
#include <QJniObject>
|
||||||
#include <QStringList>
|
#include <QStringList>
|
||||||
#include <QtAndroid>
|
|
||||||
|
|
||||||
URIHandler URIHandler::handler;
|
URIHandler URIHandler::handler;
|
||||||
static AndroidInstance *s_instance = nullptr;
|
static AndroidInstance *s_instance = nullptr;
|
||||||
|
@ -17,25 +17,24 @@ static AndroidInstance *s_instance = nullptr;
|
||||||
void AndroidInstance::openFile(const QString &title, const QStringList &mimes)
|
void AndroidInstance::openFile(const QString &title, const QStringList &mimes)
|
||||||
{
|
{
|
||||||
s_instance = this;
|
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());
|
Q_ASSERT(activity.isValid());
|
||||||
|
|
||||||
QAndroidJniEnvironment _env;
|
QJniEnvironment _env;
|
||||||
QAndroidJniObject::callStaticMethod<void>("org/kde/something/OpenFileActivity",
|
QJniObject::callStaticMethod<void>("org/kde/something/OpenFileActivity",
|
||||||
"openFile",
|
"openFile",
|
||||||
"(Landroid/app/Activity;Ljava/lang/String;Ljava/lang/String;)V",
|
"(Landroid/app/Activity;Ljava/lang/String;Ljava/lang/String;)V",
|
||||||
activity.object<jobject>(),
|
activity.object<jobject>(),
|
||||||
QAndroidJniObject::fromString(title).object<jstring>(),
|
QJniObject::fromString(title).object<jstring>(),
|
||||||
QAndroidJniObject::fromString(mimes.join(QLatin1Char(';'))).object<jstring>());
|
QJniObject::fromString(mimes.join(QLatin1Char(';'))).object<jstring>());
|
||||||
if (_env->ExceptionCheck()) {
|
if (_env.checkAndClearExceptions()) {
|
||||||
_env->ExceptionClear();
|
|
||||||
qWarning() << "couldn't launch intent";
|
qWarning() << "couldn't launch intent";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AndroidInstance::handleViewIntent()
|
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)
|
void Java_org_kde_something_FileClass_openUri(JNIEnv *env, jobject /*obj*/, jstring uri)
|
||||||
|
|
|
@ -10,8 +10,8 @@
|
||||||
#include <QQmlEngine>
|
#include <QQmlEngine>
|
||||||
|
|
||||||
#ifdef Q_OS_ANDROID
|
#ifdef Q_OS_ANDROID
|
||||||
#include <QAndroidJniObject>
|
#include <QCoreApplication>
|
||||||
#include <QtAndroid>
|
#include <QJniObject>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <core/bookmarkmanager.h>
|
#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 &
|
QUrl realUrl = url; // NOLINT(performance-unnecessary-copy-initialization) because of the ifdef below this can't be const &
|
||||||
|
|
||||||
#ifdef Q_OS_ANDROID
|
#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
|
#endif
|
||||||
|
|
||||||
const QString path = realUrl.isLocalFile() ? realUrl.toLocalFile() : QStringLiteral("-");
|
const QString path = realUrl.isLocalFile() ? realUrl.toLocalFile() : QStringLiteral("-");
|
||||||
|
|
Loading…
Reference in a new issue