summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java52
-rw-r--r--libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/WindowDecorationTests.java31
2 files changed, 17 insertions, 66 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java
index 19a31822aabb..8b35694ff8fd 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java
@@ -91,7 +91,6 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer>
Display mDisplay;
Context mDecorWindowContext;
SurfaceControl mDecorationContainerSurface;
- SurfaceControl mTaskBackgroundSurface;
SurfaceControl mCaptionContainerSurface;
private WindowlessWindowManager mCaptionWindowManager;
@@ -202,6 +201,11 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer>
.inflate(params.mLayoutResId, null);
}
+ final Resources resources = mDecorWindowContext.getResources();
+ final Rect taskBounds = taskConfig.windowConfiguration.getBounds();
+ outResult.mWidth = taskBounds.width();
+ outResult.mHeight = taskBounds.height();
+
// DecorationContainerSurface
if (mDecorationContainerSurface == null) {
final SurfaceControl.Builder builder = mSurfaceControlBuilderSupplier.get();
@@ -216,38 +220,9 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer>
TaskConstants.TASK_CHILD_LAYER_WINDOW_DECORATIONS);
}
- final Rect taskBounds = taskConfig.windowConfiguration.getBounds();
- final Resources resources = mDecorWindowContext.getResources();
- outResult.mWidth = taskBounds.width();
- outResult.mHeight = taskBounds.height();
startT.setWindowCrop(mDecorationContainerSurface, outResult.mWidth, outResult.mHeight)
.show(mDecorationContainerSurface);
- // TODO(b/270202228): This surface can be removed. Instead, use
- // |mDecorationContainerSurface| to set the background now that it no longer has outsets
- // and its crop is set to the task bounds.
- // TaskBackgroundSurface
- if (mTaskBackgroundSurface == null) {
- final SurfaceControl.Builder builder = mSurfaceControlBuilderSupplier.get();
- mTaskBackgroundSurface = builder
- .setName("Background of Task=" + mTaskInfo.taskId)
- .setEffectLayer()
- .setParent(mTaskSurface)
- .build();
-
- startT.setLayer(mTaskBackgroundSurface, TaskConstants.TASK_CHILD_LAYER_TASK_BACKGROUND);
- }
-
- float shadowRadius = loadDimension(resources, params.mShadowRadiusId);
- int backgroundColorInt = mTaskInfo.taskDescription.getBackgroundColor();
- mTmpColor[0] = (float) Color.red(backgroundColorInt) / 255.f;
- mTmpColor[1] = (float) Color.green(backgroundColorInt) / 255.f;
- mTmpColor[2] = (float) Color.blue(backgroundColorInt) / 255.f;
- startT.setWindowCrop(mTaskBackgroundSurface, taskBounds.width(), taskBounds.height())
- .setShadowRadius(mTaskBackgroundSurface, shadowRadius)
- .setColor(mTaskBackgroundSurface, mTmpColor)
- .show(mTaskBackgroundSurface);
-
// CaptionContainerSurface, CaptionWindowManager
if (mCaptionContainerSurface == null) {
final SurfaceControl.Builder builder = mSurfaceControlBuilderSupplier.get();
@@ -260,7 +235,6 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer>
final int captionHeight = loadDimensionPixelSize(resources, params.mCaptionHeightId);
final int captionWidth = taskBounds.width();
-
startT.setWindowCrop(mCaptionContainerSurface, captionWidth, captionHeight)
.show(mCaptionContainerSurface);
@@ -301,8 +275,16 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer>
}
// Task surface itself
+ float shadowRadius = loadDimension(resources, params.mShadowRadiusId);
+ int backgroundColorInt = mTaskInfo.taskDescription.getBackgroundColor();
+ mTmpColor[0] = (float) Color.red(backgroundColorInt) / 255.f;
+ mTmpColor[1] = (float) Color.green(backgroundColorInt) / 255.f;
+ mTmpColor[2] = (float) Color.blue(backgroundColorInt) / 255.f;
Point taskPosition = mTaskInfo.positionInParent;
- startT.show(mTaskSurface);
+ startT.setWindowCrop(mTaskSurface, outResult.mWidth, outResult.mHeight)
+ .setShadowRadius(mTaskSurface, shadowRadius)
+ .setColor(mTaskSurface, mTmpColor)
+ .show(mTaskSurface);
finishT.setPosition(mTaskSurface, taskPosition.x, taskPosition.y)
.setWindowCrop(mTaskSurface, outResult.mWidth, outResult.mHeight);
}
@@ -344,12 +326,6 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer>
released = true;
}
- if (mTaskBackgroundSurface != null) {
- t.remove(mTaskBackgroundSurface);
- mTaskBackgroundSurface = null;
- released = true;
- }
-
if (released) {
t.apply();
}
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/WindowDecorationTests.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/WindowDecorationTests.java
index 38a519af934b..c1e53a90b7e0 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/WindowDecorationTests.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/WindowDecorationTests.java
@@ -50,7 +50,6 @@ import android.view.ViewRootImpl;
import android.view.WindowInsets;
import android.view.WindowManager.LayoutParams;
import android.window.SurfaceSyncGroup;
-import android.window.TaskConstants;
import android.window.WindowContainerTransaction;
import androidx.test.filters.SmallTest;
@@ -190,10 +189,6 @@ public class WindowDecorationTests extends ShellTestCase {
final SurfaceControl.Builder decorContainerSurfaceBuilder =
createMockSurfaceControlBuilder(decorContainerSurface);
mMockSurfaceControlBuilders.add(decorContainerSurfaceBuilder);
- final SurfaceControl taskBackgroundSurface = mock(SurfaceControl.class);
- final SurfaceControl.Builder taskBackgroundSurfaceBuilder =
- createMockSurfaceControlBuilder(taskBackgroundSurface);
- mMockSurfaceControlBuilders.add(taskBackgroundSurfaceBuilder);
final SurfaceControl captionContainerSurface = mock(SurfaceControl.class);
final SurfaceControl.Builder captionContainerSurfaceBuilder =
createMockSurfaceControlBuilder(captionContainerSurface);
@@ -222,16 +217,6 @@ public class WindowDecorationTests extends ShellTestCase {
verify(mMockSurfaceControlStartT).setTrustedOverlay(decorContainerSurface, true);
verify(mMockSurfaceControlStartT).setWindowCrop(decorContainerSurface, 300, 100);
- verify(taskBackgroundSurfaceBuilder).setParent(taskSurface);
- verify(taskBackgroundSurfaceBuilder).setEffectLayer();
- verify(mMockSurfaceControlStartT).setWindowCrop(taskBackgroundSurface, 300, 100);
- verify(mMockSurfaceControlStartT)
- .setColor(taskBackgroundSurface, new float[] {1.f, 1.f, 0.f});
- verify(mMockSurfaceControlStartT).setShadowRadius(taskBackgroundSurface, 10);
- verify(mMockSurfaceControlStartT).setLayer(taskBackgroundSurface,
- TaskConstants.TASK_CHILD_LAYER_TASK_BACKGROUND);
- verify(mMockSurfaceControlStartT).show(taskBackgroundSurface);
-
verify(captionContainerSurfaceBuilder).setParent(decorContainerSurface);
verify(captionContainerSurfaceBuilder).setContainerLayer();
verify(mMockSurfaceControlStartT).setWindowCrop(captionContainerSurface, 300, 64);
@@ -260,6 +245,9 @@ public class WindowDecorationTests extends ShellTestCase {
.setWindowCrop(taskSurface, 300, 100);
verify(mMockSurfaceControlStartT)
.show(taskSurface);
+ verify(mMockSurfaceControlStartT)
+ .setColor(taskSurface, new float[] {1.f, 1.f, 0.f});
+ verify(mMockSurfaceControlStartT).setShadowRadius(taskSurface, 10);
assertEquals(300, mRelayoutResult.mWidth);
assertEquals(100, mRelayoutResult.mHeight);
@@ -275,10 +263,6 @@ public class WindowDecorationTests extends ShellTestCase {
final SurfaceControl.Builder decorContainerSurfaceBuilder =
createMockSurfaceControlBuilder(decorContainerSurface);
mMockSurfaceControlBuilders.add(decorContainerSurfaceBuilder);
- final SurfaceControl taskBackgroundSurface = mock(SurfaceControl.class);
- final SurfaceControl.Builder taskBackgroundSurfaceBuilder =
- createMockSurfaceControlBuilder(taskBackgroundSurface);
- mMockSurfaceControlBuilders.add(taskBackgroundSurfaceBuilder);
final SurfaceControl captionContainerSurface = mock(SurfaceControl.class);
final SurfaceControl.Builder captionContainerSurfaceBuilder =
createMockSurfaceControlBuilder(captionContainerSurface);
@@ -318,7 +302,6 @@ public class WindowDecorationTests extends ShellTestCase {
releaseOrder.verify(mMockSurfaceControlViewHost).release();
releaseOrder.verify(t).remove(captionContainerSurface);
releaseOrder.verify(t).remove(decorContainerSurface);
- releaseOrder.verify(t).remove(taskBackgroundSurface);
releaseOrder.verify(t).apply();
verify(mMockWindowContainerTransaction)
.removeInsetsSource(eq(taskInfo.token), any(), anyInt(), anyInt());
@@ -379,10 +362,6 @@ public class WindowDecorationTests extends ShellTestCase {
final SurfaceControl.Builder decorContainerSurfaceBuilder =
createMockSurfaceControlBuilder(decorContainerSurface);
mMockSurfaceControlBuilders.add(decorContainerSurfaceBuilder);
- final SurfaceControl taskBackgroundSurface = mock(SurfaceControl.class);
- final SurfaceControl.Builder taskBackgroundSurfaceBuilder =
- createMockSurfaceControlBuilder(taskBackgroundSurface);
- mMockSurfaceControlBuilders.add(taskBackgroundSurfaceBuilder);
final SurfaceControl captionContainerSurface = mock(SurfaceControl.class);
final SurfaceControl.Builder captionContainerSurfaceBuilder =
createMockSurfaceControlBuilder(captionContainerSurface);
@@ -451,10 +430,6 @@ public class WindowDecorationTests extends ShellTestCase {
final SurfaceControl.Builder decorContainerSurfaceBuilder =
createMockSurfaceControlBuilder(decorContainerSurface);
mMockSurfaceControlBuilders.add(decorContainerSurfaceBuilder);
- final SurfaceControl taskBackgroundSurface = mock(SurfaceControl.class);
- final SurfaceControl.Builder taskBackgroundSurfaceBuilder =
- createMockSurfaceControlBuilder(taskBackgroundSurface);
- mMockSurfaceControlBuilders.add(taskBackgroundSurfaceBuilder);
final SurfaceControl captionContainerSurface = mock(SurfaceControl.class);
final SurfaceControl.Builder captionContainerSurfaceBuilder =
createMockSurfaceControlBuilder(captionContainerSurface);