okular/mobile/app/android.h
Volker Krause a9540cf3ce Fix launching Okular by opening a document from the file browser
Summary:
There's two issues here:
- Activity::onCreate triggered before the C++ side was loaded, so the
  call to C++ failed (causing a crash). So delay that until we are ready.
- The static instance of URIHandler in the header caused it to duplicate
  into each translation unit, causing main.cpp to not see what android.cpp
  wrote into it.

Subscribers: okular-devel

Tags: #okular

Differential Revision: https://phabricator.kde.org/D18399
2019-02-04 18:32:04 +01:00

58 lines
2.1 KiB
C++

/*************************************************************************************
* Copyright (C) 2018 by Aleix Pol <aleixpol@kde.org> *
* *
* This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License *
* as published by the Free Software Foundation; either version 2 *
* of the License, or (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the Free Software *
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA *
*************************************************************************************/
#ifndef ANDROID_H
#define ANDROID_H
#include <QObject>
#include <QUrl>
#include <jni.h>
class URIHandler {
public:
void openUri(const QString &uri) {
m_lastUrl = uri;
}
QString m_lastUrl;
static URIHandler handler;
};
class AndroidInstance : public QObject
{
Q_OBJECT
public:
Q_SCRIPTABLE void openFile(const QString &title, const QStringList &mimes);
static void handleViewIntent();
Q_SIGNALS:
void openUri(const QUrl &uri);
};
extern "C" {
JNIEXPORT void JNICALL
Java_org_kde_something_FileClass_openUri(JNIEnv *env,
jobject /*obj*/,
jstring uri);
}
#endif