Loading services/core/java/com/android/server/wm/DisplayContent.java +4 −0 Original line number Diff line number Diff line Loading @@ -3403,6 +3403,10 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp void removeImmediately() { mDeferredRemoval = false; try { if (DesktopExperienceFlags.ENABLE_DISPLAY_CONTENT_MODE_MANAGEMENT.isTrue() && mWmService.mDisplayWindowSettings.shouldShowSystemDecorsLocked(this)) { mDisplayPolicy.notifyDisplayRemoveSystemDecorations(); } mUnknownAppVisibilityController.clear(); mTransitionController.unregisterLegacyListener(mFixedRotationTransitionListener); mDeviceStateController.unregisterDeviceStateCallback(mDeviceStateConsumer); Loading services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java +36 −0 Original line number Diff line number Diff line Loading @@ -2983,6 +2983,42 @@ public class DisplayContentTests extends WindowTestsBase { assertTrue(dc.mWmService.mDisplayWindowSettings.shouldShowSystemDecorsLocked(dc)); } @EnableFlags(FLAG_ENABLE_DISPLAY_CONTENT_MODE_MANAGEMENT) @Test public void testRemove_displayWithSystemDecorations_emitRemoveSystemDecorations() { final DisplayInfo displayInfo = new DisplayInfo(mDisplayInfo); displayInfo.displayId = DEFAULT_DISPLAY + 1; displayInfo.flags = (FLAG_ALLOWS_CONTENT_MODE_SWITCH | FLAG_TRUSTED); final DisplayContent dc = createNewDisplay(displayInfo); spyOn(dc.mDisplay); doReturn(true).when(dc.mDisplay).canHostTasks(); dc.onDisplayInfoChangeApplied(); final DisplayPolicy displayPolicy = dc.getDisplayPolicy(); spyOn(displayPolicy); dc.remove(); verify(displayPolicy).notifyDisplayRemoveSystemDecorations(); } @EnableFlags(FLAG_ENABLE_DISPLAY_CONTENT_MODE_MANAGEMENT) @Test public void testRemove_displayWithoutSystemDecorations_dontEmitRemoveSystemDecorations() { final DisplayInfo displayInfo = new DisplayInfo(mDisplayInfo); displayInfo.displayId = DEFAULT_DISPLAY + 1; displayInfo.flags = (FLAG_ALLOWS_CONTENT_MODE_SWITCH | FLAG_TRUSTED); final DisplayContent dc = createNewDisplay(displayInfo); spyOn(dc.mDisplay); doReturn(false).when(dc.mDisplay).canHostTasks(); dc.onDisplayInfoChangeApplied(); final DisplayPolicy displayPolicy = dc.getDisplayPolicy(); spyOn(displayPolicy); dc.remove(); verify(displayPolicy, never()).notifyDisplayRemoveSystemDecorations(); } @EnableFlags(FLAG_ENABLE_PERSISTING_DISPLAY_SIZE_FOR_CONNECTED_DISPLAYS) @Test public void testForcedDensityRatioSetForExternalDisplays_persistDensityScaleFlagEnabled() { Loading Loading
services/core/java/com/android/server/wm/DisplayContent.java +4 −0 Original line number Diff line number Diff line Loading @@ -3403,6 +3403,10 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp void removeImmediately() { mDeferredRemoval = false; try { if (DesktopExperienceFlags.ENABLE_DISPLAY_CONTENT_MODE_MANAGEMENT.isTrue() && mWmService.mDisplayWindowSettings.shouldShowSystemDecorsLocked(this)) { mDisplayPolicy.notifyDisplayRemoveSystemDecorations(); } mUnknownAppVisibilityController.clear(); mTransitionController.unregisterLegacyListener(mFixedRotationTransitionListener); mDeviceStateController.unregisterDeviceStateCallback(mDeviceStateConsumer); Loading
services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java +36 −0 Original line number Diff line number Diff line Loading @@ -2983,6 +2983,42 @@ public class DisplayContentTests extends WindowTestsBase { assertTrue(dc.mWmService.mDisplayWindowSettings.shouldShowSystemDecorsLocked(dc)); } @EnableFlags(FLAG_ENABLE_DISPLAY_CONTENT_MODE_MANAGEMENT) @Test public void testRemove_displayWithSystemDecorations_emitRemoveSystemDecorations() { final DisplayInfo displayInfo = new DisplayInfo(mDisplayInfo); displayInfo.displayId = DEFAULT_DISPLAY + 1; displayInfo.flags = (FLAG_ALLOWS_CONTENT_MODE_SWITCH | FLAG_TRUSTED); final DisplayContent dc = createNewDisplay(displayInfo); spyOn(dc.mDisplay); doReturn(true).when(dc.mDisplay).canHostTasks(); dc.onDisplayInfoChangeApplied(); final DisplayPolicy displayPolicy = dc.getDisplayPolicy(); spyOn(displayPolicy); dc.remove(); verify(displayPolicy).notifyDisplayRemoveSystemDecorations(); } @EnableFlags(FLAG_ENABLE_DISPLAY_CONTENT_MODE_MANAGEMENT) @Test public void testRemove_displayWithoutSystemDecorations_dontEmitRemoveSystemDecorations() { final DisplayInfo displayInfo = new DisplayInfo(mDisplayInfo); displayInfo.displayId = DEFAULT_DISPLAY + 1; displayInfo.flags = (FLAG_ALLOWS_CONTENT_MODE_SWITCH | FLAG_TRUSTED); final DisplayContent dc = createNewDisplay(displayInfo); spyOn(dc.mDisplay); doReturn(false).when(dc.mDisplay).canHostTasks(); dc.onDisplayInfoChangeApplied(); final DisplayPolicy displayPolicy = dc.getDisplayPolicy(); spyOn(displayPolicy); dc.remove(); verify(displayPolicy, never()).notifyDisplayRemoveSystemDecorations(); } @EnableFlags(FLAG_ENABLE_PERSISTING_DISPLAY_SIZE_FOR_CONNECTED_DISPLAYS) @Test public void testForcedDensityRatioSetForExternalDisplays_persistDensityScaleFlagEnabled() { Loading