diff options
| -rw-r--r-- | core/java/android/view/InsetsAnimationControlImpl.java | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/core/java/android/view/InsetsAnimationControlImpl.java b/core/java/android/view/InsetsAnimationControlImpl.java index 1ec7c41e4395..17a3a12d3b79 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_FRACTION; 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 @@ public class InsetsAnimationControlImpl implements InternalInsetsAnimationContro } 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) { |