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"