Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qjnihelpers.cpp File Reference

(60506aa8b7489d8cf60cfaa357fb224d19b62e13)

#include "qjnihelpers_p.h"
#include "qjnienvironment.h"
#include "qjniobject.h"
#include "qlist.h"
#include "qmutex.h"
#include "qsemaphore.h"
#include "qreadwritelock.h"
#include <QtCore/private/qcoreapplication_p.h>
#include <QtCore/private/qlocking_p.h>
#include <android/log.h>
#include <deque>
#include <memory>
Include dependency graph for qjnihelpers.cpp:

Go to the source code of this file.

Namespaces

namespace  QtAndroidPrivate
 \preliminary \inmodule QtCorePrivate

Functions

QT_BEGIN_NAMESPACE Q_DECLARE_JNI_CLASS (QtInputDelegate, "org/qtproject/qt/android/QtInputDelegate")
 Q_DECLARE_JNI_CLASS (MotionEvent, "android/view/MotionEvent")
 Q_DECLARE_JNI_CLASS (KeyEvent, "android/view/KeyEvent")
 Q_GLOBAL_STATIC (QSemaphore, g_waitForServiceSetupSemaphore)
 Q_GLOBAL_STATIC (QReadWriteLock, g_updateMutex)
static jboolean updateNativeActivity (JNIEnv *env, jclass=nullptr)
static jboolean dispatchGenericMotionEvent (JNIEnv *, jclass, QtJniTypes::MotionEvent event)
 Q_DECLARE_JNI_NATIVE_METHOD (dispatchGenericMotionEvent)
static jboolean dispatchKeyEvent (JNIEnv *, jclass, QtJniTypes::KeyEvent event)
 Q_DECLARE_JNI_NATIVE_METHOD (dispatchKeyEvent)
Q_CORE_EXPORT jobject qt_androidActivity ()
Q_CORE_EXPORT jobject qt_androidService ()
QT_END_NAMESPACE JNIEXPORT jint JNICALL JNI_OnLoad (JavaVM *vm, void *reserved)

Variables

static JavaVM * g_javaVM = nullptr
static jobject g_jActivity = nullptr
static jobject g_jService = nullptr
static jobject g_jClassLoader = nullptr
static Q_CONSTINIT QtAndroidPrivate::OnBindListenerg_onBindListener
static Q_CONSTINIT QBasicMutex g_onBindListenerMutex
static Q_CONSTINIT QBasicAtomicInt g_serviceSetupLockers = Q_BASIC_ATOMIC_INITIALIZER(0)
static Q_CONSTINIT QBasicAtomicInt g_androidDeadlockProtector = Q_BASIC_ATOMIC_INITIALIZER(0)

Function Documentation

◆ dispatchGenericMotionEvent()

jboolean dispatchGenericMotionEvent ( JNIEnv * ,
jclass ,
QtJniTypes::MotionEvent event )
static

Definition at line 164 of file qjnihelpers.cpp.

◆ dispatchKeyEvent()

jboolean dispatchKeyEvent ( JNIEnv * ,
jclass ,
QtJniTypes::KeyEvent event )
static

Definition at line 183 of file qjnihelpers.cpp.

◆ JNI_OnLoad()

Q_DECL_EXPORT jint JNICALL JNI_OnLoad ( JavaVM * vm,
void * reserved )

Definition at line 481 of file qjnihelpers.cpp.

◆ Q_DECLARE_JNI_CLASS() [1/3]

Q_DECLARE_JNI_CLASS ( KeyEvent ,
"android/view/KeyEvent"  )

◆ Q_DECLARE_JNI_CLASS() [2/3]

Q_DECLARE_JNI_CLASS ( MotionEvent ,
"android/view/MotionEvent"  )

◆ Q_DECLARE_JNI_CLASS() [3/3]

QT_BEGIN_NAMESPACE Q_DECLARE_JNI_CLASS ( QtInputDelegate ,
"org/qtproject/qt/android/QtInputDelegate"  )

◆ Q_DECLARE_JNI_NATIVE_METHOD() [1/2]

Q_DECLARE_JNI_NATIVE_METHOD ( dispatchGenericMotionEvent )

◆ Q_DECLARE_JNI_NATIVE_METHOD() [2/2]

Q_DECLARE_JNI_NATIVE_METHOD ( dispatchKeyEvent )

◆ Q_GLOBAL_STATIC() [1/2]

Q_GLOBAL_STATIC ( QReadWriteLock ,
g_updateMutex  )

◆ Q_GLOBAL_STATIC() [2/2]

Q_GLOBAL_STATIC ( QSemaphore ,
g_waitForServiceSetupSemaphore  )

◆ qt_androidActivity()

Q_CORE_EXPORT jobject qt_androidActivity ( )

Definition at line 366 of file qjnihelpers.cpp.

◆ qt_androidService()

Q_CORE_EXPORT jobject qt_androidService ( )

Definition at line 379 of file qjnihelpers.cpp.

◆ updateNativeActivity()

jboolean updateNativeActivity ( JNIEnv * env,
jclass = nullptr )
static

Definition at line 54 of file qjnihelpers.cpp.

References g_jActivity.

Variable Documentation

◆ g_androidDeadlockProtector

Q_CONSTINIT QBasicAtomicInt g_androidDeadlockProtector = Q_BASIC_ATOMIC_INITIALIZER(0)
static

Definition at line 445 of file qjnihelpers.cpp.

◆ g_jActivity

jobject g_jActivity = nullptr
static

Definition at line 43 of file qjnihelpers.cpp.

Referenced by QtAndroidPrivate::context(), and updateNativeActivity().

◆ g_javaVM

JavaVM * g_javaVM = nullptr
static

Definition at line 42 of file qjnihelpers.cpp.

◆ g_jClassLoader

jobject g_jClassLoader = nullptr
static

Definition at line 45 of file qjnihelpers.cpp.

◆ g_jService

jobject g_jService = nullptr
static

Definition at line 44 of file qjnihelpers.cpp.

Referenced by QtAndroidPrivate::context().

◆ g_onBindListener

Q_CONSTINIT QtAndroidPrivate::OnBindListener * g_onBindListener
static

Definition at line 47 of file qjnihelpers.cpp.

◆ g_onBindListenerMutex

Q_CONSTINIT QBasicMutex g_onBindListenerMutex
static

Definition at line 48 of file qjnihelpers.cpp.

◆ g_serviceSetupLockers

Q_CONSTINIT QBasicAtomicInt g_serviceSetupLockers = Q_BASIC_ATOMIC_INITIALIZER(0)
static

Definition at line 50 of file qjnihelpers.cpp.