diff options
| -rw-r--r-- | core/java/com/android/internal/app/ChooserActivity.java | 21 | 
1 files changed, 14 insertions, 7 deletions
diff --git a/core/java/com/android/internal/app/ChooserActivity.java b/core/java/com/android/internal/app/ChooserActivity.java index a66b405844b8..41d80ae6f945 100644 --- a/core/java/com/android/internal/app/ChooserActivity.java +++ b/core/java/com/android/internal/app/ChooserActivity.java @@ -2939,12 +2939,14 @@ public class ChooserActivity extends ResolverActivity implements      private void startFinishAnimation() {          View rootView = findRootView(); -        rootView.startAnimation(new FinishAnimation(this, rootView)); +        if (rootView != null) { +            rootView.startAnimation(new FinishAnimation(this, rootView)); +        }      }      private boolean maybeCancelFinishAnimation() {          View rootView = findRootView(); -        Animation animation = rootView.getAnimation(); +        Animation animation = rootView == null ? null : rootView.getAnimation();          if (animation instanceof FinishAnimation) {              boolean hasEnded = animation.hasEnded();              animation.cancel(); @@ -4071,11 +4073,13 @@ public class ChooserActivity extends ResolverActivity implements       */      private static class FinishAnimation extends AlphaAnimation implements              Animation.AnimationListener { +        @Nullable          private Activity mActivity; +        @Nullable          private View mRootView;          private final float mFromAlpha; -        FinishAnimation(Activity activity, View rootView) { +        FinishAnimation(@NonNull Activity activity, @NonNull View rootView) {              super(rootView.getAlpha(), 0.0f);              mActivity = activity;              mRootView = rootView; @@ -4099,7 +4103,9 @@ public class ChooserActivity extends ResolverActivity implements          @Override          public void cancel() { -            mRootView.setAlpha(mFromAlpha); +            if (mRootView != null) { +                mRootView.setAlpha(mFromAlpha); +            }              cleanup();              super.cancel();          } @@ -4110,9 +4116,10 @@ public class ChooserActivity extends ResolverActivity implements          @Override          public void onAnimationEnd(Animation animation) { -            if (mActivity != null) { -                mActivity.finish(); -                cleanup(); +            Activity activity = mActivity; +            cleanup(); +            if (activity != null) { +                activity.finish();              }          }  |