File indexing completed on 2025-02-16 04:48:26

0001 /*
0002     SPDX-FileCopyrightText: 2019 Volker Krause <vkrause@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "activity.h"
0008 
0009 #include <KAndroidExtras/AndroidTypes>
0010 #include <KAndroidExtras/Intent>
0011 #include <KAndroidExtras/JniSignature>
0012 
0013 #include <QCoreApplication>
0014 #include <QJniEnvironment>
0015 #include "private/qandroidextras_p.h"
0016 
0017 using namespace KAndroidExtras;
0018 
0019 Intent Activity::getIntent()
0020 {
0021     const QJniObject activity = QNativeInterface::QAndroidApplication::context();
0022     if (!activity.isValid())
0023         return {};
0024 
0025     const auto intent = activity.callObjectMethod("getIntent", Jni::signature<android::content::Intent()>());
0026     return Intent(Jni::fromHandle<Intent>(intent));
0027 }
0028 
0029 bool Activity::startActivity(const Intent &intent, int receiverRequestCode)
0030 {
0031     QJniEnvironment jniEnv;
0032     QtAndroidPrivate::startActivity(intent, receiverRequestCode);
0033     if (jniEnv->ExceptionCheck()) {
0034         jniEnv->ExceptionClear();
0035         return false;
0036     }
0037     return true;
0038 }