summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/android/qandroidplatformintegration.cpp
diff options
context:
space:
mode:
authorAssam Boudjelthia <assam.boudjelthia@qt.io>2023-09-24 13:10:17 +0100
committerAssam Boudjelthia <assam.boudjelthia@qt.io>2023-11-02 16:13:22 +0200
commit58c7249ee87548cfdc9b18964ce603d1a6842139 (patch)
treeb6f91b1e5457956b1d647939452b3adc7588d593 /src/plugins/platforms/android/qandroidplatformintegration.cpp
parent7b77a1c2a68225d68041b6a342b3bb2df1482801 (diff)
Android: move display and screen management to new QtDisplayManager
Have all or most of Android code dealing with displays in QtDisplayManager. Also, simplify setApplicationDisplayMetrics() call and avoid caching any uneccessary members. Task-number: QTBUG-118077 Change-Id: I943069c24bb40ae3016db5896e553b501e700a6b Reviewed-by: Tinja Paavoseppä <tinja.paavoseppa@qt.io>
Diffstat (limited to 'src/plugins/platforms/android/qandroidplatformintegration.cpp')
-rw-r--r--src/plugins/platforms/android/qandroidplatformintegration.cpp17
1 files changed, 7 insertions, 10 deletions
diff --git a/src/plugins/platforms/android/qandroidplatformintegration.cpp b/src/plugins/platforms/android/qandroidplatformintegration.cpp
index 84ab311a11e..abe1a14c469 100644
--- a/src/plugins/platforms/android/qandroidplatformintegration.cpp
+++ b/src/plugins/platforms/android/qandroidplatformintegration.cpp
@@ -57,6 +57,7 @@ bool QAndroidPlatformIntegration::m_showPasswordEnabled = false;
static bool m_running = false;
Q_DECLARE_JNI_CLASS(QtNative, "org/qtproject/qt/android/QtNative")
+Q_DECLARE_JNI_CLASS(QtDisplayManager, "org/qtproject/qt/android/QtDisplayManager")
Q_DECLARE_JNI_CLASS(Display, "android/view/Display")
Q_DECLARE_JNI_CLASS(List, "java/util/List")
@@ -65,10 +66,8 @@ namespace {
QAndroidPlatformScreen* createScreenForDisplayId(int displayId)
{
- const QJniObject display = QJniObject::callStaticObjectMethod<QtJniTypes::Display>(
- QtJniTypes::Traits<QtJniTypes::QtNative>::className(),
- "getDisplay",
- displayId);
+ const QJniObject display = QtJniTypes::QtDisplayManager::callStaticMethod<QtJniTypes::Display>(
+ "getDisplay", QtAndroidPrivate::context(), displayId);
if (!display.isValid())
return nullptr;
return new QAndroidPlatformScreen(display);
@@ -187,12 +186,10 @@ QAndroidPlatformIntegration::QAndroidPlatformIntegration(const QStringList &para
if (Q_UNLIKELY(!eglBindAPI(EGL_OPENGL_ES_API)))
qFatal("Could not bind GL_ES API");
- m_primaryDisplayId = QJniObject::getStaticField<jint>(
- QtJniTypes::Traits<QtJniTypes::Display>::className(), "DEFAULT_DISPLAY");
-
- const QJniObject nativeDisplaysList = QJniObject::callStaticObjectMethod<QtJniTypes::List>(
- QtJniTypes::Traits<QtJniTypes::QtNative>::className(),
- "getAvailableDisplays");
+ using namespace QtJniTypes;
+ m_primaryDisplayId = Display::getStaticField<jint>("DEFAULT_DISPLAY");
+ const QJniObject nativeDisplaysList = QtDisplayManager::callStaticMethod<List>(
+ "getAvailableDisplays", QtAndroidPrivate::context());
const int numberOfAvailableDisplays = nativeDisplaysList.callMethod<jint>("size");
for (int i = 0; i < numberOfAvailableDisplays; ++i) {