Loading services/core/java/com/android/server/wm/WindowState.java +2 −2 Original line number Diff line number Diff line Loading @@ -3869,8 +3869,8 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP // configuration update when the window has requested to be hidden. Doing so can lead to // the client erroneously accepting a configuration that would have otherwise caused an // activity restart. We instead hand back the last reported {@link MergedConfiguration}. if (useLatestConfig || (relayoutVisible && (!shouldCheckTokenVisibleRequested() || mToken.isVisibleRequested()))) { if (useLatestConfig || (relayoutVisible && (mActivityRecord == null || mActivityRecord.mVisibleRequested))) { final Configuration globalConfig = getProcessGlobalConfiguration(); final Configuration overrideConfig = getMergedOverrideConfiguration(); outMergedConfiguration.setConfiguration(globalConfig, overrideConfig); Loading services/tests/wmtests/src/com/android/server/wm/WindowManagerServiceTests.java +6 −0 Original line number Diff line number Diff line Loading @@ -215,6 +215,12 @@ public class WindowManagerServiceTests extends WindowTestsBase { mWm.relayoutWindow(win.mSession, win.mClient, win.mAttrs, w, h, View.VISIBLE, 0, 0, 0, outFrames, outConfig, outSurfaceControl, outInsetsState, outControls, outBundle); assertEquals(0, outConfig.getMergedConfiguration().densityDpi); // Non activity window can still get the last config. win.mActivityRecord = null; win.fillClientWindowFramesAndConfiguration(outFrames, outConfig, false /* useLatestConfig */, true /* relayoutVisible */); assertEquals(win.getConfiguration().densityDpi, outConfig.getMergedConfiguration().densityDpi); } @Test Loading Loading
services/core/java/com/android/server/wm/WindowState.java +2 −2 Original line number Diff line number Diff line Loading @@ -3869,8 +3869,8 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP // configuration update when the window has requested to be hidden. Doing so can lead to // the client erroneously accepting a configuration that would have otherwise caused an // activity restart. We instead hand back the last reported {@link MergedConfiguration}. if (useLatestConfig || (relayoutVisible && (!shouldCheckTokenVisibleRequested() || mToken.isVisibleRequested()))) { if (useLatestConfig || (relayoutVisible && (mActivityRecord == null || mActivityRecord.mVisibleRequested))) { final Configuration globalConfig = getProcessGlobalConfiguration(); final Configuration overrideConfig = getMergedOverrideConfiguration(); outMergedConfiguration.setConfiguration(globalConfig, overrideConfig); Loading
services/tests/wmtests/src/com/android/server/wm/WindowManagerServiceTests.java +6 −0 Original line number Diff line number Diff line Loading @@ -215,6 +215,12 @@ public class WindowManagerServiceTests extends WindowTestsBase { mWm.relayoutWindow(win.mSession, win.mClient, win.mAttrs, w, h, View.VISIBLE, 0, 0, 0, outFrames, outConfig, outSurfaceControl, outInsetsState, outControls, outBundle); assertEquals(0, outConfig.getMergedConfiguration().densityDpi); // Non activity window can still get the last config. win.mActivityRecord = null; win.fillClientWindowFramesAndConfiguration(outFrames, outConfig, false /* useLatestConfig */, true /* relayoutVisible */); assertEquals(win.getConfiguration().densityDpi, outConfig.getMergedConfiguration().densityDpi); } @Test Loading