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

Commit 40b4880d authored by Tiger Huang's avatar Tiger Huang
Browse files

Apply synced relayout if we have FLAG_WINDOW_VISIBILITY_CHANGED

The client needs to call relayout to get the valid surface if
- mFirst,
- mViewVisibility != viewVisibility,
- mNewSurfaceNeeded, or
- mAppVisibilityChanged.

We didn't cover mNewSurfaceNeeded or mAppVisibilityChanged previously.
All of them are covered by FLAG_WINDOW_VISIBILITY_CHANGED.

Bug: 244521023
Bug: 161810301
Test: 1. Enable LOCAL_LAYOUT
      2. Open Camera and double press the power button.
      See if the preview screen of Camera become blank.
Change-Id: I37fb8ffc9063b72bf3abba5d29fc2f750e7fc64f
parent 915edab6
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -8085,7 +8085,8 @@ public final class ViewRootImpl implements ViewParent,
        final int measuredWidth = mView.getMeasuredWidth();
        final int measuredHeight = mView.getMeasuredHeight();
        final boolean relayoutAsync;
        if (LOCAL_LAYOUT && !mFirst && viewVisibility == mViewVisibility
        if (LOCAL_LAYOUT
                && (mViewFrameInfo.flags & FrameInfo.FLAG_WINDOW_VISIBILITY_CHANGED) == 0
                && mWindowAttributes.type != TYPE_APPLICATION_STARTING
                && mSyncSeqId <= mLastSyncSeqId
                && winConfigFromAm.diff(winConfigFromWm, false /* compareUndefined */) == 0) {