diff options
7 files changed, 6 insertions, 106 deletions
diff --git a/core/java/android/app/WindowConfiguration.java b/core/java/android/app/WindowConfiguration.java index aa3b71a28eba..a12faca71bf6 100644 --- a/core/java/android/app/WindowConfiguration.java +++ b/core/java/android/app/WindowConfiguration.java @@ -100,9 +100,6 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu /** The current windowing mode of the configuration. */ private @WindowingMode int mWindowingMode; - /** The display windowing mode of the configuration */ - private @WindowingMode int mDisplayWindowingMode; - /** Windowing mode is currently not defined. */ public static final int WINDOWING_MODE_UNDEFINED = 0; /** Occupies the full area of the screen or the parent container. */ @@ -193,12 +190,9 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu /** Bit that indicates that the {@link #mRotation} changed. * @hide */ public static final int WINDOW_CONFIG_ROTATION = 1 << 6; - /** Bit that indicates that the {@link #mDisplayWindowingMode} changed. - * @hide */ - public static final int WINDOW_CONFIG_DISPLAY_WINDOWING_MODE = 1 << 7; /** Bit that indicates that the apparent-display changed. * @hide */ - public static final int WINDOW_CONFIG_DISPLAY_ROTATION = 1 << 8; + public static final int WINDOW_CONFIG_DISPLAY_ROTATION = 1 << 7; /** @hide */ @IntDef(flag = true, prefix = { "WINDOW_CONFIG_" }, value = { @@ -209,7 +203,6 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu WINDOW_CONFIG_ACTIVITY_TYPE, WINDOW_CONFIG_ALWAYS_ON_TOP, WINDOW_CONFIG_ROTATION, - WINDOW_CONFIG_DISPLAY_WINDOWING_MODE, WINDOW_CONFIG_DISPLAY_ROTATION, }) public @interface WindowConfig {} @@ -237,7 +230,6 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu dest.writeInt(mActivityType); dest.writeInt(mAlwaysOnTop); dest.writeInt(mRotation); - dest.writeInt(mDisplayWindowingMode); dest.writeInt(mDisplayRotation); } @@ -250,7 +242,6 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu mActivityType = source.readInt(); mAlwaysOnTop = source.readInt(); mRotation = source.readInt(); - mDisplayWindowingMode = source.readInt(); mDisplayRotation = source.readInt(); } @@ -411,17 +402,6 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu return mWindowingMode; } - /** @hide */ - public void setDisplayWindowingMode(@WindowingMode int windowingMode) { - mDisplayWindowingMode = windowingMode; - } - - /** @hide */ - @WindowingMode - public int getDisplayWindowingMode() { - return mDisplayWindowingMode; - } - public void setActivityType(@ActivityType int activityType) { if (mActivityType == activityType) { return; @@ -453,7 +433,6 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu setActivityType(other.mActivityType); setAlwaysOnTop(other.mAlwaysOnTop); setRotation(other.mRotation); - setDisplayWindowingMode(other.mDisplayWindowingMode); } /** Set this object to completely undefined. @@ -472,7 +451,6 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu setActivityType(ACTIVITY_TYPE_UNDEFINED); setAlwaysOnTop(ALWAYS_ON_TOP_UNDEFINED); setRotation(ROTATION_UNDEFINED); - setDisplayWindowingMode(WINDOWING_MODE_UNDEFINED); } /** @hide */ @@ -543,11 +521,6 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu changed |= WINDOW_CONFIG_ROTATION; setRotation(delta.mRotation); } - if (delta.mDisplayWindowingMode != WINDOWING_MODE_UNDEFINED - && mDisplayWindowingMode != delta.mDisplayWindowingMode) { - changed |= WINDOW_CONFIG_DISPLAY_WINDOWING_MODE; - setDisplayWindowingMode(delta.mDisplayWindowingMode); - } if (delta.mDisplayRotation != ROTATION_UNDEFINED && delta.mDisplayRotation != mDisplayRotation) { changed |= WINDOW_CONFIG_DISPLAY_ROTATION; @@ -582,9 +555,6 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu if ((mask & WINDOW_CONFIG_ROTATION) != 0) { setRotation(delta.mRotation); } - if ((mask & WINDOW_CONFIG_DISPLAY_WINDOWING_MODE) != 0) { - setDisplayWindowingMode(delta.mDisplayWindowingMode); - } if ((mask & WINDOW_CONFIG_DISPLAY_ROTATION) != 0) { setDisplayRotation(delta.mDisplayRotation); } @@ -639,11 +609,6 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu changes |= WINDOW_CONFIG_ROTATION; } - if ((compareUndefined || other.mDisplayWindowingMode != WINDOWING_MODE_UNDEFINED) - && mDisplayWindowingMode != other.mDisplayWindowingMode) { - changes |= WINDOW_CONFIG_DISPLAY_WINDOWING_MODE; - } - if ((compareUndefined || other.mDisplayRotation != ROTATION_UNDEFINED) && mDisplayRotation != other.mDisplayRotation) { changes |= WINDOW_CONFIG_DISPLAY_ROTATION; @@ -697,8 +662,6 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu n = mRotation - that.mRotation; if (n != 0) return n; - n = mDisplayWindowingMode - that.mDisplayWindowingMode; - if (n != 0) return n; n = mDisplayRotation - that.mDisplayRotation; if (n != 0) return n; @@ -728,7 +691,6 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu result = 31 * result + mActivityType; result = 31 * result + mAlwaysOnTop; result = 31 * result + mRotation; - result = 31 * result + mDisplayWindowingMode; result = 31 * result + mDisplayRotation; return result; } @@ -742,7 +704,6 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu + " mDisplayRotation=" + (mRotation == ROTATION_UNDEFINED ? "undefined" : rotationToString(mDisplayRotation)) + " mWindowingMode=" + windowingModeToString(mWindowingMode) - + " mDisplayWindowingMode=" + windowingModeToString(mDisplayWindowingMode) + " mActivityType=" + activityTypeToString(mActivityType) + " mAlwaysOnTop=" + alwaysOnTopToString(mAlwaysOnTop) + " mRotation=" + (mRotation == ROTATION_UNDEFINED @@ -818,16 +779,6 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu } /** - * Returns true if the activities associated with this window configuration display a decor - * view. - * @hide - */ - public boolean hasWindowDecorCaption() { - return mActivityType == ACTIVITY_TYPE_STANDARD && (mWindowingMode == WINDOWING_MODE_FREEFORM - || mDisplayWindowingMode == WINDOWING_MODE_FREEFORM); - } - - /** * Returns true if the tasks associated with this window configuration can be resized * independently of their parent container. * @hide diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java index bf094ed57545..8c204597c5f9 100644 --- a/services/core/java/com/android/server/wm/ActivityRecord.java +++ b/services/core/java/com/android/server/wm/ActivityRecord.java @@ -8366,7 +8366,11 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A default: // Fall through } - if (inMultiWindowMode() || getWindowConfiguration().hasWindowDecorCaption()) { + // Use root activity's info for tasks in multi-window mode, or fullscreen tasks in freeform + // task display areas, to ensure visual consistency across activity launches and exits in + // the same task. + final TaskDisplayArea tda = getTaskDisplayArea(); + if (inMultiWindowMode() || (tda != null && tda.inFreeformWindowingMode())) { final ActivityRecord root = task != null ? task.getRootActivity() : null; if (root != null && root != this && !root.shouldCreateCompatDisplayInsets()) { // If the root activity doesn't use size compatibility mode, the activities above diff --git a/services/core/java/com/android/server/wm/ConfigurationContainer.java b/services/core/java/com/android/server/wm/ConfigurationContainer.java index be7c18c49373..31754bf67cc8 100644 --- a/services/core/java/com/android/server/wm/ConfigurationContainer.java +++ b/services/core/java/com/android/server/wm/ConfigurationContainer.java @@ -467,13 +467,6 @@ public abstract class ConfigurationContainer<E extends ConfigurationContainer> { onRequestedOverrideConfigurationChanged(mRequestsTmpConfig); } - /** Sets the windowing mode for the configuration container. */ - void setDisplayWindowingMode(int windowingMode) { - mRequestsTmpConfig.setTo(getRequestedOverrideConfiguration()); - mRequestsTmpConfig.windowConfiguration.setDisplayWindowingMode(windowingMode); - onRequestedOverrideConfigurationChanged(mRequestsTmpConfig); - } - /** * Returns true if this container is currently in multi-window mode. I.e. sharing the screen * with another activity. diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index 87c5b7b8a120..5d3a80f89836 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -2451,7 +2451,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp config.windowConfiguration.setBounds(mTmpRect); config.windowConfiguration.setMaxBounds(mTmpRect); config.windowConfiguration.setWindowingMode(getWindowingMode()); - config.windowConfiguration.setDisplayWindowingMode(getWindowingMode()); computeScreenAppConfiguration(config, dw, dh, displayInfo.rotation); @@ -2829,11 +2828,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp } } - @Override - void setDisplayWindowingMode(int windowingMode) { - setWindowingMode(windowingMode); - } - /** * See {@code WindowState#applyImeWindowsIfNeeded} for the details that we won't traverse the * IME window in some cases. diff --git a/services/core/java/com/android/server/wm/TaskDisplayArea.java b/services/core/java/com/android/server/wm/TaskDisplayArea.java index 90a3b25303f5..2c27b98250c9 100644 --- a/services/core/java/com/android/server/wm/TaskDisplayArea.java +++ b/services/core/java/com/android/server/wm/TaskDisplayArea.java @@ -1880,7 +1880,6 @@ final class TaskDisplayArea extends DisplayArea<WindowContainer> { mTempConfiguration.setTo(getRequestedOverrideConfiguration()); WindowConfiguration tempRequestWindowConfiguration = mTempConfiguration.windowConfiguration; tempRequestWindowConfiguration.setWindowingMode(windowingMode); - tempRequestWindowConfiguration.setDisplayWindowingMode(windowingMode); onRequestedOverrideConfigurationChanged(mTempConfiguration); } diff --git a/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java b/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java index 2e80bc721c7f..db1cab92f83f 100644 --- a/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java @@ -503,7 +503,6 @@ public class SizeCompatTests extends WindowTestsBase { final WindowConfiguration translucentWinConf = requestedConfig.windowConfiguration; translucentWinConf.setActivityType(ACTIVITY_TYPE_STANDARD); translucentWinConf.setWindowingMode(WINDOWING_MODE_MULTI_WINDOW); - translucentWinConf.setDisplayWindowingMode(WINDOWING_MODE_MULTI_WINDOW); translucentWinConf.setAlwaysOnTop(true); translucentActivity.onRequestedOverrideConfigurationChanged(requestedConfig); @@ -512,7 +511,6 @@ public class SizeCompatTests extends WindowTestsBase { // The original override of WindowConfiguration should keep. assertEquals(ACTIVITY_TYPE_STANDARD, translucentActivity.getActivityType()); assertEquals(WINDOWING_MODE_MULTI_WINDOW, translucentWinConf.getWindowingMode()); - assertEquals(WINDOWING_MODE_MULTI_WINDOW, translucentWinConf.getDisplayWindowingMode()); assertTrue(translucentWinConf.isAlwaysOnTop()); // Unless display is going to be rotated, it should always inherit from parent. assertEquals(ROTATION_UNDEFINED, translucentWinConf.getDisplayRotation()); diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowConfigurationTests.java b/services/tests/wmtests/src/com/android/server/wm/WindowConfigurationTests.java index 38aac7cfee22..eca51aed334e 100644 --- a/services/tests/wmtests/src/com/android/server/wm/WindowConfigurationTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/WindowConfigurationTests.java @@ -16,9 +16,7 @@ package com.android.server.wm; -import static android.app.WindowConfiguration.ACTIVITY_TYPE_ASSISTANT; 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.ROTATION_UNDEFINED; import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; @@ -208,43 +206,6 @@ public class WindowConfigurationTests extends WindowTestsBase { /** Ensure the window always has a caption in Freeform window mode or display mode. */ @Test - public void testCaptionShownForFreeformWindowingMode() { - final WindowConfiguration config = new WindowConfiguration(); - config.setActivityType(ACTIVITY_TYPE_STANDARD); - config.setWindowingMode(WINDOWING_MODE_FREEFORM); - config.setDisplayWindowingMode(WINDOWING_MODE_FULLSCREEN); - assertTrue(config.hasWindowDecorCaption()); - - config.setDisplayWindowingMode(WINDOWING_MODE_FREEFORM); - assertTrue(config.hasWindowDecorCaption()); - - config.setWindowingMode(WINDOWING_MODE_FULLSCREEN); - assertTrue(config.hasWindowDecorCaption()); - - config.setDisplayWindowingMode(WINDOWING_MODE_FULLSCREEN); - assertFalse(config.hasWindowDecorCaption()); - } - - /** Caption should not show for non-standard activity window. */ - @Test - public void testCaptionNotShownForNonStandardActivityType() { - final WindowConfiguration config = new WindowConfiguration(); - config.setActivityType(ACTIVITY_TYPE_HOME); - config.setWindowingMode(WINDOWING_MODE_FREEFORM); - config.setDisplayWindowingMode(WINDOWING_MODE_FREEFORM); - assertFalse(config.hasWindowDecorCaption()); - - config.setActivityType(ACTIVITY_TYPE_ASSISTANT); - assertFalse(config.hasWindowDecorCaption()); - - config.setActivityType(ACTIVITY_TYPE_RECENTS); - assertFalse(config.hasWindowDecorCaption()); - - config.setActivityType(ACTIVITY_TYPE_STANDARD); - assertTrue(config.hasWindowDecorCaption()); - } - - @Test public void testMaskedSetTo() { final WindowConfiguration config = new WindowConfiguration(); final WindowConfiguration other = new WindowConfiguration(); |