diff options
author | Juha Vuolle <[email protected]> | 2025-04-07 13:39:34 +0300 |
---|---|---|
committer | Juha Vuolle <[email protected]> | 2025-04-24 07:03:22 +0300 |
commit | f5b5f16bfa0bf0889c1d77af3e9840e67a2e851c (patch) | |
tree | f7d3f55b7c60953282b5add1ee86285c9983f01c | |
parent | 965af8548cb804a0edb13ce167bd9daae0da3ed0 (diff) |
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 <[email protected]>
4 files changed, 23 insertions, 4 deletions
diff --git a/src/plugins/platforms/android/CMakeLists.txt b/src/plugins/platforms/android/CMakeLists.txt index 6bdeff079b5..72ac93609f1 100644 --- a/src/plugins/platforms/android/CMakeLists.txt +++ b/src/plugins/platforms/android/CMakeLists.txt @@ -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 diff --git a/src/plugins/platforms/android/androidjnimain.cpp b/src/plugins/platforms/android/androidjnimain.cpp index 59b389b7708..a2669ffc3a1 100644 --- a/src/plugins/platforms/android/androidjnimain.cpp +++ b/src/plugins/platforms/android/androidjnimain.cpp @@ -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 "qandroidplatformscreen.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); +#if QT_CONFIG(accessibility) Q_DECLARE_JNI_CLASS(QtAccessibilityInterface, "org/qtproject/qt/android/QtAccessibilityInterface"); +#endif namespace QtAndroid { @@ -174,6 +178,7 @@ namespace QtAndroid return true; } +#if QT_CONFIG(accessibility) void initializeAccessibility() { m_backendRegister->callInterface<QtJniTypes::QtAccessibilityInterface, void>( @@ -215,6 +220,7 @@ namespace QtAndroid m_backendRegister->callInterface<QtJniTypes::QtAccessibilityInterface, void>( "notifyScrolledEvent", accessibilityObjectId); } +#endif //QT_CONFIG(accessibility) void notifyNativePluginIntegrationReady(bool ready) { @@ -781,7 +787,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) diff --git a/src/plugins/platforms/android/androidjnimain.h b/src/plugins/platforms/android/androidjnimain.h index 7711bc95112..3b1aea1d015 100644 --- a/src/plugins/platforms/android/androidjnimain.h +++ b/src/plugins/platforms/android/androidjnimain.h @@ -52,6 +52,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); @@ -59,6 +60,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(); diff --git a/src/plugins/platforms/android/qandroidplatformintegration.cpp b/src/plugins/platforms/android/qandroidplatformintegration.cpp index 7c9e5193a92..be7fcddf6ee 100644 --- a/src/plugins/platforms/android/qandroidplatformintegration.cpp +++ b/src/plugins/platforms/android/qandroidplatformintegration.cpp @@ -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" |