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,
|
private void resetPrevPip(@NonNull TransitionInfo.Change prevPipTaskChange,
|
||||||
@NonNull SurfaceControl.Transaction startTransaction) {
|
@NonNull SurfaceControl.Transaction startTransaction) {
|
||||||
final SurfaceControl leash = prevPipTaskChange.getLeash();
|
final SurfaceControl leash = prevPipTaskChange.getLeash();
|
||||||
final Rect bounds = prevPipTaskChange.getEndAbsBounds();
|
startTransaction.remove(leash);
|
||||||
final Point offset = prevPipTaskChange.getEndRelOffset();
|
|
||||||
bounds.offset(-offset.x, -offset.y);
|
|
||||||
|
|
||||||
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;
|
mHasFadeOut = false;
|
||||||
mCurrentPipTaskToken = null;
|
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
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user