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

Commit eee875a9 authored by Riddle Hsu's avatar Riddle Hsu Committed by Automerger Merge Worker
Browse files

Merge "Let default transition handler animate customized animation" into udc-dev am: bfd84899

parents 06dbf6b3 bfd84899
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -20,6 +20,8 @@ import static android.app.ActivityOptions.ANIM_SCENE_TRANSITION;
import static android.window.TransitionInfo.FLAG_FILLS_TASK;
import static android.window.TransitionInfo.FLAG_IN_TASK_WITH_EMBEDDED_ACTIVITY;

import static com.android.wm.shell.transition.DefaultTransitionHandler.isSupportedOverrideAnimation;

import static java.util.Objects.requireNonNull;

import android.content.Context;
@@ -113,8 +115,11 @@ public class ActivityEmbeddingController implements Transitions.TransitionHandle
            return false;
        }
        final TransitionInfo.AnimationOptions options = info.getAnimationOptions();
        if (options != null && options.getType() == ANIM_SCENE_TRANSITION) {
        if (options != null
                // Scene-transition will be handled by app side.
                && (options.getType() == ANIM_SCENE_TRANSITION
                // Use default transition handler to animate override animation.
                || isSupportedOverrideAnimation(options))) {
            return false;
        }

+12 −0
Original line number Diff line number Diff line
@@ -873,6 +873,18 @@ public class DefaultTransitionHandler implements Transitions.TransitionHandler {
        }
    }

    /**
     * Returns {@code true} if the default transition handler can run the override animation.
     * @see #loadAnimation(TransitionInfo, TransitionInfo.Change, int, boolean)
     */
    public static boolean isSupportedOverrideAnimation(
            @NonNull TransitionInfo.AnimationOptions options) {
        final int animType = options.getType();
        return animType == ANIM_CUSTOM || animType == ANIM_SCALE_UP
                || animType == ANIM_THUMBNAIL_SCALE_UP || animType == ANIM_THUMBNAIL_SCALE_DOWN
                || animType == ANIM_CLIP_REVEAL || animType == ANIM_OPEN_CROSS_PROFILE_APPS;
    }

    private static void applyTransformation(long time, SurfaceControl.Transaction t,
            SurfaceControl leash, Animation anim, Transformation transformation, float[] matrix,
            Point position, float cornerRadius, @Nullable Rect immutableClipRect) {