summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/app/WindowConfiguration.java51
-rw-r--r--services/core/java/com/android/server/wm/ActivityRecord.java6
-rw-r--r--services/core/java/com/android/server/wm/ConfigurationContainer.java7
-rw-r--r--services/core/java/com/android/server/wm/DisplayContent.java6
-rw-r--r--services/core/java/com/android/server/wm/TaskDisplayArea.java1
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java2
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/WindowConfigurationTests.java39
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();