diff options
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); |