Loading services/core/java/com/android/server/wm/ActivityRecord.java +17 −23 Original line number Diff line number Diff line Loading @@ -7592,11 +7592,11 @@ final class ActivityRecord extends WindowToken { requestedOverrideConfig.assetsSeq = ASSETS_SEQ_UNDEFINED; } if (ENABLE_DRAGGING_PIP_ACROSS_DISPLAYS.isTrue() && mLastReportedPictureInPictureMode) { // If the previously resolved full config of the activity is in PiP, retain the // If the previously resolved full config and new parent activity is in PiP, retain the // following configs so that the activity doesn't get destroyed and recreated on display // transfer while still remaining in PiP mode. if (newParentConfiguration.windowConfiguration.getWindowingMode() if (ENABLE_DRAGGING_PIP_ACROSS_DISPLAYS.isTrue() && mLastReportedPictureInPictureMode && newParentConfiguration.windowConfiguration.getWindowingMode() == WINDOWING_MODE_PINNED) { final Configuration lastReportedMergedConfig = mLastReportedConfiguration.getMergedConfiguration(); Loading @@ -7610,12 +7610,6 @@ final class ActivityRecord extends WindowToken { if ((configChanges & ActivityInfo.CONFIG_DENSITY) == 0) { requestedOverrideConfig.densityDpi = lastReportedMergedConfig.densityDpi; } } else { // Reset the configs if we're exiting PiP mode. requestedOverrideConfig.colorMode = Configuration.COLOR_MODE_UNDEFINED; requestedOverrideConfig.touchscreen = Configuration.TOUCHSCREEN_UNDEFINED; requestedOverrideConfig.densityDpi = Configuration.DENSITY_DPI_UNDEFINED; } } super.resolveOverrideConfiguration(newParentConfiguration); Loading services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java +0 −26 Original line number Diff line number Diff line Loading @@ -3642,32 +3642,6 @@ public class ActivityRecordTests extends WindowTestsBase { activity.getRequestedOverrideConfiguration().colorMode); } @Test @EnableFlags(Flags.FLAG_ENABLE_DRAGGING_PIP_ACROSS_DISPLAYS) public void resolveOverrideConfiguration_inPipMode_newConfigFullscreen_updatesConfigs() { final ActivityRecord activity = createActivityWithTask(); final Configuration config = new Configuration(); config.touchscreen = TOUCHSCREEN_FINGER; config.densityDpi = 100; config.colorMode = COLOR_MODE_WIDE_COLOR_GAMUT_NO; activity.setLastReportedConfiguration(new Configuration(), config); activity.mLastReportedPictureInPictureMode = true; final Configuration newConfig = new Configuration(); newConfig.windowConfiguration.setWindowingMode(WINDOWING_MODE_FULLSCREEN); newConfig.touchscreen = TOUCHSCREEN_NOTOUCH; newConfig.densityDpi = 200; newConfig.colorMode = COLOR_MODE_WIDE_COLOR_GAMUT_YES; activity.resolveOverrideConfiguration(newConfig); assertEquals(Configuration.TOUCHSCREEN_UNDEFINED, activity.getRequestedOverrideConfiguration().touchscreen); assertEquals(Configuration.DENSITY_DPI_UNDEFINED, activity.getRequestedOverrideConfiguration().densityDpi); assertEquals(Configuration.COLOR_MODE_UNDEFINED, activity.getRequestedOverrideConfiguration().colorMode); } private ActivityRecord setupDisplayAndActivityForCameraCompat(boolean isCameraRunning, int windowingMode) { doReturn(true).when(() -> DesktopModeHelper.canEnterDesktopMode(any())); Loading Loading
services/core/java/com/android/server/wm/ActivityRecord.java +17 −23 Original line number Diff line number Diff line Loading @@ -7592,11 +7592,11 @@ final class ActivityRecord extends WindowToken { requestedOverrideConfig.assetsSeq = ASSETS_SEQ_UNDEFINED; } if (ENABLE_DRAGGING_PIP_ACROSS_DISPLAYS.isTrue() && mLastReportedPictureInPictureMode) { // If the previously resolved full config of the activity is in PiP, retain the // If the previously resolved full config and new parent activity is in PiP, retain the // following configs so that the activity doesn't get destroyed and recreated on display // transfer while still remaining in PiP mode. if (newParentConfiguration.windowConfiguration.getWindowingMode() if (ENABLE_DRAGGING_PIP_ACROSS_DISPLAYS.isTrue() && mLastReportedPictureInPictureMode && newParentConfiguration.windowConfiguration.getWindowingMode() == WINDOWING_MODE_PINNED) { final Configuration lastReportedMergedConfig = mLastReportedConfiguration.getMergedConfiguration(); Loading @@ -7610,12 +7610,6 @@ final class ActivityRecord extends WindowToken { if ((configChanges & ActivityInfo.CONFIG_DENSITY) == 0) { requestedOverrideConfig.densityDpi = lastReportedMergedConfig.densityDpi; } } else { // Reset the configs if we're exiting PiP mode. requestedOverrideConfig.colorMode = Configuration.COLOR_MODE_UNDEFINED; requestedOverrideConfig.touchscreen = Configuration.TOUCHSCREEN_UNDEFINED; requestedOverrideConfig.densityDpi = Configuration.DENSITY_DPI_UNDEFINED; } } super.resolveOverrideConfiguration(newParentConfiguration); Loading
services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java +0 −26 Original line number Diff line number Diff line Loading @@ -3642,32 +3642,6 @@ public class ActivityRecordTests extends WindowTestsBase { activity.getRequestedOverrideConfiguration().colorMode); } @Test @EnableFlags(Flags.FLAG_ENABLE_DRAGGING_PIP_ACROSS_DISPLAYS) public void resolveOverrideConfiguration_inPipMode_newConfigFullscreen_updatesConfigs() { final ActivityRecord activity = createActivityWithTask(); final Configuration config = new Configuration(); config.touchscreen = TOUCHSCREEN_FINGER; config.densityDpi = 100; config.colorMode = COLOR_MODE_WIDE_COLOR_GAMUT_NO; activity.setLastReportedConfiguration(new Configuration(), config); activity.mLastReportedPictureInPictureMode = true; final Configuration newConfig = new Configuration(); newConfig.windowConfiguration.setWindowingMode(WINDOWING_MODE_FULLSCREEN); newConfig.touchscreen = TOUCHSCREEN_NOTOUCH; newConfig.densityDpi = 200; newConfig.colorMode = COLOR_MODE_WIDE_COLOR_GAMUT_YES; activity.resolveOverrideConfiguration(newConfig); assertEquals(Configuration.TOUCHSCREEN_UNDEFINED, activity.getRequestedOverrideConfiguration().touchscreen); assertEquals(Configuration.DENSITY_DPI_UNDEFINED, activity.getRequestedOverrideConfiguration().densityDpi); assertEquals(Configuration.COLOR_MODE_UNDEFINED, activity.getRequestedOverrideConfiguration().colorMode); } private ActivityRecord setupDisplayAndActivityForCameraCompat(boolean isCameraRunning, int windowingMode) { doReturn(true).when(() -> DesktopModeHelper.canEnterDesktopMode(any())); Loading