Android: unregister display manager on onPause or onStop
Unregister the display manager listener onPause or onStop and register again when onResume is called. Task-number: QTBUG-118077 Change-Id: Ic48defda019fb132ef22a8229c4b549b0414b100 Reviewed-by: Tinja Paavoseppä <tinja.paavoseppa@qt.io>
This commit is contained in:
parent
576be5d047
commit
a419d4fbf0
@ -120,6 +120,7 @@ public class QtActivityBase extends Activity
|
||||
super.onPause();
|
||||
if (Build.VERSION.SDK_INT < 24 || !isInMultiWindowMode())
|
||||
QtNative.setApplicationState(QtNative.ApplicationState.ApplicationInactive);
|
||||
m_delegate.displayManager().unregisterDisplayListener();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -128,6 +129,7 @@ public class QtActivityBase extends Activity
|
||||
super.onResume();
|
||||
QtNative.setApplicationState(QtNative.ApplicationState.ApplicationActive);
|
||||
if (QtNative.getStateDetails().isStarted) {
|
||||
m_delegate.displayManager().registerDisplayListener();
|
||||
QtNative.updateWindow();
|
||||
// Suspending the app clears the immersive mode, so we need to set it again.
|
||||
m_delegate.displayManager().updateFullScreen();
|
||||
|
@ -95,7 +95,6 @@ public class QtDisplayManager {
|
||||
};
|
||||
}
|
||||
|
||||
// TODO: unregister the listener upon activity destruction as well
|
||||
public void registerDisplayListener()
|
||||
{
|
||||
DisplayManager displayManager =
|
||||
@ -103,6 +102,13 @@ public class QtDisplayManager {
|
||||
displayManager.registerDisplayListener(m_displayListener, null);
|
||||
}
|
||||
|
||||
public void unregisterDisplayListener()
|
||||
{
|
||||
DisplayManager displayManager =
|
||||
(DisplayManager) m_activity.getSystemService(Context.DISPLAY_SERVICE);
|
||||
displayManager.unregisterDisplayListener(m_displayListener);
|
||||
}
|
||||
|
||||
public static int getNativeOrientation(Activity activity, int rotation)
|
||||
{
|
||||
int nativeOrientation;
|
||||
|
Loading…
x
Reference in New Issue
Block a user