diff --git a/tests/auto/corelib/platform/android/tst_android.cpp b/tests/auto/corelib/platform/android/tst_android.cpp index d6e7ebbc5fa..d6964ce8d08 100644 --- a/tests/auto/corelib/platform/android/tst_android.cpp +++ b/tests/auto/corelib/platform/android/tst_android.cpp @@ -19,10 +19,12 @@ using namespace Qt::StringLiterals; Q_DECLARE_JNI_CLASS(Display, "android/view/Display") Q_DECLARE_JNI_CLASS(Point, "android/graphics/Point") +Q_DECLARE_JNI_CLASS(Rect, "android/graphics/Rect") Q_DECLARE_JNI_CLASS(View, "android/view/View") Q_DECLARE_JNI_CLASS(Window, "android/view/Window") Q_DECLARE_JNI_CLASS(WindowInsets, "android/view/WindowInsets") Q_DECLARE_JNI_CLASS(WindowManager, "android/view/WindowManager") +Q_DECLARE_JNI_CLASS(WindowMetrics, "android/view/WindowMetrics") class tst_Android : public QObject { @@ -222,9 +224,19 @@ void tst_Android::testFullScreenDimensions() QJniObject display = windowManager.callMethod("getDefaultDisplay"); QVERIFY(display.isValid()); - QtJniTypes::Point appSize{}; - QVERIFY(appSize.isValid()); - display.callMethod("getSize", appSize); + QSize appSize; + if (QNativeInterface::QAndroidApplication::sdkVersion() >= __ANDROID_API_R__) { + using namespace QtJniTypes; + auto windowMetrics = windowManager.callMethod("getCurrentWindowMetrics"); + auto bounds = windowMetrics.callMethod("getBounds"); + appSize.setWidth(bounds.callMethod("width")); + appSize.setHeight(bounds.callMethod("height")); + } else { + QtJniTypes::Point jappSize{}; + display.callMethod("getSize", jappSize); + appSize.setWidth(jappSize.getField("x")); + appSize.setHeight(jappSize.getField("y")); + } QtJniTypes::Point realSize{}; QVERIFY(realSize.isValid()); @@ -254,10 +266,10 @@ void tst_Android::testFullScreenDimensions() int insetBottom = insets.callMethod("getSystemWindowInsetBottom"); int insetsHeight = insetTop + insetBottom; - int expectedWidth = appSize.getField("x") - insetsWidth; + int expectedWidth = appSize.width() - insetsWidth; QTRY_COMPARE(screen->availableGeometry().width(), expectedWidth); - int expectedHeight = appSize.getField("y") - insetsHeight; + int expectedHeight = appSize.height() - insetsHeight; QTRY_COMPARE(screen->availableGeometry().height(), expectedHeight); QTRY_COMPARE(screen->geometry().width(), realSize.getField("x"));