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

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

Merge "Let default transition handler animate customized animation" into...

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

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23563396



Change-Id: Iaf2edec571b04962f43acb48bf71e867bc7ea277
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 2581fb06 0439a98b
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) {