Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
androidbackendregister.cpp
Go to the documentation of this file.
1
// Copyright (C) 2024 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
// Qt-Security score:significant reason:default
4
5
#
include
"androidbackendregister.h"
6
7
#
include
"androidjnimain.h"
8
9
QT_BEGIN_NAMESPACE
10
11
Q_LOGGING_CATEGORY(lcAndroidBackendRegister,
"qt.qpa.androidbackendregister"
)
12
13
Q_DECLARE_JNI_CLASS(BackendRegister,
"org/qtproject/qt/android/BackendRegister"
);
14
15
bool
AndroidBackendRegister
::
registerNatives
()
16
{
17
return
QtJniTypes::BackendRegister::registerNativeMethods(
18
{ Q_JNI_NATIVE_SCOPED_METHOD(isNull, AndroidBackendRegister),
19
Q_JNI_NATIVE_SCOPED_METHOD(registerBackend, AndroidBackendRegister),
20
Q_JNI_NATIVE_SCOPED_METHOD(unregisterBackend, AndroidBackendRegister) });
21
}
22
23
jboolean
AndroidBackendRegister
::isNull(JNIEnv *, jclass)
24
{
25
return
QtAndroid
::
backendRegister
(
)
==
nullptr
;
26
}
27
28
void
AndroidBackendRegister
::registerBackend(JNIEnv *, jclass, jclass interfaceClass,
29
jobject interface)
30
{
31
if
(
AndroidBackendRegister
*reg =
QtAndroid
::
backendRegister
(
)
) {
32
const
QJniObject classObject(
static_cast
<jobject>(interfaceClass));
33
QString name = classObject.callMethod<jstring>(
"getName"
).toString();
34
name.replace(
'.'
,
'/'
);
35
36
QMutexLocker lock(®->m_registerMutex);
37
reg->m_register[name] = QJniObject(interface);
38
}
else
{
39
qCWarning(lcAndroidBackendRegister)
40
<<
"AndroidBackendRegister pointer is null, cannot register functionality"
;
41
}
42
}
43
44
void
AndroidBackendRegister
::unregisterBackend(JNIEnv *, jclass, jclass interfaceClass)
45
{
46
if
(
AndroidBackendRegister
*reg =
QtAndroid
::
backendRegister
(
)
) {
47
const
QJniObject classObject(
static_cast
<jobject>(interfaceClass));
48
QString name = classObject.callMethod<jstring>(
"getName"
).toString();
49
name.replace(
'.'
,
'/'
);
50
51
QMutexLocker lock(®->m_registerMutex);
52
reg->m_register.remove(name);
53
}
else
{
54
qCWarning(lcAndroidBackendRegister)
55
<<
"AndroidBackendRegister pointer is null, cannot unregister functionality"
;
56
}
57
}
58
59
QT_END_NAMESPACE
AndroidBackendRegister
Definition
androidbackendregister.h:78
AndroidBackendRegister::registerNatives
static bool registerNatives()
Definition
androidbackendregister.cpp:15
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
QtAndroid
Definition
androidjnimain.h:35
QtAndroid::backendRegister
AndroidBackendRegister * backendRegister()
Definition
androidjnimain.cpp:385
qtbase
src
plugins
platforms
android
androidbackendregister.cpp
Generated on
for Qt by
1.18.0