Merge "Preserve the leash reference in PipTaskOrganizer" into udc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
36f3373f7d
@@ -1018,24 +1018,17 @@ public class PipTransition extends PipTransitionController {
|
||||
private void resetPrevPip(@NonNull TransitionInfo.Change prevPipTaskChange,
|
||||
@NonNull SurfaceControl.Transaction startTransaction) {
|
||||
final SurfaceControl leash = prevPipTaskChange.getLeash();
|
||||
final Rect bounds = prevPipTaskChange.getEndAbsBounds();
|
||||
final Point offset = prevPipTaskChange.getEndRelOffset();
|
||||
bounds.offset(-offset.x, -offset.y);
|
||||
startTransaction.remove(leash);
|
||||
|
||||
startTransaction.setWindowCrop(leash, null);
|
||||
startTransaction.setMatrix(leash, 1, 0, 0, 1);
|
||||
startTransaction.setCornerRadius(leash, 0);
|
||||
startTransaction.setPosition(leash, bounds.left, bounds.top);
|
||||
|
||||
if (mHasFadeOut && prevPipTaskChange.getTaskInfo().isVisible()) {
|
||||
if (mPipAnimationController.getCurrentAnimator() != null) {
|
||||
mPipAnimationController.getCurrentAnimator().cancel();
|
||||
}
|
||||
startTransaction.setAlpha(leash, 1);
|
||||
}
|
||||
mHasFadeOut = false;
|
||||
mCurrentPipTaskToken = null;
|
||||
mPipOrganizer.onExitPipFinished(prevPipTaskChange.getTaskInfo());
|
||||
|
||||
// clean-up the state in PipTaskOrganizer if the PipTaskOrganizer#onTaskAppeared() hasn't
|
||||
// been called yet with its leash reference now pointing to a new SurfaceControl not
|
||||
// matching the leash of the pip we are removing.
|
||||
if (mPipOrganizer.getSurfaceControl() == leash) {
|
||||
mPipOrganizer.onExitPipFinished(prevPipTaskChange.getTaskInfo());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user