File indexing completed on 2024-05-12 05:04:17

0001 // SPDX-FileCopyrightText: 2023 Joshua Goins <josh@redstrate.com>
0002 // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0003 
0004 #include "androidutils.h"
0005 
0006 #include <QCoreApplication>
0007 #include <QJniObject>
0008 
0009 #include <QDebug>
0010 #include <QUrl>
0011 
0012 #include "networkcontroller.h"
0013 
0014 AndroidUtils::AndroidUtils(QObject *parent)
0015     : QObject(parent)
0016 {
0017 }
0018 
0019 AndroidUtils &AndroidUtils::instance()
0020 {
0021     static AndroidUtils _instance;
0022     return _instance;
0023 }
0024 
0025 void AndroidUtils::checkPendingIntents()
0026 {
0027     QJniObject activity = QJniObject::callStaticObjectMethod("org/qtproject/qt/android/QtNative", "activity", "()Landroid/app/Activity;");
0028     Q_ASSERT(activity.isValid());
0029 
0030     QJniObject::callStaticMethod<void>("org/kde/tokodon/OpenUriActivity", "checkPendingIntents");
0031 }
0032 
0033 extern "C" {
0034 JNIEXPORT void JNICALL Java_org_kde_tokodon_AndroidUtils_openUri(JNIEnv *env, jobject obj, jstring path)
0035 {
0036     Q_UNUSED(obj)
0037     const char *pathStr = env->GetStringUTFChars(path, nullptr);
0038 
0039     NetworkController::instance().setAuthCode(QUrl(QString::fromUtf8(pathStr)));
0040     env->ReleaseStringUTFChars(path, pathStr);
0041 }
0042 }
0043 
0044 #include "moc_androidutils.cpp"