diff --git a/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java b/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java index 1d671170442..b57576fa464 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java @@ -63,8 +63,6 @@ public class QtActivityDelegate setActionBarVisibility(false); - m_displayManager.registerDisplayListener(m_activity, m_layout); - QtInputDelegate.KeyboardVisibilityListener keyboardVisibilityListener = new QtInputDelegate.KeyboardVisibilityListener() { @Override @@ -190,13 +188,15 @@ public class QtActivityDelegate initMembers(startApplication); } - + private void initMembers(Runnable startApplicationRunnable) { m_quitApp = true; m_layout = new QtLayout(m_activity, startApplicationRunnable); + m_displayManager.registerDisplayListener(m_activity, m_layout); + int orientation = m_activity.getResources().getConfiguration().orientation; try { diff --git a/tests/auto/corelib/platform/android/tst_android.cpp b/tests/auto/corelib/platform/android/tst_android.cpp index 8d0bf1e72cc..9a503fafc58 100644 --- a/tests/auto/corelib/platform/android/tst_android.cpp +++ b/tests/auto/corelib/platform/android/tst_android.cpp @@ -26,6 +26,8 @@ private slots: void testAndroidActivity(); void testRunOnAndroidMainThread(); void testFullScreenDimensions(); + void orientationChange_data(); + void orientationChange(); }; void tst_Android::assetsRead() @@ -299,6 +301,25 @@ void tst_Android::testFullScreenDimensions() } } +void tst_Android::orientationChange_data() +{ + QTest::addColumn("nativeOrientation"); + QTest::addColumn("expected"); + + QTest::newRow("Landscape") << 0 << Qt::LandscapeOrientation; + QTest::newRow("Portrait") << 1 << Qt::PortraitOrientation; +} + +void tst_Android::orientationChange() +{ + QFETCH(int, nativeOrientation); + QFETCH(Qt::ScreenOrientation, expected); + + auto context = QNativeInterface::QAndroidApplication::context(); + context.callMethod("setRequestedOrientation", nativeOrientation); + QTRY_COMPARE(qGuiApp->primaryScreen()->orientation(), expected); +} + QTEST_MAIN(tst_Android) #include "tst_android.moc"