diff options
author | Assam Boudjelthia <assam.boudjelthia@qt.io> | 2021-01-14 12:38:04 +0200 |
---|---|---|
committer | Assam Boudjelthia <assam.boudjelthia@qt.io> | 2021-01-27 17:23:04 +0200 |
commit | 4e60681c879a54cf5b34862a30e27c492ed36363 (patch) | |
tree | 01c7d46ae34a6596fa235eea915846b66e7e8670 /src/plugins/platforms/android/qandroidinputcontext.cpp | |
parent | 407ce5c0afd905b38a7d82980a76ed834fc971eb (diff) |
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 <ville.voutilainen@qt.io>
Diffstat (limited to 'src/plugins/platforms/android/qandroidinputcontext.cpp')
-rw-r--r-- | src/plugins/platforms/android/qandroidinputcontext.cpp | 28 |
1 files changed, 13 insertions, 15 deletions
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 <android/log.h> -#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 <QDebug> + +#include <QTextBoundaryFinder> +#include <QTextCharFormat> +#include <QtCore/QJniEnvironment> +#include <QtCore/QJniObject> +#include <private/qhighdpiscaling_p.h> #include <qevent.h> #include <qguiapplication.h> +#include <qinputmethod.h> #include <qsharedpointer.h> #include <qthread.h> -#include <qinputmethod.h> #include <qwindow.h> -#include <QtCore/private/qjni_p.h> -#include <private/qhighdpiscaling_p.h> - -#include <QTextCharFormat> -#include <QTextBoundaryFinder> - -#include <QDebug> 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 |