diff options
-rw-r--r-- | src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java | 6 | ||||
-rw-r--r-- | tests/auto/corelib/platform/android/tst_android.cpp | 21 |
2 files changed, 24 insertions, 3 deletions
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 1d67117044..b57576fa46 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 8d0bf1e72c..9a503fafc5 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<int>("nativeOrientation"); + QTest::addColumn<Qt::ScreenOrientation>("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<void>("setRequestedOrientation", nativeOrientation); + QTRY_COMPARE(qGuiApp->primaryScreen()->orientation(), expected); +} + QTEST_MAIN(tst_Android) #include "tst_android.moc" |