Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b866c032 authored by Vishnu Nair's avatar Vishnu Nair Committed by Automerger Merge Worker
Browse files

Merge "ViewRootImpl: Update opaque flag if SurfaceControl changes from...

Merge "ViewRootImpl: Update opaque flag if SurfaceControl changes from relayout" into sc-qpr1-dev am: 8dc8182a am: 9bbf9cd7

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15934803

Change-Id: Ic659035d5ed05e2927d672f52b52ee31e87ee9d4
parents 42ca299b 9bbf9cd7
Loading
Loading
Loading
Loading
+10 −6
Original line number Diff line number Diff line
@@ -2864,8 +2864,13 @@ public final class ViewRootImpl implements ViewParent,
                    }
                }

                final boolean surfaceControlChanged =
                        (relayoutResult & RELAYOUT_RES_SURFACE_CHANGED)
                                == RELAYOUT_RES_SURFACE_CHANGED;

                if (mSurfaceControl.isValid()) {
                    updateOpacity(mWindowAttributes, dragResizing);
                    updateOpacity(mWindowAttributes, dragResizing,
                            surfaceControlChanged /*forceUpdate */);
                }

                if (DEBUG_LAYOUT) Log.v(mTag, "relayout: frame=" + frame.toShortString()
@@ -2900,9 +2905,7 @@ public final class ViewRootImpl implements ViewParent,
                // RELAYOUT_RES_SURFACE_CHANGED since it should indicate that WMS created a new
                // SurfaceControl.
                surfaceReplaced = (surfaceGenerationId != mSurface.getGenerationId()
                        || (relayoutResult & RELAYOUT_RES_SURFACE_CHANGED)
                        == RELAYOUT_RES_SURFACE_CHANGED)
                        && mSurface.isValid();
                        || surfaceControlChanged) && mSurface.isValid();
                if (surfaceReplaced) {
                    mSurfaceSequenceId++;
                }
@@ -7895,7 +7898,8 @@ public final class ViewRootImpl implements ViewParent,
        return relayoutResult;
    }

    private void updateOpacity(WindowManager.LayoutParams params, boolean dragResizing) {
    private void updateOpacity(WindowManager.LayoutParams params, boolean dragResizing,
            boolean forceUpdate) {
        boolean opaque = false;

        if (!PixelFormat.formatHasAlpha(params.format)
@@ -7911,7 +7915,7 @@ public final class ViewRootImpl implements ViewParent,
            opaque = true;
        }

        if (mIsSurfaceOpaque == opaque) {
        if (!forceUpdate && mIsSurfaceOpaque == opaque) {
            return;
        }