Android: set displayManager listener after QtLayout is initialized
the QtDisplayManager listener uses m_layout but it can be called before m_layout is actually initialized, so set the listener after the layout has been initialized. Task-number: QTBUG-118077 Fixes: QTBUG-119007 Fixes: QTBUG-119134 Change-Id: Icebc350f09210c12dbd011f86ce88a90b6f27d12 Reviewed-by: Tinja Paavoseppä <tinja.paavoseppa@qt.io>
This commit is contained in:
parent
2c96f51771
commit
d6861926a1
@ -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 {
|
||||
|
@ -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"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user