Qt 6.x
The Qt SDK
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
qjnihelpers.cpp File Reference
#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

 Q_GLOBAL_STATIC (QSemaphore, g_waitForServiceSetupSemaphore)
 
 Q_GLOBAL_STATIC (QReadWriteLock, g_updateMutex)
 
static jboolean dispatchGenericMotionEvent (JNIEnv *, jclass, jobject event)
 
static jboolean dispatchKeyEvent (JNIEnv *, jclass, jobject event)
 
static jboolean updateNativeActivity (JNIEnv *env, jclass=nullptr)
 
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()

static jboolean dispatchGenericMotionEvent ( JNIEnv *  ,
jclass  ,
jobject  event 
)
static

Definition at line 53 of file qjnihelpers.cpp.

References mutex, and ret.

Referenced by QtAndroidPrivate::initJNI().

+ Here is the caller graph for this function:

◆ dispatchKeyEvent()

static jboolean dispatchKeyEvent ( JNIEnv *  ,
jclass  ,
jobject  event 
)
static

Definition at line 70 of file qjnihelpers.cpp.

References mutex, and ret.

Referenced by QtAndroidPrivate::initJNI().

+ Here is the caller graph for this function:

◆ JNI_OnLoad()

QT_END_NAMESPACE JNIEXPORT jint JNICALL JNI_OnLoad ( JavaVM *  vm,
void reserved 
)

Definition at line 399 of file qjnihelpers.cpp.

References QtAndroidPrivate::initJNI(), logTag, Q_UNUSED, QT_PREPEND_NAMESPACE(), and ret.

+ Here is the call graph for this function:

◆ Q_GLOBAL_STATIC() [1/2]

Q_GLOBAL_STATIC ( QReadWriteLock  ,
g_updateMutex   
)

References mutex.

◆ Q_GLOBAL_STATIC() [2/2]

Q_GLOBAL_STATIC ( QSemaphore  ,
g_waitForServiceSetupSemaphore   
)

◆ updateNativeActivity()

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

Definition at line 79 of file qjnihelpers.cpp.

References g_jActivity.

Referenced by QtAndroidPrivate::initJNI().

+ Here is the caller graph for this function:

Variable Documentation

◆ g_androidDeadlockProtector

◆ g_jActivity

jobject g_jActivity = nullptr
static

◆ g_javaVM

JavaVM* g_javaVM = nullptr
static

Definition at line 33 of file qjnihelpers.cpp.

Referenced by QtAndroidPrivate::initJNI(), and QtAndroidPrivate::javaVM().

◆ g_jClassLoader

jobject g_jClassLoader = nullptr
static

Definition at line 36 of file qjnihelpers.cpp.

Referenced by QtAndroidPrivate::classLoader(), and QtAndroidPrivate::initJNI().

◆ g_jService

jobject g_jService = nullptr
static

◆ g_onBindListener

Q_CONSTINIT QtAndroidPrivate::OnBindListener* g_onBindListener
static

◆ g_onBindListenerMutex

Q_CONSTINIT QBasicMutex g_onBindListenerMutex
static

◆ g_serviceSetupLockers

Q_CONSTINIT QBasicAtomicInt g_serviceSetupLockers = Q_BASIC_ATOMIC_INITIALIZER(0)
static