Merge "Use mAnimationType to decide if the insets of the first frame is visible" into main
diff --git a/core/java/android/view/InsetsAnimationControlImpl.java b/core/java/android/view/InsetsAnimationControlImpl.java
index 1ec7c41..17a3a12 100644
--- a/core/java/android/view/InsetsAnimationControlImpl.java
+++ b/core/java/android/view/InsetsAnimationControlImpl.java
@@ -28,6 +28,7 @@
import static android.view.InsetsAnimationControlImplProto.PENDING_INSETS;
import static android.view.InsetsAnimationControlImplProto.SHOWN_ON_FINISH;
import static android.view.InsetsAnimationControlImplProto.TMP_MATRIX;
+import static android.view.InsetsController.ANIMATION_TYPE_SHOW;
import static android.view.InsetsController.AnimationType;
import static android.view.InsetsController.DEBUG;
import static android.view.InsetsController.LAYOUT_INSETS_DURING_ANIMATION_SHOWN;
@@ -469,8 +470,10 @@
}
addTranslationToMatrix(side, offset, mTmpMatrix, mTmpFrame);
- final boolean visible = mPendingFraction == 0 && source != null
- ? source.isVisible()
+ // The first frame of ANIMATION_TYPE_SHOW should be invisible since it is animated from
+ // the hidden state.
+ final boolean visible = mPendingFraction == 0
+ ? mAnimationType != ANIMATION_TYPE_SHOW
: !mFinished || mShownOnFinish;
if (outState != null && source != null) {