Loading services/core/java/com/android/server/wm/ActivityStartController.java +3 −1 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.server.wm; import static android.app.ActivityManager.START_SUCCESS; import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED; import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK; import static android.os.FactoryTest.FACTORY_TEST_LOW_LEVEL; Loading Loading @@ -191,8 +192,9 @@ public class ActivityStartController { try { // TODO(multi-display-area): Support starting home in a task display area // Make sure home stack exist on display. // TODO(b/153624902): Replace with TaskDisplayArea#getOrCreateRootHomeTask() homeStack = display.getDefaultTaskDisplayArea().getOrCreateStack( WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_HOME, ON_TOP); WINDOWING_MODE_UNDEFINED, ACTIVITY_TYPE_HOME, ON_TOP); } finally { mSupervisor.endDeferResume(); } Loading services/core/java/com/android/server/wm/RootWindowContainer.java +1 −3 Original line number Diff line number Diff line Loading @@ -23,7 +23,6 @@ import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME; import static android.app.WindowConfiguration.ACTIVITY_TYPE_RECENTS; import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD; import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN_OR_SPLIT_SCREEN_SECONDARY; import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED; import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY; Loading Loading @@ -1369,8 +1368,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent> calculateDefaultMinimalSizeOfResizeableTasks(); final TaskDisplayArea defaultTaskDisplayArea = getDefaultTaskDisplayArea(); defaultTaskDisplayArea.getOrCreateStack(WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_HOME, ON_TOP); defaultTaskDisplayArea.getOrCreateRootHomeTask(); positionChildAt(POSITION_TOP, defaultTaskDisplayArea.mDisplayContent, false /* includingParents */); } Loading services/core/java/com/android/server/wm/Task.java +18 −20 Original line number Diff line number Diff line Loading @@ -2334,32 +2334,30 @@ class Task extends WindowContainer<WindowContainer> { return Configuration.reduceScreenLayout(sourceScreenLayout, longSize, shortSize); } private void resolveOrganizedOverrideConfiguration(Configuration newParentConfig) { @Override void resolveOverrideConfiguration(Configuration newParentConfig) { mTmpBounds.set(getResolvedOverrideConfiguration().windowConfiguration.getBounds()); super.resolveOverrideConfiguration(newParentConfig); if (!isOrganized()) { return; } final Task root = getRootTask(); if (root == this) { return; // Resolve override windowing mode to fullscreen for home task (even on freeform // display), or split-screen-secondary if in split-screen mode. int windowingMode = getResolvedOverrideConfiguration().windowConfiguration.getWindowingMode(); if (getActivityType() == ACTIVITY_TYPE_HOME && windowingMode == WINDOWING_MODE_UNDEFINED) { windowingMode = inSplitScreenWindowingMode() ? WINDOWING_MODE_SPLIT_SCREEN_SECONDARY : WINDOWING_MODE_FULLSCREEN; getResolvedOverrideConfiguration().windowConfiguration.setWindowingMode(windowingMode); } // Ensure to have the same windowing mode for the child tasks that controlled by task org. getResolvedOverrideConfiguration().windowConfiguration .setWindowingMode(root.getWindowingMode()); if (!isLeafTask()) { // Compute configuration overrides for tasks that created by organizer, so that // organizer can get the correct configuration from those tasks. if (mCreatedByOrganizer) { computeConfigResourceOverrides(getResolvedOverrideConfiguration(), newParentConfig); } @Override void resolveOverrideConfiguration(Configuration newParentConfig) { if (!isLeafTask() || mCreatedByOrganizer) { resolveOrganizedOverrideConfiguration(newParentConfig); return; } mTmpBounds.set(getResolvedOverrideConfiguration().windowConfiguration.getBounds()); resolveOrganizedOverrideConfiguration(newParentConfig); int windowingMode = getResolvedOverrideConfiguration().windowConfiguration.getWindowingMode(); if (windowingMode == WINDOWING_MODE_UNDEFINED) { windowingMode = newParentConfig.windowConfiguration.getWindowingMode(); } Loading services/core/java/com/android/server/wm/TaskDisplayArea.java +1 −2 Original line number Diff line number Diff line Loading @@ -1415,8 +1415,7 @@ final class TaskDisplayArea extends DisplayArea<ActivityStack> { ActivityStack homeTask = getRootHomeTask(); if (homeTask == null && mDisplayContent.supportsSystemDecorations() && !mDisplayContent.isUntrustedVirtualDisplay()) { homeTask = createStack(WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_HOME, false /* onTop */); homeTask = createStack(WINDOWING_MODE_UNDEFINED, ACTIVITY_TYPE_HOME, false /* onTop */); } return homeTask; } Loading Loading
services/core/java/com/android/server/wm/ActivityStartController.java +3 −1 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.server.wm; import static android.app.ActivityManager.START_SUCCESS; import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED; import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK; import static android.os.FactoryTest.FACTORY_TEST_LOW_LEVEL; Loading Loading @@ -191,8 +192,9 @@ public class ActivityStartController { try { // TODO(multi-display-area): Support starting home in a task display area // Make sure home stack exist on display. // TODO(b/153624902): Replace with TaskDisplayArea#getOrCreateRootHomeTask() homeStack = display.getDefaultTaskDisplayArea().getOrCreateStack( WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_HOME, ON_TOP); WINDOWING_MODE_UNDEFINED, ACTIVITY_TYPE_HOME, ON_TOP); } finally { mSupervisor.endDeferResume(); } Loading
services/core/java/com/android/server/wm/RootWindowContainer.java +1 −3 Original line number Diff line number Diff line Loading @@ -23,7 +23,6 @@ import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME; import static android.app.WindowConfiguration.ACTIVITY_TYPE_RECENTS; import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD; import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN_OR_SPLIT_SCREEN_SECONDARY; import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED; import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY; Loading Loading @@ -1369,8 +1368,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent> calculateDefaultMinimalSizeOfResizeableTasks(); final TaskDisplayArea defaultTaskDisplayArea = getDefaultTaskDisplayArea(); defaultTaskDisplayArea.getOrCreateStack(WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_HOME, ON_TOP); defaultTaskDisplayArea.getOrCreateRootHomeTask(); positionChildAt(POSITION_TOP, defaultTaskDisplayArea.mDisplayContent, false /* includingParents */); } Loading
services/core/java/com/android/server/wm/Task.java +18 −20 Original line number Diff line number Diff line Loading @@ -2334,32 +2334,30 @@ class Task extends WindowContainer<WindowContainer> { return Configuration.reduceScreenLayout(sourceScreenLayout, longSize, shortSize); } private void resolveOrganizedOverrideConfiguration(Configuration newParentConfig) { @Override void resolveOverrideConfiguration(Configuration newParentConfig) { mTmpBounds.set(getResolvedOverrideConfiguration().windowConfiguration.getBounds()); super.resolveOverrideConfiguration(newParentConfig); if (!isOrganized()) { return; } final Task root = getRootTask(); if (root == this) { return; // Resolve override windowing mode to fullscreen for home task (even on freeform // display), or split-screen-secondary if in split-screen mode. int windowingMode = getResolvedOverrideConfiguration().windowConfiguration.getWindowingMode(); if (getActivityType() == ACTIVITY_TYPE_HOME && windowingMode == WINDOWING_MODE_UNDEFINED) { windowingMode = inSplitScreenWindowingMode() ? WINDOWING_MODE_SPLIT_SCREEN_SECONDARY : WINDOWING_MODE_FULLSCREEN; getResolvedOverrideConfiguration().windowConfiguration.setWindowingMode(windowingMode); } // Ensure to have the same windowing mode for the child tasks that controlled by task org. getResolvedOverrideConfiguration().windowConfiguration .setWindowingMode(root.getWindowingMode()); if (!isLeafTask()) { // Compute configuration overrides for tasks that created by organizer, so that // organizer can get the correct configuration from those tasks. if (mCreatedByOrganizer) { computeConfigResourceOverrides(getResolvedOverrideConfiguration(), newParentConfig); } @Override void resolveOverrideConfiguration(Configuration newParentConfig) { if (!isLeafTask() || mCreatedByOrganizer) { resolveOrganizedOverrideConfiguration(newParentConfig); return; } mTmpBounds.set(getResolvedOverrideConfiguration().windowConfiguration.getBounds()); resolveOrganizedOverrideConfiguration(newParentConfig); int windowingMode = getResolvedOverrideConfiguration().windowConfiguration.getWindowingMode(); if (windowingMode == WINDOWING_MODE_UNDEFINED) { windowingMode = newParentConfig.windowConfiguration.getWindowingMode(); } Loading
services/core/java/com/android/server/wm/TaskDisplayArea.java +1 −2 Original line number Diff line number Diff line Loading @@ -1415,8 +1415,7 @@ final class TaskDisplayArea extends DisplayArea<ActivityStack> { ActivityStack homeTask = getRootHomeTask(); if (homeTask == null && mDisplayContent.supportsSystemDecorations() && !mDisplayContent.isUntrustedVirtualDisplay()) { homeTask = createStack(WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_HOME, false /* onTop */); homeTask = createStack(WINDOWING_MODE_UNDEFINED, ACTIVITY_TYPE_HOME, false /* onTop */); } return homeTask; } Loading