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

Commit 54c5cc1e authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Ensure addWindow/relayoutWindow won't return stale controls" into rvc-dev

parents a611e762 57ea97e1
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -91,6 +91,7 @@ class Session extends IWindowSession.Stub implements IBinder.DeathRecipient {
    private float mLastReportedAnimatorScale;
    private float mLastReportedAnimatorScale;
    private String mPackageName;
    private String mPackageName;
    private String mRelayoutTag;
    private String mRelayoutTag;
    private final InsetsSourceControl[] mDummyControls =  new InsetsSourceControl[0];


    public Session(WindowManagerService service, IWindowSessionCallback callback) {
    public Session(WindowManagerService service, IWindowSessionCallback callback) {
        mService = service;
        mService = service;
@@ -184,7 +185,7 @@ class Session extends IWindowSession.Stub implements IBinder.DeathRecipient {
        return mService.addWindow(this, window, seq, attrs, viewVisibility, displayId,
        return mService.addWindow(this, window, seq, attrs, viewVisibility, displayId,
                new Rect() /* outFrame */, outContentInsets, outStableInsets,
                new Rect() /* outFrame */, outContentInsets, outStableInsets,
                new DisplayCutout.ParcelableWrapper() /* cutout */, null /* outInputChannel */,
                new DisplayCutout.ParcelableWrapper() /* cutout */, null /* outInputChannel */,
                outInsetsState, null, UserHandle.getUserId(mUid));
                outInsetsState, mDummyControls, UserHandle.getUserId(mUid));
    }
    }


    @Override
    @Override
+16 −17
Original line number Original line Diff line number Diff line
@@ -1387,6 +1387,7 @@ public class WindowManagerService extends IWindowManager.Stub
            DisplayCutout.ParcelableWrapper outDisplayCutout, InputChannel outInputChannel,
            DisplayCutout.ParcelableWrapper outDisplayCutout, InputChannel outInputChannel,
            InsetsState outInsetsState, InsetsSourceControl[] outActiveControls,
            InsetsState outInsetsState, InsetsSourceControl[] outActiveControls,
            int requestUserId) {
            int requestUserId) {
        Arrays.fill(outActiveControls, null);
        int[] appOp = new int[1];
        int[] appOp = new int[1];
        final boolean isRoundedCornerOverlay = (attrs.privateFlags
        final boolean isRoundedCornerOverlay = (attrs.privateFlags
                & PRIVATE_FLAG_IS_ROUNDED_CORNERS_OVERLAY) != 0;
                & PRIVATE_FLAG_IS_ROUNDED_CORNERS_OVERLAY) != 0;
@@ -2133,6 +2134,7 @@ public class WindowManagerService extends IWindowManager.Stub
            SurfaceControl outSurfaceControl, InsetsState outInsetsState,
            SurfaceControl outSurfaceControl, InsetsState outInsetsState,
            InsetsSourceControl[] outActiveControls, Point outSurfaceSize,
            InsetsSourceControl[] outActiveControls, Point outSurfaceSize,
            SurfaceControl outBLASTSurfaceControl) {
            SurfaceControl outBLASTSurfaceControl) {
        Arrays.fill(outActiveControls, null);
        int result = 0;
        int result = 0;
        boolean configChanged;
        boolean configChanged;
        final int pid = Binder.getCallingPid();
        final int pid = Binder.getCallingPid();
@@ -2470,10 +2472,8 @@ public class WindowManagerService extends IWindowManager.Stub
    }
    }


    private void getInsetsSourceControls(WindowState win, InsetsSourceControl[] outControls) {
    private void getInsetsSourceControls(WindowState win, InsetsSourceControl[] outControls) {
        if (outControls != null) {
        final InsetsSourceControl[] controls =
        final InsetsSourceControl[] controls =
                win.getDisplayContent().getInsetsStateController().getControlsForDispatch(win);
                win.getDisplayContent().getInsetsStateController().getControlsForDispatch(win);
            Arrays.fill(outControls, null);
        if (controls != null) {
        if (controls != null) {
            final int length = Math.min(controls.length, outControls.length);
            final int length = Math.min(controls.length, outControls.length);
            for (int i = 0; i < length; i++) {
            for (int i = 0; i < length; i++) {
@@ -2489,7 +2489,6 @@ public class WindowManagerService extends IWindowManager.Stub
            }
            }
        }
        }
    }
    }
    }


    private boolean tryStartExitingAnimation(WindowState win, WindowStateAnimator winAnimator,
    private boolean tryStartExitingAnimation(WindowState win, WindowStateAnimator winAnimator,
            boolean focusMayChange) {
            boolean focusMayChange) {