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

Commit d1674cd4 authored by Winson Chung's avatar Winson Chung
Browse files

Reset override bounds when animating to fullscreen



- Ensure that we reset the override bounds when leaving PIP to fullscreen
  otherwise the task won't be considered as filling its parent which leads
  to a number of other issues
- Updating a call from the sysui refactoring -- now that we don't update
  the display info from task stack bounds changes, we need to always get
  the display info changes directly otherwise we run the wrong logic on
  the sysui end when the movement bounds change

Bug: 151058330
Test: Animate pip to fullscreen landscape activity and try to re-enter,
      ensure that there's no rotation
Change-Id: I0fd13f2f20e75de24db681bc6ff46e49322b95bb
Signed-off-by: default avatarWinson Chung <winsonc@google.com>
parent 735ed754
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -415,11 +415,16 @@ public class PipTaskOrganizer extends ITaskOrganizer.Stub {
        }
        mLastReportedBounds.set(destinationBounds);
        try {
            // If we are animating to fullscreen, then we need to reset the override bounds on the
            // task to ensure that the task "matches" the parent's bounds
            Rect taskBounds = direction == TRANSITION_DIRECTION_TO_FULLSCREEN
                    ? null
                    : destinationBounds;
            final WindowContainerTransaction wct = new WindowContainerTransaction();
            if (direction == TRANSITION_DIRECTION_TO_PIP) {
                wct.scheduleFinishEnterPip(mToken, destinationBounds);
                wct.scheduleFinishEnterPip(mToken, taskBounds);
            } else {
                wct.setBounds(mToken, destinationBounds);
                wct.setBounds(mToken, taskBounds);
            }
            wct.setBoundsChangeTransaction(mToken, tx);
            mTaskOrganizerController.applyContainerTransaction(wct, null /* ITaskOrganizer */);
+1 −3
Original line number Diff line number Diff line
@@ -2224,9 +2224,7 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
                            .addTaggedData(MetricsEvent.FIELD_DISPLAY_ID, getDisplayId()));
        }

        // If there was no pinned stack, we still need to notify the controller of the display info
        // update as a result of the config change.
        if (mPinnedStackControllerLocked != null && !hasPinnedTask()) {
        if (mPinnedStackControllerLocked != null) {
            mPinnedStackControllerLocked.onDisplayInfoChanged(getDisplayInfo());
        }
    }