From 4e60681c879a54cf5b34862a30e27c492ed36363 Mon Sep 17 00:00:00 2001 From: Assam Boudjelthia Date: Thu, 14 Jan 2021 12:38:04 +0200 Subject: Make QJniObject and QJniEnvironment public API As part of Qt 6 restructring for the extras modules, this change exposes the Jni APIs which are very important for Android platform. This patch adds the APIs QJniObject, QJniEnvironment, QJniExceptionCleaner based from private QtCore and QtAndroidExtras. The Jni interface is cross-platform which justifies the name, but currently, this API is used mainly for Android, and the naming comes generic without Android keyword to avoid any future limitation on supporting other platforms. [ChangeLog][QtCore] Add new QJniObject, QJniEnvironment and QJniExceptionCleaner APIs. Task-number: QTBUG-89482 Fixes: QTBUG-89633 Change-Id: I4382dd53a225375759b9d042f6035a4a9810572b Reviewed-by: Ville Voutilainen --- .../platforms/android/qandroidinputcontext.cpp | 28 ++++++++++------------ 1 file changed, 13 insertions(+), 15 deletions(-) (limited to 'src/plugins/platforms/android/qandroidinputcontext.cpp') diff --git a/src/plugins/platforms/android/qandroidinputcontext.cpp b/src/plugins/platforms/android/qandroidinputcontext.cpp index e39f17a26f..06947c9c32 100644 --- a/src/plugins/platforms/android/qandroidinputcontext.cpp +++ b/src/plugins/platforms/android/qandroidinputcontext.cpp @@ -41,26 +41,24 @@ #include -#include "qandroidinputcontext.h" -#include "androidjnimain.h" +#include "androiddeadlockprotector.h" #include "androidjniinput.h" +#include "androidjnimain.h" #include "qandroideventdispatcher.h" -#include "androiddeadlockprotector.h" +#include "qandroidinputcontext.h" #include "qandroidplatformintegration.h" -#include + +#include +#include +#include +#include +#include #include #include +#include #include #include -#include #include -#include -#include - -#include -#include - -#include QT_BEGIN_NAMESPACE @@ -434,7 +432,8 @@ QAndroidInputContext::QAndroidInputContext() , m_batchEditNestingLevel(0) , m_focusObject(0) { - jclass clazz = QJNIEnvironmentPrivate::findClass(QtNativeInputConnectionClassName); + QJniEnvironment env; + jclass clazz = env.findClass(QtNativeInputConnectionClassName); if (Q_UNLIKELY(!clazz)) { qCritical() << "Native registration unable to find class '" << QtNativeInputConnectionClassName @@ -442,7 +441,6 @@ QAndroidInputContext::QAndroidInputContext() return; } - QJNIEnvironmentPrivate env; if (Q_UNLIKELY(env->RegisterNatives(clazz, methods, sizeof(methods) / sizeof(methods[0])) < 0)) { qCritical() << "RegisterNatives failed for '" << QtNativeInputConnectionClassName @@ -450,7 +448,7 @@ QAndroidInputContext::QAndroidInputContext() return; } - clazz = QJNIEnvironmentPrivate::findClass(QtExtractedTextClassName); + clazz = env.findClass(QtExtractedTextClassName); if (Q_UNLIKELY(!clazz)) { qCritical() << "Native registration unable to find class '" << QtExtractedTextClassName -- cgit v1.2.3