diff --git a/src/plugins/platforms/android/androidjnimain.cpp b/src/plugins/platforms/android/androidjnimain.cpp index e6ca37de202..3aa3a7332c2 100644 --- a/src/plugins/platforms/android/androidjnimain.cpp +++ b/src/plugins/platforms/android/androidjnimain.cpp @@ -94,7 +94,6 @@ static const char m_methodErrorMsg[] = "Can't find method \"%s%s\""; Q_CONSTINIT static QBasicAtomicInt startQtAndroidPluginCalled = Q_BASIC_ATOMIC_INITIALIZER(0); -Q_DECLARE_JNI_CLASS(QtWindowInterface, "org/qtproject/qt/android/QtWindowInterface") Q_DECLARE_JNI_CLASS(QtAccessibilityInterface, "org/qtproject/qt/android/QtAccessibilityInterface"); namespace QtAndroid @@ -183,14 +182,6 @@ namespace QtAndroid return m_applicationClass; } - // TODO move calls from here to where they logically belong - void setSystemUiVisibility(SystemUiVisibility uiVisibility) - { - AndroidBackendRegister *reg = QtAndroid::backendRegister(); - reg->callInterface("setSystemUiVisibility", - jint(uiVisibility)); - } - bool isQtApplication() { // Returns true if the app is a Qt app, i.e. Qt controls the whole app and diff --git a/src/plugins/platforms/android/androidjnimain.h b/src/plugins/platforms/android/androidjnimain.h index 9d616b18fba..6e39898748a 100644 --- a/src/plugins/platforms/android/androidjnimain.h +++ b/src/plugins/platforms/android/androidjnimain.h @@ -50,14 +50,6 @@ namespace QtAndroid AAssetManager *assetManager(); jclass applicationClass(); - // Keep synchronized with flags in ActivityDelegate.java - enum SystemUiVisibility { - SYSTEM_UI_VISIBILITY_NORMAL = 0, - SYSTEM_UI_VISIBILITY_FULLSCREEN = 1, - SYSTEM_UI_VISIBILITY_TRANSLUCENT = 2 - }; - void setSystemUiVisibility(SystemUiVisibility uiVisibility); - jobject createBitmap(QImage img, JNIEnv *env = nullptr); jobject createBitmap(int width, int height, QImage::Format format, JNIEnv *env); jobject createBitmapDrawable(jobject bitmap, JNIEnv *env = nullptr); diff --git a/src/plugins/platforms/android/qandroidplatformwindow.cpp b/src/plugins/platforms/android/qandroidplatformwindow.cpp index edbbbd95e07..26dcdfeb437 100644 --- a/src/plugins/platforms/android/qandroidplatformwindow.cpp +++ b/src/plugins/platforms/android/qandroidplatformwindow.cpp @@ -16,6 +16,7 @@ QT_BEGIN_NAMESPACE Q_LOGGING_CATEGORY(lcQpaWindow, "qt.qpa.window") +Q_DECLARE_JNI_CLASS(QtWindowInterface, "org/qtproject/qt/android/QtWindowInterface") Q_DECLARE_JNI_CLASS(QtInputInterface, "org/qtproject/qt/android/QtInputInterface") Q_DECLARE_JNI_CLASS(QtInputConnectionListener, "org/qtproject/qt/android/QtInputConnection$QtInputConnectionListener") @@ -257,12 +258,16 @@ void QAndroidPlatformWindow::updateSystemUiVisibility() Qt::WindowFlags flags = window()->flags(); bool isNonRegularWindow = flags & (Qt::Popup | Qt::Dialog | Qt::Sheet) & ~Qt::Window; if (!isNonRegularWindow) { + SystemUiVisibility visibility; if (m_windowState & Qt::WindowFullScreen) - QtAndroid::setSystemUiVisibility(QtAndroid::SYSTEM_UI_VISIBILITY_FULLSCREEN); + visibility = SYSTEM_UI_VISIBILITY_FULLSCREEN; else if (flags & Qt::ExpandedClientAreaHint) - QtAndroid::setSystemUiVisibility(QtAndroid::SYSTEM_UI_VISIBILITY_TRANSLUCENT); + visibility = SYSTEM_UI_VISIBILITY_TRANSLUCENT; else - QtAndroid::setSystemUiVisibility(QtAndroid::SYSTEM_UI_VISIBILITY_NORMAL); + visibility = SYSTEM_UI_VISIBILITY_NORMAL; + + QtAndroid::backendRegister()->callInterface( + "setSystemUiVisibility", jint(visibility)); } } diff --git a/src/plugins/platforms/android/qandroidplatformwindow.h b/src/plugins/platforms/android/qandroidplatformwindow.h index c282adb9b0e..4c6fb1f1c3c 100644 --- a/src/plugins/platforms/android/qandroidplatformwindow.h +++ b/src/plugins/platforms/android/qandroidplatformwindow.h @@ -31,6 +31,13 @@ public: TextureView }; + // Keep synchronized with flags in ActivityDelegate.java + enum SystemUiVisibility { + SYSTEM_UI_VISIBILITY_NORMAL = 0, + SYSTEM_UI_VISIBILITY_FULLSCREEN = 1, + SYSTEM_UI_VISIBILITY_TRANSLUCENT = 2 + }; + explicit QAndroidPlatformWindow(QWindow *window); void initialize() override;