Merge "Allow finish resize transaction to be overriden" into rvc-dev

This commit is contained in:
Jorge Gil
2020-06-18 14:16:24 +00:00
committed by Android (Google) Code Review

View File

@@ -744,9 +744,9 @@ public class PipTaskOrganizer extends TaskOrganizer implements
// on the task to ensure that the task "matches" the parent's bounds.
taskBounds = (direction == TRANSITION_DIRECTION_TO_FULLSCREEN)
? null : destinationBounds;
// As for the final windowing mode, simply reset it to undefined and reset the activity
// mode set prior to the animation running
wct.setWindowingMode(mToken, WINDOWING_MODE_UNDEFINED);
// Reset the final windowing mode.
wct.setWindowingMode(mToken, getOutPipWindowingMode());
// Simply reset the activity mode set prior to the animation running.
wct.setActivityWindowingMode(mToken, WINDOWING_MODE_UNDEFINED);
if (mSplitDivider != null && direction == TRANSITION_DIRECTION_TO_SPLIT_SCREEN) {
wct.reparent(mToken, mSplitDivider.getSecondaryRoot(), true /* onTop */);
@@ -758,9 +758,30 @@ public class PipTaskOrganizer extends TaskOrganizer implements
wct.setBounds(mToken, taskBounds);
wct.setBoundsChangeTransaction(mToken, tx);
applyFinishBoundsResize(wct, direction);
}
/**
* Applies the window container transaction to finish a bounds resize.
*
* Called by {@link #finishResize(SurfaceControl.Transaction, Rect, int, int)}} once it has
* finished preparing the transaction. It allows subclasses to modify the transaction before
* applying it.
*/
public void applyFinishBoundsResize(@NonNull WindowContainerTransaction wct,
@PipAnimationController.TransitionDirection int direction) {
WindowOrganizer.applyTransaction(wct);
}
/**
* The windowing mode to restore to when resizing out of PIP direction. Defaults to undefined
* and can be overridden to restore to an alternate windowing mode.
*/
public int getOutPipWindowingMode() {
// By default, simply reset the windowing mode to undefined.
return WINDOWING_MODE_UNDEFINED;
}
private void animateResizePip(Rect currentBounds, Rect destinationBounds,
@PipAnimationController.TransitionDirection int direction, int durationMs) {
if (Looper.myLooper() != mUpdateHandler.getLooper()) {