From f0ef89a522fb62f0cb22fb75a41b2f4a8873b023 Mon Sep 17 00:00:00 2001 From: Tiger Huang Date: Thu, 13 Feb 2020 16:07:01 +0800 Subject: [PATCH] Abort dispatching animation callbacks if the root view is gone This CL prevents possible NullPointerExceptions. Bug: 118118435 Bug: 149479853 Test: atest AnimatedVectorDrawableParameterizedTest Change-Id: I966a15c0886b80317a34541fb315b2886981af16 --- core/java/android/view/InsetsController.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/java/android/view/InsetsController.java b/core/java/android/view/InsetsController.java index 54de1bb3739d7..943572f56a1b6 100644 --- a/core/java/android/view/InsetsController.java +++ b/core/java/android/view/InsetsController.java @@ -39,7 +39,6 @@ import android.util.Log; import android.util.Pair; import android.util.Property; import android.util.SparseArray; -import android.view.InputDevice.MotionRange; import android.view.InsetsSourceConsumer.ShowResult; import android.view.InsetsState.InternalInsetsType; import android.view.SurfaceControl.Transaction; @@ -855,6 +854,9 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation } else { hideDirectly(types); } + if (mViewRoot.mView == null) { + return; + } mViewRoot.mView.dispatchWindowInsetsAnimationPrepare(animation); mViewRoot.mView.getViewTreeObserver().addOnPreDrawListener(new OnPreDrawListener() { @Override