summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java6
-rw-r--r--tests/auto/corelib/platform/android/tst_android.cpp21
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"