diff options
13 files changed, 39 insertions, 40 deletions
diff --git a/core/java/android/app/ActivityView.java b/core/java/android/app/ActivityView.java index 47398674d74c..ce5d8a5cfeb2 100644 --- a/core/java/android/app/ActivityView.java +++ b/core/java/android/app/ActivityView.java @@ -400,7 +400,7 @@ public class ActivityView extends ViewGroup { final IWindowManager wm = WindowManagerGlobal.getWindowManagerService(); mRootSurfaceControl = new SurfaceControl.Builder(surfaceSession) - .setContainerLayer(true) + .setContainerLayer() .setParent(mSurfaceView.getSurfaceControl()) .setName(DISPLAY_NAME) .build(); diff --git a/core/java/android/view/SurfaceControl.java b/core/java/android/view/SurfaceControl.java index 4032a6b84801..2956606a26dd 100644 --- a/core/java/android/view/SurfaceControl.java +++ b/core/java/android/view/SurfaceControl.java @@ -501,7 +501,16 @@ public final class SurfaceControl implements Parcelable { } mWidth = width; mHeight = height; - return this; + // set this as a buffer layer since we are specifying a buffer size. + return setFlags(FX_SURFACE_NORMAL, FX_SURFACE_MASK); + } + + /** + * Set the initial size of the controlled surface's buffers in pixels. + */ + private void unsetBufferSize() { + mWidth = 0; + mHeight = 0; } /** @@ -619,16 +628,11 @@ public final class SurfaceControl implements Parcelable { * Color layers will not have an associated BufferQueue and will instead always render a * solid color (that is, solid before plane alpha). Currently that color is black. * - * @param isColorLayer Whether to create a color layer. * @hide */ - public Builder setColorLayer(boolean isColorLayer) { - if (isColorLayer) { - mFlags |= FX_SURFACE_DIM; - } else { - mFlags &= ~FX_SURFACE_DIM; - } - return this; + public Builder setColorLayer() { + unsetBufferSize(); + return setFlags(FX_SURFACE_DIM, FX_SURFACE_MASK); } private boolean isColorLayerSet() { @@ -641,16 +645,11 @@ public final class SurfaceControl implements Parcelable { * Container layers will not be rendered in any fashion and instead are used * as a parent of renderable layers. * - * @param isContainerLayer Whether to create a container layer. * @hide */ - public Builder setContainerLayer(boolean isContainerLayer) { - if (isContainerLayer) { - mFlags |= FX_SURFACE_CONTAINER; - } else { - mFlags &= ~FX_SURFACE_CONTAINER; - } - return this; + public Builder setContainerLayer() { + unsetBufferSize(); + return setFlags(FX_SURFACE_CONTAINER, FX_SURFACE_MASK); } private boolean isContainerLayerSet() { @@ -658,7 +657,7 @@ public final class SurfaceControl implements Parcelable { } /** - * Set 'Surface creation flags' such as {@link HIDDEN}, {@link SECURE}. + * Set 'Surface creation flags' such as {@link #HIDDEN}, {@link #SECURE}. * * TODO: Finish conversion to individual builder methods? * @param flags The combined flags @@ -668,6 +667,11 @@ public final class SurfaceControl implements Parcelable { mFlags = flags; return this; } + + private Builder setFlags(int flags, int mask) { + mFlags = (mFlags & ~mask) | flags; + return this; + } } /** diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java index ecbec652fcf0..ecb2ac4ba241 100644 --- a/core/java/android/view/SurfaceView.java +++ b/core/java/android/view/SurfaceView.java @@ -33,7 +33,6 @@ import android.graphics.Region; import android.graphics.RenderNode; import android.os.Build; import android.os.Handler; -import android.os.IBinder; import android.os.Looper; import android.os.SystemClock; import android.util.AttributeSet; @@ -588,7 +587,7 @@ public class SurfaceView extends View implements ViewRootImpl.WindowStoppedCallb mBackgroundControl = new SurfaceControl.Builder(mSurfaceSession) .setName("Background for -" + name) .setOpaque(true) - .setColorLayer(true) + .setColorLayer() .setParent(mSurfaceControl) .build(); diff --git a/services/core/java/com/android/server/display/ColorFade.java b/services/core/java/com/android/server/display/ColorFade.java index f2c539cb257c..0400b56c4fab 100644 --- a/services/core/java/com/android/server/display/ColorFade.java +++ b/services/core/java/com/android/server/display/ColorFade.java @@ -575,7 +575,7 @@ final class ColorFade { final SurfaceControl.Builder builder = new SurfaceControl.Builder(mSurfaceSession).setName("ColorFade"); if (mMode == MODE_FADE) { - builder.setColorLayer(true); + builder.setColorLayer(); } else { builder.setBufferSize(mDisplayWidth, mDisplayHeight); } diff --git a/services/core/java/com/android/server/wm/BlackFrame.java b/services/core/java/com/android/server/wm/BlackFrame.java index c90f5bfb7ee0..fd72a4af9848 100644 --- a/services/core/java/com/android/server/wm/BlackFrame.java +++ b/services/core/java/com/android/server/wm/BlackFrame.java @@ -48,7 +48,7 @@ public class BlackFrame { surface = dc.makeOverlay() .setName("BlackSurface") - .setColorLayer(true) + .setColorLayer() .setParent(null) // TODO: Work-around for b/69259549 .build(); transaction.setWindowCrop(surface, w, h); diff --git a/services/core/java/com/android/server/wm/Dimmer.java b/services/core/java/com/android/server/wm/Dimmer.java index c39060ee1922..8f6b67a26594 100644 --- a/services/core/java/com/android/server/wm/Dimmer.java +++ b/services/core/java/com/android/server/wm/Dimmer.java @@ -164,7 +164,7 @@ class Dimmer { private SurfaceControl makeDimLayer() { return mHost.makeChildSurface(null) .setParent(mHost.getSurfaceControl()) - .setColorLayer(true) + .setColorLayer() .setName("Dim Layer for - " + mHost.getName()) .build(); } diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index 7a9ff527fc08..3426ba611c86 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -30,14 +30,11 @@ import static android.content.res.Configuration.ORIENTATION_PORTRAIT; import static android.view.Display.DEFAULT_DISPLAY; import static android.view.Display.FLAG_PRIVATE; import static android.view.InsetsState.TYPE_IME; -import static android.view.InsetsState.TYPE_NAVIGATION_BAR; -import static android.view.InsetsState.TYPE_TOP_BAR; import static android.view.Surface.ROTATION_0; import static android.view.Surface.ROTATION_180; import static android.view.Surface.ROTATION_270; import static android.view.Surface.ROTATION_90; import static android.view.View.GONE; -import static android.view.ViewRootImpl.NEW_INSETS_MODE_FULL; import static android.view.WindowManager.DOCKED_BOTTOM; import static android.view.WindowManager.DOCKED_INVALID; import static android.view.WindowManager.DOCKED_TOP; @@ -168,7 +165,6 @@ import android.view.SurfaceControl; import android.view.SurfaceControl.Transaction; import android.view.SurfaceSession; import android.view.View; -import android.view.ViewRootImpl; import android.view.WindowManager; import android.view.WindowManagerPolicyConstants.PointerEventListener; @@ -888,7 +884,9 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo mDividerControllerLocked = new DockedStackDividerController(service, this); mPinnedStackControllerLocked = new PinnedStackController(service, this); - final SurfaceControl.Builder b = mWmService.makeSurfaceBuilder(mSession).setOpaque(true); + final SurfaceControl.Builder b = mWmService.makeSurfaceBuilder(mSession) + .setOpaque(true) + .setContainerLayer(); mWindowingLayer = b.setName("Display Root").build(); mOverlayLayer = b.setName("Display Overlays").build(); @@ -4569,7 +4567,7 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo @Override SurfaceControl.Builder makeChildSurface(WindowContainer child) { SurfaceSession s = child != null ? child.getSession() : getSession(); - final SurfaceControl.Builder b = mWmService.makeSurfaceBuilder(s); + final SurfaceControl.Builder b = mWmService.makeSurfaceBuilder(s).setContainerLayer(); if (child == null) { return b; } diff --git a/services/core/java/com/android/server/wm/DragState.java b/services/core/java/com/android/server/wm/DragState.java index 3f77e1c6886b..2b2231ae6477 100644 --- a/services/core/java/com/android/server/wm/DragState.java +++ b/services/core/java/com/android/server/wm/DragState.java @@ -164,7 +164,7 @@ class DragState { if (mInputSurface == null) { mInputSurface = mService.makeSurfaceBuilder(mService.mRoot.getDisplayContent(displayId) - .getSession()).setContainerLayer(true) + .getSession()).setContainerLayer() .setName("Drag and Drop Input Consumer").build(); } final InputWindowHandle h = getInputWindowHandle(); diff --git a/services/core/java/com/android/server/wm/InputConsumerImpl.java b/services/core/java/com/android/server/wm/InputConsumerImpl.java index 4df5a0b5ad9e..ab95e4b52dc6 100644 --- a/services/core/java/com/android/server/wm/InputConsumerImpl.java +++ b/services/core/java/com/android/server/wm/InputConsumerImpl.java @@ -22,13 +22,11 @@ import android.os.IBinder; import android.os.Process; import android.os.RemoteException; import android.os.UserHandle; -import android.view.InputChannel; -import android.view.WindowManager; - import android.view.InputApplicationHandle; +import android.view.InputChannel; import android.view.InputWindowHandle; import android.view.SurfaceControl; -import android.util.Slog; +import android.view.WindowManager; import java.io.PrintWriter; @@ -89,7 +87,7 @@ class InputConsumerImpl implements IBinder.DeathRecipient { mWindowHandle.scaleFactor = 1.0f; mInputSurface = mService.makeSurfaceBuilder(mService.mRoot.getDisplayContent(displayId) - .getSession()).setContainerLayer(true).setName("Input Consumer " + name) + .getSession()).setContainerLayer().setName("Input Consumer " + name) .build(); } diff --git a/services/core/java/com/android/server/wm/Letterbox.java b/services/core/java/com/android/server/wm/Letterbox.java index 434084cc1f3d..18fce67340c0 100644 --- a/services/core/java/com/android/server/wm/Letterbox.java +++ b/services/core/java/com/android/server/wm/Letterbox.java @@ -149,7 +149,7 @@ public class Letterbox { private void createSurface() { mSurface = mFactory.get().setName("Letterbox - " + mType) - .setFlags(HIDDEN).setColorLayer(true).build(); + .setFlags(HIDDEN).setColorLayer().build(); mSurface.setLayer(-1); mSurface.setColor(new float[]{0, 0, 0}); } diff --git a/services/core/java/com/android/server/wm/TaskPositioningController.java b/services/core/java/com/android/server/wm/TaskPositioningController.java index 916316549f39..cdcb85720724 100644 --- a/services/core/java/com/android/server/wm/TaskPositioningController.java +++ b/services/core/java/com/android/server/wm/TaskPositioningController.java @@ -83,7 +83,7 @@ class TaskPositioningController { final DisplayContent dc = mService.mRoot.getDisplayContent(displayId); if (mInputSurface == null) { mInputSurface = mService.makeSurfaceBuilder(dc.getSession()) - .setContainerLayer(true) + .setContainerLayer() .setName("Drag and Drop Input Consumer").build(); } diff --git a/services/core/java/com/android/server/wm/TaskSnapshotSurface.java b/services/core/java/com/android/server/wm/TaskSnapshotSurface.java index 2d3e3aee4b7f..938c8b452e29 100644 --- a/services/core/java/com/android/server/wm/TaskSnapshotSurface.java +++ b/services/core/java/com/android/server/wm/TaskSnapshotSurface.java @@ -61,12 +61,12 @@ import android.util.MergedConfiguration; import android.util.Slog; import android.view.DisplayCutout; import android.view.IWindowSession; +import android.view.InsetsState; import android.view.Surface; import android.view.SurfaceControl; import android.view.SurfaceSession; import android.view.View; import android.view.ViewGroup.LayoutParams; -import android.view.InsetsState; import android.view.WindowManager; import android.view.WindowManagerGlobal; diff --git a/services/core/java/com/android/server/wm/TaskStack.java b/services/core/java/com/android/server/wm/TaskStack.java index 8ed7d04f026d..c88b0e50218a 100644 --- a/services/core/java/com/android/server/wm/TaskStack.java +++ b/services/core/java/com/android/server/wm/TaskStack.java @@ -863,7 +863,7 @@ public class TaskStack extends WindowContainer<Task> implements updateSurfaceBounds(); if (mAnimationBackgroundSurface == null) { - mAnimationBackgroundSurface = makeChildSurface(null).setColorLayer(true) + mAnimationBackgroundSurface = makeChildSurface(null).setColorLayer() .setName("animation background stackId=" + mStackId) .build(); } |