Make Qt for Android configurable without 'accessibility' support

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

Pick-to: 6.9 6.8
Fixes: QTBUG-135693
Change-Id: Iad76221837aa37b90b3be998afc41ce9bbc05c55
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
This commit is contained in:
Juha Vuolle 2025-04-07 13:39:34 +03:00
parent 965af8548c
commit f5b5f16bfa
4 changed files with 23 additions and 4 deletions

View File

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

View File

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

View File

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

View File

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