Merge "Use sync transaction for dim layer and scale" into tm-dev

This commit is contained in:
Riddle Hsu
2022-03-21 12:20:23 +00:00
committed by Android (Google) Code Review
5 changed files with 16 additions and 10 deletions

View File

@@ -144,7 +144,8 @@ class AsyncRotationController extends FadeAnimationController implements Consume
// Legacy animation doesn't need to wait for the start transaction.
if (mTransitionOp == OP_LEGACY) {
mIsStartTransactionCommitted = true;
} else if (displayContent.mTransitionController.useShellTransitionsRotation()) {
} else if (displayContent.mTransitionController.useShellTransitionsRotation()
|| displayContent.mTransitionController.isCollecting(displayContent)) {
keepAppearanceInPreviousRotation();
}
}

View File

@@ -662,7 +662,7 @@ public class DisplayArea<T extends WindowContainer> extends WindowContainer<T> {
mDimmer.resetDimStates();
}
if (mDimmer.updateDims(getPendingTransaction(), mTmpDimBoundsRect)) {
if (mDimmer.updateDims(getSyncTransaction(), mTmpDimBoundsRect)) {
scheduleAnimation();
}
}

View File

@@ -3297,9 +3297,10 @@ class Task extends TaskFragment {
mTmpDimBoundsRect.offsetTo(0, 0);
}
updateShadowsRadius(isFocused(), getSyncTransaction());
final SurfaceControl.Transaction t = getSyncTransaction();
updateShadowsRadius(isFocused(), t);
if (mDimmer.updateDims(getPendingTransaction(), mTmpDimBoundsRect)) {
if (mDimmer.updateDims(t, mTmpDimBoundsRect)) {
scheduleAnimation();
}
@@ -3309,7 +3310,7 @@ class Task extends TaskFragment {
final boolean show = isVisible() || isAnimating(TRANSITION | PARENTS | CHILDREN);
if (mSurfaceControl != null) {
if (show != mLastSurfaceShowing) {
getSyncTransaction().setVisibility(mSurfaceControl, show);
t.setVisibility(mSurfaceControl, show);
}
}
mLastSurfaceShowing = show;

View File

@@ -2425,7 +2425,7 @@ class TaskFragment extends WindowContainer<WindowContainer> {
// Bounds need to be relative, as the dim layer is a child.
final Rect dimBounds = getBounds();
dimBounds.offsetTo(0 /* newLeft */, 0 /* newTop */);
if (mDimmer.updateDims(getPendingTransaction(), dimBounds)) {
if (mDimmer.updateDims(getSyncTransaction(), dimBounds)) {
scheduleAnimation();
}
}

View File

@@ -5272,6 +5272,12 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
if (mControllableInsetProvider != null) {
return;
}
if (mDisplayContent.inTransition()) {
// Skip because the animation is usually unnoticeable (e.g. covered by rotation
// animation) and the animation bounds could be inconsistent, such as depending
// on when the window applies its draw transaction with new rotation.
return;
}
final DisplayInfo displayInfo = getDisplayInfo();
anim.initialize(mWindowFrames.mFrame.width(), mWindowFrames.mFrame.height(),
@@ -5516,10 +5522,8 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
}
float newHScale = mHScale * mGlobalScale * mWallpaperScale;
float newVScale = mVScale * mGlobalScale * mWallpaperScale;
if (mLastHScale != newHScale ||
mLastVScale != newVScale ) {
getPendingTransaction().setMatrix(getSurfaceControl(),
newHScale, 0, 0, newVScale);
if (mLastHScale != newHScale || mLastVScale != newVScale) {
getSyncTransaction().setMatrix(mSurfaceControl, newHScale, 0, 0, newVScale);
mLastHScale = newHScale;
mLastVScale = newVScale;
}