summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAssam Boudjelthia <assam.boudjelthia@qt.io>2024-11-26 19:39:10 +0200
committerAssam Boudjelthia <assam.boudjelthia@qt.io>2024-12-03 17:27:27 +0200
commita2385e5c9dc9b07cb43264bf0309a80992f80ad8 (patch)
tree3add81abf437c5887f71b66f906faaee477b36fd /src
parent5c37d3f06b967c208364a3797c1589250786ddb6 (diff)
Android: move setSystemUiVisibility() to QAndroidPlatformWindow
Move calls for handling system UI visibility to QAndroidPlatformWindow where they belongs. Change-Id: I3802cf9d205ee6678f71b787c5ea4804d3aaeb29 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/platforms/android/androidjnimain.cpp9
-rw-r--r--src/plugins/platforms/android/androidjnimain.h8
-rw-r--r--src/plugins/platforms/android/qandroidplatformwindow.cpp11
-rw-r--r--src/plugins/platforms/android/qandroidplatformwindow.h7
4 files changed, 15 insertions, 20 deletions
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<QtJniTypes::QtWindowInterface, void>("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<QtJniTypes::QtWindowInterface, void>(
+ "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;