Merge "Remove the task background surface" into udc-dev
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user