Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 16da8beb authored by Christian Göllner's avatar Christian Göllner
Browse files

Annotate Transition#createAnimator with @Nullable

In SystemUI we have a custom implementation of Transition that assumed
that startValues and endValues would never be null. We then started
receiving crash reports and realized that these parameters can be null.

By annotating with @Nullable we can hopefully make it more obvious and
prevent crashes in the future.

Bug: 274002399
Test: N/A
Change-Id: I1b243c7b6d3a6f7912ded35eaf7bf3489598e7f4
parent 1d46f8bb
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -49039,7 +49039,7 @@ package android.transition {
    method public abstract void captureEndValues(android.transition.TransitionValues);
    method public abstract void captureStartValues(android.transition.TransitionValues);
    method public android.transition.Transition clone();
    method public android.animation.Animator createAnimator(android.view.ViewGroup, android.transition.TransitionValues, android.transition.TransitionValues);
    method @Nullable public android.animation.Animator createAnimator(@NonNull android.view.ViewGroup, @Nullable android.transition.TransitionValues, @Nullable android.transition.TransitionValues);
    method public android.transition.Transition excludeChildren(int, boolean);
    method public android.transition.Transition excludeChildren(android.view.View, boolean);
    method public android.transition.Transition excludeChildren(Class, boolean);
+6 −2
Original line number Diff line number Diff line
@@ -22,6 +22,8 @@ import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.animation.PropertyValuesHolder;
import android.animation.RectEvaluator;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.Context;
import android.content.res.TypedArray;
@@ -274,9 +276,11 @@ public class ChangeBounds extends Transition {
        return parentMatches;
    }

    @Nullable
    @Override
    public Animator createAnimator(final ViewGroup sceneRoot, TransitionValues startValues,
            TransitionValues endValues) {
    public Animator createAnimator(@NonNull final ViewGroup sceneRoot,
            @Nullable TransitionValues startValues,
            @Nullable TransitionValues endValues) {
        if (startValues == null || endValues == null) {
            return null;
        }
+6 −2
Original line number Diff line number Diff line
@@ -19,6 +19,8 @@ import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.animation.RectEvaluator;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.content.Context;
import android.graphics.Rect;
import android.util.AttributeSet;
@@ -75,9 +77,11 @@ public class ChangeClipBounds extends Transition {
        captureValues(transitionValues);
    }

    @Nullable
    @Override
    public Animator createAnimator(final ViewGroup sceneRoot, TransitionValues startValues,
            TransitionValues endValues) {
    public Animator createAnimator(@NonNull final ViewGroup sceneRoot,
            @Nullable TransitionValues startValues,
            @Nullable TransitionValues endValues) {
        if (startValues == null || endValues == null
                || !startValues.values.containsKey(PROPNAME_CLIP)
                || !endValues.values.containsKey(PROPNAME_CLIP)) {
+6 −2
Original line number Diff line number Diff line
@@ -18,6 +18,8 @@ package android.transition;
import android.animation.Animator;
import android.animation.ObjectAnimator;
import android.animation.TypeEvaluator;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.content.Context;
import android.graphics.Matrix;
import android.graphics.Rect;
@@ -135,9 +137,11 @@ public class ChangeImageTransform extends Transition {
     * @return An Animator to move an ImageView or null if the View is not an ImageView,
     * the Drawable changed, the View is not VISIBLE, or there was no change.
     */
    @Nullable
    @Override
    public Animator createAnimator(ViewGroup sceneRoot, TransitionValues startValues,
            TransitionValues endValues) {
    public Animator createAnimator(@NonNull ViewGroup sceneRoot,
            @Nullable TransitionValues startValues,
            @Nullable TransitionValues endValues) {
        if (startValues == null || endValues == null) {
            return null;
        }
+6 −2
Original line number Diff line number Diff line
@@ -18,6 +18,8 @@ package android.transition;

import android.animation.Animator;
import android.animation.ObjectAnimator;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
@@ -63,9 +65,11 @@ public class ChangeScroll extends Transition {
        transitionValues.values.put(PROPNAME_SCROLL_Y, transitionValues.view.getScrollY());
    }

    @Nullable
    @Override
    public Animator createAnimator(ViewGroup sceneRoot, TransitionValues startValues,
            TransitionValues endValues) {
    public Animator createAnimator(@NonNull ViewGroup sceneRoot,
            @Nullable TransitionValues startValues,
            @Nullable TransitionValues endValues) {
        if (startValues == null || endValues == null) {
            return null;
        }
Loading