Make Qt for Android configurable without 'accessibility' support

The code was already partially behind the feature flag, but not fully.

Pick-to: 6.8
Fixes: QTBUG-135693
Change-Id: Iad76221837aa37b90b3be998afc41ce9bbc05c55
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
(cherry picked from commit f5b5f16bfa0bf0889c1d77af3e9840e67a2e851c)
This commit is contained in:
Juha Vuolle 2025-04-07 13:39:34 +03:00
parent 111549dca0
commit c9921d069a
4 changed files with 23 additions and 4 deletions

View File

@ -14,7 +14,6 @@ qt_internal_add_plugin(QAndroidIntegrationPlugin
androidcontentfileengine.cpp androidcontentfileengine.h
qandroidapkfileengine.h qandroidapkfileengine.cpp
androiddeadlockprotector.h
androidjniaccessibility.cpp androidjniaccessibility.h
androidjniinput.cpp androidjniinput.h
androidjnimain.cpp androidjnimain.h
androidjnimenu.cpp androidjnimenu.h
@ -22,7 +21,6 @@ qt_internal_add_plugin(QAndroidIntegrationPlugin
qandroidassetsfileenginehandler.cpp qandroidassetsfileenginehandler.h
qandroideventdispatcher.cpp qandroideventdispatcher.h
qandroidinputcontext.cpp qandroidinputcontext.h
qandroidplatformaccessibility.cpp qandroidplatformaccessibility.h
qandroidplatformclipboard.cpp qandroidplatformclipboard.h
qandroidplatformdialoghelpers.cpp qandroidplatformdialoghelpers.h
qandroidplatformfiledialoghelper.cpp qandroidplatformfiledialoghelper.h
@ -50,7 +48,6 @@ qt_internal_add_plugin(QAndroidIntegrationPlugin
# seems to be doing most of the work already.
androidjnimenu.cpp
qandroidinputcontext.cpp
androidjniaccessibility.cpp
qandroidplatformdialoghelpers.cpp
# Conflicting JNI classes, and types
androidcontentfileengine.cpp
@ -82,6 +79,14 @@ qt_internal_extend_target(QAndroidIntegrationPlugin CONDITION NOT QT_FEATURE_and
extract-dummy.cpp
)
qt_internal_extend_target(QAndroidIntegrationPlugin CONDITION QT_FEATURE_accessibility
SOURCES
androidjniaccessibility.cpp androidjniaccessibility.h
qandroidplatformaccessibility.cpp qandroidplatformaccessibility.h
NO_UNITY_BUILD_SOURCES
androidjniaccessibility.cpp
)
qt_internal_extend_target(QAndroidIntegrationPlugin CONDITION QT_FEATURE_vulkan
SOURCES
qandroidplatformvulkaninstance.cpp qandroidplatformvulkaninstance.h

View File

@ -10,7 +10,6 @@
#include "androidcontentfileengine.h"
#include "qandroidapkfileengine.h"
#include "androiddeadlockprotector.h"
#include "androidjniaccessibility.h"
#include "androidjniinput.h"
#include "androidjnimain.h"
#include "androidjnimenu.h"
@ -20,6 +19,9 @@
#include "qandroidplatformdialoghelpers.h"
#include "qandroidplatformintegration.h"
#include "qandroidplatformclipboard.h"
#if QT_CONFIG(accessibility)
#include "androidjniaccessibility.h"
#endif
#include "qandroidplatformwindow.h"
#include <android/api-level.h>
@ -91,7 +93,9 @@ static const char m_methodErrorMsg[] = "Can't find method \"%s%s\"";
Q_CONSTINIT static QBasicAtomicInt startQtAndroidPluginCalled = Q_BASIC_ATOMIC_INITIALIZER(0);
#if QT_CONFIG(accessibility)
Q_DECLARE_JNI_CLASS(QtAccessibilityInterface, "org/qtproject/qt/android/QtAccessibilityInterface");
#endif
namespace QtAndroid
{
@ -192,6 +196,7 @@ namespace QtAndroid
return true;
}
#if QT_CONFIG(accessibility)
void initializeAccessibility()
{
m_backendRegister->callInterface<QtJniTypes::QtAccessibilityInterface, void>(
@ -233,6 +238,7 @@ namespace QtAndroid
m_backendRegister->callInterface<QtJniTypes::QtAccessibilityInterface, void>(
"notifyScrolledEvent", accessibilityObjectId);
}
#endif //QT_CONFIG(accessibility)
void notifyNativePluginIntegrationReady(bool ready)
{
@ -810,7 +816,9 @@ static bool registerNatives(QJniEnvironment &env)
success = success
&& QtAndroidInput::registerNatives(env)
&& QtAndroidMenu::registerNatives(env)
#if QT_CONFIG(accessibility)
&& QtAndroidAccessibility::registerNatives(env)
#endif
&& QtAndroidDialogHelpers::registerNatives(env)
&& QAndroidPlatformClipboard::registerNatives(env)
&& QAndroidPlatformWindow::registerNatives(env)

View File

@ -53,6 +53,7 @@ namespace QtAndroid
jobject createBitmap(int width, int height, QImage::Format format, JNIEnv *env);
jobject createBitmapDrawable(jobject bitmap, JNIEnv *env = nullptr);
#if QT_CONFIG(accessibility)
void initializeAccessibility();
void notifyAccessibilityLocationChange(uint accessibilityObjectId);
void notifyObjectHide(uint accessibilityObjectId, uint parentObjectId);
@ -60,6 +61,7 @@ namespace QtAndroid
void notifyObjectFocus(uint accessibilityObjectId);
void notifyValueChanged(uint accessibilityObjectId, jstring value);
void notifyScrolledEvent(uint accessibilityObjectId);
#endif
void notifyNativePluginIntegrationReady(bool ready);
const char *classErrorMsgFmt();

View File

@ -4,11 +4,15 @@
#include "qandroidplatformintegration.h"
#if QT_CONFIG(accessibility)
#include "androidjniaccessibility.h"
#endif
#include "androidjnimain.h"
#include "qabstracteventdispatcher.h"
#include "qandroideventdispatcher.h"
#if QT_CONFIG(accessibility)
#include "qandroidplatformaccessibility.h"
#endif
#include "qandroidplatformclipboard.h"
#include "qandroidplatformfontdatabase.h"
#include "qandroidplatformforeignwindow.h"