diff options
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/view/InsetsController.java | 5 | ||||
| -rw-r--r-- | core/java/android/view/InsetsSourceConsumer.java | 3 |
2 files changed, 7 insertions, 1 deletions
diff --git a/core/java/android/view/InsetsController.java b/core/java/android/view/InsetsController.java index 3c93bb7a59b2..bc70d634b4ec 100644 --- a/core/java/android/view/InsetsController.java +++ b/core/java/android/view/InsetsController.java @@ -467,6 +467,10 @@ public class InsetsController implements WindowInsetsController { } } + boolean isAnimating() { + return mAnimationDirection != DIRECTION_NONE; + } + private InsetsSourceConsumer createConsumerOfType(int type) { if (type == ITYPE_IME) { return new ImeInsetsSourceConsumer(mState, Transaction::new, this); @@ -514,6 +518,7 @@ public class InsetsController implements WindowInsetsController { } else { hideDirectly(types); } + mAnimationDirection = show ? DIRECTION_SHOW : DIRECTION_HIDE; mAnimator = ObjectAnimator.ofObject( controller, new InsetsProperty(), diff --git a/core/java/android/view/InsetsSourceConsumer.java b/core/java/android/view/InsetsSourceConsumer.java index b1caf1872de2..c6d9898a425c 100644 --- a/core/java/android/view/InsetsSourceConsumer.java +++ b/core/java/android/view/InsetsSourceConsumer.java @@ -167,7 +167,8 @@ public class InsetsSourceConsumer { } private void applyHiddenToControl() { - if (mSourceControl == null || mSourceControl.getLeash() == null) { + if (mSourceControl == null || mSourceControl.getLeash() == null + || mController.isAnimating()) { return; } |
