diff options
| author | Assam Boudjelthia <assam.boudjelthia@qt.io> | 2023-09-24 13:10:17 +0100 |
|---|---|---|
| committer | Assam Boudjelthia <assam.boudjelthia@qt.io> | 2023-11-02 16:13:22 +0200 |
| commit | 58c7249ee87548cfdc9b18964ce603d1a6842139 (patch) | |
| tree | b6f91b1e5457956b1d647939452b3adc7588d593 /src/plugins/platforms/android/qandroidplatformintegration.cpp | |
| parent | 7b77a1c2a68225d68041b6a342b3bb2df1482801 (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.cpp | 17 |
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 ¶ 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) { |
