From 965af8548cb804a0edb13ce167bd9daae0da3ed0 Mon Sep 17 00:00:00 2001 From: Juha Vuolle Date: Fri, 4 Apr 2025 13:00:23 +0300 Subject: [PATCH] Make Qt for Android compile without permissions -feature The permissions were partially behind 'future' feature flag. Instead put permission code behind the actual 'permissions' feature flag, and require 'future' feature if permissions are enabled. Fixes: QTBUG-135617 Pick-to: 6.9 6.8 Change-Id: I573cca6a56c19bfc32a3f1df72a009cbe05ad2fb Reviewed-by: Assam Boudjelthia --- src/corelib/kernel/qjnihelpers.cpp | 2 ++ src/corelib/platform/android/qandroidextras.cpp | 5 ++++- src/corelib/platform/android/qandroidextras_p.h | 3 ++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/corelib/kernel/qjnihelpers.cpp b/src/corelib/kernel/qjnihelpers.cpp index d477070c310..5d218b3811f 100644 --- a/src/corelib/kernel/qjnihelpers.cpp +++ b/src/corelib/kernel/qjnihelpers.cpp @@ -349,8 +349,10 @@ jint QtAndroidPrivate::initJNI(JavaVM *vm, JNIEnv *env) return JNI_ERR; } +#if QT_CONFIG(permissions) if (!registerPermissionNatives(qJniEnv)) return JNI_ERR; +#endif if (!registerNativeInterfaceNatives(qJniEnv)) return JNI_ERR; diff --git a/src/corelib/platform/android/qandroidextras.cpp b/src/corelib/platform/android/qandroidextras.cpp index d69b8fe4552..6dd135150ae 100644 --- a/src/corelib/platform/android/qandroidextras.cpp +++ b/src/corelib/platform/android/qandroidextras.cpp @@ -11,7 +11,7 @@ #include #include -#if QT_CONFIG(future) +#if QT_CONFIG(permissions) #include #endif @@ -1029,6 +1029,7 @@ void QAndroidActivityCallbackResultReceiver::registerCallback( callbackMap.insert(receiverRequestCode, callbackFunc); } +#if QT_CONFIG(permissions) // Permissions API QtAndroidPrivate::PermissionResult resultFromAndroid(jint value) @@ -1192,6 +1193,8 @@ bool QtAndroidPrivate::registerPermissionNatives(QJniEnvironment &env) }); } +#endif // QT_CONFIG(permissions) + QT_END_NAMESPACE #include "moc_qandroidextras_p.cpp" diff --git a/src/corelib/platform/android/qandroidextras_p.h b/src/corelib/platform/android/qandroidextras_p.h index 1ebd156cb38..dcc6169e516 100644 --- a/src/corelib/platform/android/qandroidextras_p.h +++ b/src/corelib/platform/android/qandroidextras_p.h @@ -226,7 +226,8 @@ namespace QtAndroidPrivate const QAndroidServiceConnection &serviceConnection, BindFlags flags = BindFlag::None); -#if QT_CONFIG(future) +#if QT_CONFIG(permissions) + QT_REQUIRE_CONFIG(future); enum PermissionResult { Undetermined, Authorized,