Loading core/java/android/window/TransitionInfo.java +12 −0 Original line number Diff line number Diff line Loading @@ -1141,6 +1141,7 @@ public final class TransitionInfo implements Parcelable { // Customize activity transition animation private CustomActivityTransition mCustomActivityOpenTransition; private CustomActivityTransition mCustomActivityCloseTransition; private int mUserId; private AnimationOptions(int type) { mType = type; Loading @@ -1159,6 +1160,7 @@ public final class TransitionInfo implements Parcelable { mAnimations = in.readInt(); mCustomActivityOpenTransition = in.readTypedObject(CustomActivityTransition.CREATOR); mCustomActivityCloseTransition = in.readTypedObject(CustomActivityTransition.CREATOR); mUserId = in.readInt(); } /** Make basic customized animation for a package */ Loading Loading @@ -1283,6 +1285,14 @@ public final class TransitionInfo implements Parcelable { return options; } public void setUserId(int userId) { mUserId = userId; } public int getUserId() { return mUserId; } public int getType() { return mType; } Loading Loading @@ -1349,6 +1359,7 @@ public final class TransitionInfo implements Parcelable { dest.writeInt(mAnimations); dest.writeTypedObject(mCustomActivityOpenTransition, flags); dest.writeTypedObject(mCustomActivityCloseTransition, flags); dest.writeInt(mUserId); } @NonNull Loading Loading @@ -1406,6 +1417,7 @@ public final class TransitionInfo implements Parcelable { if (mExitResId != DEFAULT_ANIMATION_RESOURCES_ID) { sb.append(" exitResId=").append(mExitResId); } sb.append(" mUserId=").append(mUserId); sb.append('}'); return sb.toString(); } Loading core/java/com/android/internal/policy/TransitionAnimation.java +62 −17 Original line number Diff line number Diff line Loading @@ -49,7 +49,7 @@ import android.hardware.HardwareBuffer; import android.media.Image; import android.media.ImageReader; import android.os.Handler; import android.os.SystemProperties; import android.os.UserHandle; import android.util.Slog; import android.view.InflateException; import android.view.SurfaceControl; Loading Loading @@ -187,23 +187,44 @@ public class TransitionAnimation { return createHiddenByKeyguardExit(mContext, mInterpolator, onWallpaper, toShade, subtle); } /** Load keyguard unocclude animation for user. */ @Nullable public Animation loadKeyguardUnoccludeAnimation(int userId) { return loadDefaultAnimationRes(com.android.internal.R.anim.wallpaper_open_exit, userId); } /** Same as {@code loadKeyguardUnoccludeAnimation} for current user. */ @Nullable public Animation loadKeyguardUnoccludeAnimation() { return loadDefaultAnimationRes(com.android.internal.R.anim.wallpaper_open_exit); return loadKeyguardUnoccludeAnimation(UserHandle.USER_CURRENT); } /** Load voice activity open animation for user. */ @Nullable public Animation loadVoiceActivityOpenAnimation(boolean enter) { public Animation loadVoiceActivityOpenAnimation(boolean enter, int userId) { return loadDefaultAnimationRes(enter ? com.android.internal.R.anim.voice_activity_open_enter : com.android.internal.R.anim.voice_activity_open_exit); : com.android.internal.R.anim.voice_activity_open_exit, userId); } /** Same as {@code loadVoiceActivityOpenAnimation} for current user. */ @Nullable public Animation loadVoiceActivityExitAnimation(boolean enter) { public Animation loadVoiceActivityOpenAnimation(boolean enter) { return loadVoiceActivityOpenAnimation(enter, UserHandle.USER_CURRENT); } /** Load voice activity exit animation for user. */ @Nullable public Animation loadVoiceActivityExitAnimation(boolean enter, int userId) { return loadDefaultAnimationRes(enter ? com.android.internal.R.anim.voice_activity_close_enter : com.android.internal.R.anim.voice_activity_close_exit); : com.android.internal.R.anim.voice_activity_close_exit, userId); } /** Same as {@code loadVoiceActivityExitAnimation} for current user. */ @Nullable public Animation loadVoiceActivityExitAnimation(boolean enter) { return loadVoiceActivityExitAnimation(enter, UserHandle.USER_CURRENT); } @Nullable Loading @@ -211,10 +232,17 @@ public class TransitionAnimation { return loadAnimationRes(packageName, resId); } /** Load cross profile app enter animation for user. */ @Nullable public Animation loadCrossProfileAppEnterAnimation() { public Animation loadCrossProfileAppEnterAnimation(int userId) { return loadAnimationRes(DEFAULT_PACKAGE, com.android.internal.R.anim.task_open_enter_cross_profile_apps); com.android.internal.R.anim.task_open_enter_cross_profile_apps, userId); } /** Same as {@code loadCrossProfileAppEnterAnimation} for current user. */ @Nullable public Animation loadCrossProfileAppEnterAnimation() { return loadCrossProfileAppEnterAnimation(UserHandle.USER_CURRENT); } @Nullable Loading @@ -230,11 +258,11 @@ public class TransitionAnimation { appRect.height(), 0, null); } /** Load animation by resource Id from specific package. */ /** Load animation by resource Id from specific package for user. */ @Nullable public Animation loadAnimationRes(String packageName, int resId) { public Animation loadAnimationRes(String packageName, int resId, int userId) { if (ResourceId.isValid(resId)) { AttributeCache.Entry ent = getCachedAnimations(packageName, resId); AttributeCache.Entry ent = getCachedAnimations(packageName, resId, userId); if (ent != null) { return loadAnimationSafely(ent.context, resId, mTag); } Loading @@ -242,10 +270,22 @@ public class TransitionAnimation { return null; } /** Load animation by resource Id from android package. */ /** Same as {@code loadAnimationRes} for current user. */ @Nullable public Animation loadAnimationRes(String packageName, int resId) { return loadAnimationRes(packageName, resId, UserHandle.USER_CURRENT); } /** Load animation by resource Id from android package for user. */ @Nullable public Animation loadDefaultAnimationRes(int resId, int userId) { return loadAnimationRes(DEFAULT_PACKAGE, resId, userId); } /** Same as {@code loadDefaultAnimationRes} for current user. */ @Nullable public Animation loadDefaultAnimationRes(int resId) { return loadAnimationRes(DEFAULT_PACKAGE, resId); return loadAnimationRes(DEFAULT_PACKAGE, resId, UserHandle.USER_CURRENT); } /** Load animation by attribute Id from specific LayoutParams */ Loading Loading @@ -378,10 +418,10 @@ public class TransitionAnimation { } @Nullable private AttributeCache.Entry getCachedAnimations(String packageName, int resId) { private AttributeCache.Entry getCachedAnimations(String packageName, int resId, int userId) { if (mDebug) { Slog.v(mTag, "Loading animations: package=" + packageName + " resId=0x" + Integer.toHexString(resId)); Slog.v(mTag, "Loading animations: package=" + packageName + " resId=0x" + Integer.toHexString(resId) + " for user=" + userId); } if (packageName != null) { if ((resId & 0xFF000000) == 0x01000000) { Loading @@ -392,11 +432,16 @@ public class TransitionAnimation { + packageName); } return AttributeCache.instance().get(packageName, resId, com.android.internal.R.styleable.WindowAnimation); com.android.internal.R.styleable.WindowAnimation, userId); } return null; } @Nullable private AttributeCache.Entry getCachedAnimations(String packageName, int resId) { return getCachedAnimations(packageName, resId, UserHandle.USER_CURRENT); } /** Returns window animation style ID from {@link LayoutParams} or from system in some cases */ public int getAnimationStyleResId(@NonNull LayoutParams lp) { int resId = lp.windowAnimations; Loading libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultTransitionHandler.java +10 −10 Original line number Diff line number Diff line Loading @@ -18,8 +18,8 @@ package com.android.wm.shell.transition; import static android.app.ActivityOptions.ANIM_CLIP_REVEAL; import static android.app.ActivityOptions.ANIM_CUSTOM; import static android.app.ActivityOptions.ANIM_NONE; import static android.app.ActivityOptions.ANIM_FROM_STYLE; import static android.app.ActivityOptions.ANIM_NONE; import static android.app.ActivityOptions.ANIM_OPEN_CROSS_PROFILE_APPS; import static android.app.ActivityOptions.ANIM_SCALE_UP; import static android.app.ActivityOptions.ANIM_SCENE_TRANSITION; Loading Loading @@ -767,12 +767,12 @@ public class DefaultTransitionHandler implements Transitions.TransitionHandler { a = mTransitionAnimation.loadKeyguardExitAnimation(flags, (changeFlags & FLAG_SHOW_WALLPAPER) != 0); } else if (type == TRANSIT_KEYGUARD_UNOCCLUDE) { a = mTransitionAnimation.loadKeyguardUnoccludeAnimation(); a = mTransitionAnimation.loadKeyguardUnoccludeAnimation(options.getUserId()); } else if ((changeFlags & FLAG_IS_VOICE_INTERACTION) != 0) { if (isOpeningType) { a = mTransitionAnimation.loadVoiceActivityOpenAnimation(enter); a = mTransitionAnimation.loadVoiceActivityOpenAnimation(enter, options.getUserId()); } else { a = mTransitionAnimation.loadVoiceActivityExitAnimation(enter); a = mTransitionAnimation.loadVoiceActivityExitAnimation(enter, options.getUserId()); } } else if (changeMode == TRANSIT_CHANGE) { // In the absence of a specific adapter, we just want to keep everything stationary. Loading @@ -783,9 +783,9 @@ public class DefaultTransitionHandler implements Transitions.TransitionHandler { } else if (overrideType == ANIM_CUSTOM && (!isTask || options.getOverrideTaskTransition())) { a = mTransitionAnimation.loadAnimationRes(options.getPackageName(), enter ? options.getEnterResId() : options.getExitResId()); ? options.getEnterResId() : options.getExitResId(), options.getUserId()); } else if (overrideType == ANIM_OPEN_CROSS_PROFILE_APPS && enter) { a = mTransitionAnimation.loadCrossProfileAppEnterAnimation(); a = mTransitionAnimation.loadCrossProfileAppEnterAnimation(options.getUserId()); } else if (overrideType == ANIM_CLIP_REVEAL) { a = mTransitionAnimation.createClipRevealAnimationLocked(type, wallpaperTransit, enter, endBounds, endBounds, options.getTransitionBounds()); Loading services/core/java/com/android/server/wm/ActivityClientController.java +7 −5 Original line number Diff line number Diff line Loading @@ -864,8 +864,9 @@ class ActivityClientController extends IActivityClientController.Stub { if (transition != null) { if (changed) { // Always set as scene transition because it expects to be a jump-cut. transition.setOverrideAnimation(TransitionInfo.AnimationOptions .makeSceneTransitionAnimOptions(), null, null); transition.setOverrideAnimation( TransitionInfo.AnimationOptions.makeSceneTransitionAnimOptions(), r, null, null); r.mTransitionController.requestStartTransition(transition, null /*startTask */, null /* remoteTransition */, null /* displayChange */); Loading Loading @@ -910,8 +911,9 @@ class ActivityClientController extends IActivityClientController.Stub { && under.returningOptions.getAnimationType() == ANIM_SCENE_TRANSITION) { // Pass along the scene-transition animation-type transition.setOverrideAnimation(TransitionInfo.AnimationOptions .makeSceneTransitionAnimOptions(), null, null); transition.setOverrideAnimation(TransitionInfo .AnimationOptions.makeSceneTransitionAnimOptions(), r, null, null); } } else { transition.abort(); Loading Loading @@ -1508,7 +1510,7 @@ class ActivityClientController extends IActivityClientController.Stub { r.mOverrideTaskTransition); r.mTransitionController.setOverrideAnimation( TransitionInfo.AnimationOptions.makeCustomAnimOptions(packageName, enterAnim, exitAnim, backgroundColor, r.mOverrideTaskTransition), enterAnim, exitAnim, backgroundColor, r.mOverrideTaskTransition), r, null /* startCallback */, null /* finishCallback */); } } Loading services/core/java/com/android/server/wm/ActivityRecord.java +5 −2 Original line number Diff line number Diff line Loading @@ -353,6 +353,7 @@ import android.window.SplashScreen; import android.window.SplashScreenView; import android.window.SplashScreenView.SplashScreenViewParcelable; import android.window.TaskSnapshot; import android.window.TransitionInfo; import android.window.TransitionInfo.AnimationOptions; import android.window.WindowContainerToken; import android.window.WindowOnBackInvokedDispatcher; Loading Loading @@ -5034,7 +5035,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A // controller but don't clear the animation information from the options since they // need to be sent to the animating activity. mTransitionController.setOverrideAnimation( AnimationOptions.makeSceneTransitionAnimOptions(), null, null); TransitionInfo.AnimationOptions.makeSceneTransitionAnimOptions(), this, null, null); return; } applyOptionsAnimation(mPendingOptions, intent); Loading Loading @@ -5157,7 +5159,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A } if (options != null) { mTransitionController.setOverrideAnimation(options, startCallback, finishCallback); mTransitionController.setOverrideAnimation(options, this, startCallback, finishCallback); } } Loading Loading
core/java/android/window/TransitionInfo.java +12 −0 Original line number Diff line number Diff line Loading @@ -1141,6 +1141,7 @@ public final class TransitionInfo implements Parcelable { // Customize activity transition animation private CustomActivityTransition mCustomActivityOpenTransition; private CustomActivityTransition mCustomActivityCloseTransition; private int mUserId; private AnimationOptions(int type) { mType = type; Loading @@ -1159,6 +1160,7 @@ public final class TransitionInfo implements Parcelable { mAnimations = in.readInt(); mCustomActivityOpenTransition = in.readTypedObject(CustomActivityTransition.CREATOR); mCustomActivityCloseTransition = in.readTypedObject(CustomActivityTransition.CREATOR); mUserId = in.readInt(); } /** Make basic customized animation for a package */ Loading Loading @@ -1283,6 +1285,14 @@ public final class TransitionInfo implements Parcelable { return options; } public void setUserId(int userId) { mUserId = userId; } public int getUserId() { return mUserId; } public int getType() { return mType; } Loading Loading @@ -1349,6 +1359,7 @@ public final class TransitionInfo implements Parcelable { dest.writeInt(mAnimations); dest.writeTypedObject(mCustomActivityOpenTransition, flags); dest.writeTypedObject(mCustomActivityCloseTransition, flags); dest.writeInt(mUserId); } @NonNull Loading Loading @@ -1406,6 +1417,7 @@ public final class TransitionInfo implements Parcelable { if (mExitResId != DEFAULT_ANIMATION_RESOURCES_ID) { sb.append(" exitResId=").append(mExitResId); } sb.append(" mUserId=").append(mUserId); sb.append('}'); return sb.toString(); } Loading
core/java/com/android/internal/policy/TransitionAnimation.java +62 −17 Original line number Diff line number Diff line Loading @@ -49,7 +49,7 @@ import android.hardware.HardwareBuffer; import android.media.Image; import android.media.ImageReader; import android.os.Handler; import android.os.SystemProperties; import android.os.UserHandle; import android.util.Slog; import android.view.InflateException; import android.view.SurfaceControl; Loading Loading @@ -187,23 +187,44 @@ public class TransitionAnimation { return createHiddenByKeyguardExit(mContext, mInterpolator, onWallpaper, toShade, subtle); } /** Load keyguard unocclude animation for user. */ @Nullable public Animation loadKeyguardUnoccludeAnimation(int userId) { return loadDefaultAnimationRes(com.android.internal.R.anim.wallpaper_open_exit, userId); } /** Same as {@code loadKeyguardUnoccludeAnimation} for current user. */ @Nullable public Animation loadKeyguardUnoccludeAnimation() { return loadDefaultAnimationRes(com.android.internal.R.anim.wallpaper_open_exit); return loadKeyguardUnoccludeAnimation(UserHandle.USER_CURRENT); } /** Load voice activity open animation for user. */ @Nullable public Animation loadVoiceActivityOpenAnimation(boolean enter) { public Animation loadVoiceActivityOpenAnimation(boolean enter, int userId) { return loadDefaultAnimationRes(enter ? com.android.internal.R.anim.voice_activity_open_enter : com.android.internal.R.anim.voice_activity_open_exit); : com.android.internal.R.anim.voice_activity_open_exit, userId); } /** Same as {@code loadVoiceActivityOpenAnimation} for current user. */ @Nullable public Animation loadVoiceActivityExitAnimation(boolean enter) { public Animation loadVoiceActivityOpenAnimation(boolean enter) { return loadVoiceActivityOpenAnimation(enter, UserHandle.USER_CURRENT); } /** Load voice activity exit animation for user. */ @Nullable public Animation loadVoiceActivityExitAnimation(boolean enter, int userId) { return loadDefaultAnimationRes(enter ? com.android.internal.R.anim.voice_activity_close_enter : com.android.internal.R.anim.voice_activity_close_exit); : com.android.internal.R.anim.voice_activity_close_exit, userId); } /** Same as {@code loadVoiceActivityExitAnimation} for current user. */ @Nullable public Animation loadVoiceActivityExitAnimation(boolean enter) { return loadVoiceActivityExitAnimation(enter, UserHandle.USER_CURRENT); } @Nullable Loading @@ -211,10 +232,17 @@ public class TransitionAnimation { return loadAnimationRes(packageName, resId); } /** Load cross profile app enter animation for user. */ @Nullable public Animation loadCrossProfileAppEnterAnimation() { public Animation loadCrossProfileAppEnterAnimation(int userId) { return loadAnimationRes(DEFAULT_PACKAGE, com.android.internal.R.anim.task_open_enter_cross_profile_apps); com.android.internal.R.anim.task_open_enter_cross_profile_apps, userId); } /** Same as {@code loadCrossProfileAppEnterAnimation} for current user. */ @Nullable public Animation loadCrossProfileAppEnterAnimation() { return loadCrossProfileAppEnterAnimation(UserHandle.USER_CURRENT); } @Nullable Loading @@ -230,11 +258,11 @@ public class TransitionAnimation { appRect.height(), 0, null); } /** Load animation by resource Id from specific package. */ /** Load animation by resource Id from specific package for user. */ @Nullable public Animation loadAnimationRes(String packageName, int resId) { public Animation loadAnimationRes(String packageName, int resId, int userId) { if (ResourceId.isValid(resId)) { AttributeCache.Entry ent = getCachedAnimations(packageName, resId); AttributeCache.Entry ent = getCachedAnimations(packageName, resId, userId); if (ent != null) { return loadAnimationSafely(ent.context, resId, mTag); } Loading @@ -242,10 +270,22 @@ public class TransitionAnimation { return null; } /** Load animation by resource Id from android package. */ /** Same as {@code loadAnimationRes} for current user. */ @Nullable public Animation loadAnimationRes(String packageName, int resId) { return loadAnimationRes(packageName, resId, UserHandle.USER_CURRENT); } /** Load animation by resource Id from android package for user. */ @Nullable public Animation loadDefaultAnimationRes(int resId, int userId) { return loadAnimationRes(DEFAULT_PACKAGE, resId, userId); } /** Same as {@code loadDefaultAnimationRes} for current user. */ @Nullable public Animation loadDefaultAnimationRes(int resId) { return loadAnimationRes(DEFAULT_PACKAGE, resId); return loadAnimationRes(DEFAULT_PACKAGE, resId, UserHandle.USER_CURRENT); } /** Load animation by attribute Id from specific LayoutParams */ Loading Loading @@ -378,10 +418,10 @@ public class TransitionAnimation { } @Nullable private AttributeCache.Entry getCachedAnimations(String packageName, int resId) { private AttributeCache.Entry getCachedAnimations(String packageName, int resId, int userId) { if (mDebug) { Slog.v(mTag, "Loading animations: package=" + packageName + " resId=0x" + Integer.toHexString(resId)); Slog.v(mTag, "Loading animations: package=" + packageName + " resId=0x" + Integer.toHexString(resId) + " for user=" + userId); } if (packageName != null) { if ((resId & 0xFF000000) == 0x01000000) { Loading @@ -392,11 +432,16 @@ public class TransitionAnimation { + packageName); } return AttributeCache.instance().get(packageName, resId, com.android.internal.R.styleable.WindowAnimation); com.android.internal.R.styleable.WindowAnimation, userId); } return null; } @Nullable private AttributeCache.Entry getCachedAnimations(String packageName, int resId) { return getCachedAnimations(packageName, resId, UserHandle.USER_CURRENT); } /** Returns window animation style ID from {@link LayoutParams} or from system in some cases */ public int getAnimationStyleResId(@NonNull LayoutParams lp) { int resId = lp.windowAnimations; Loading
libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultTransitionHandler.java +10 −10 Original line number Diff line number Diff line Loading @@ -18,8 +18,8 @@ package com.android.wm.shell.transition; import static android.app.ActivityOptions.ANIM_CLIP_REVEAL; import static android.app.ActivityOptions.ANIM_CUSTOM; import static android.app.ActivityOptions.ANIM_NONE; import static android.app.ActivityOptions.ANIM_FROM_STYLE; import static android.app.ActivityOptions.ANIM_NONE; import static android.app.ActivityOptions.ANIM_OPEN_CROSS_PROFILE_APPS; import static android.app.ActivityOptions.ANIM_SCALE_UP; import static android.app.ActivityOptions.ANIM_SCENE_TRANSITION; Loading Loading @@ -767,12 +767,12 @@ public class DefaultTransitionHandler implements Transitions.TransitionHandler { a = mTransitionAnimation.loadKeyguardExitAnimation(flags, (changeFlags & FLAG_SHOW_WALLPAPER) != 0); } else if (type == TRANSIT_KEYGUARD_UNOCCLUDE) { a = mTransitionAnimation.loadKeyguardUnoccludeAnimation(); a = mTransitionAnimation.loadKeyguardUnoccludeAnimation(options.getUserId()); } else if ((changeFlags & FLAG_IS_VOICE_INTERACTION) != 0) { if (isOpeningType) { a = mTransitionAnimation.loadVoiceActivityOpenAnimation(enter); a = mTransitionAnimation.loadVoiceActivityOpenAnimation(enter, options.getUserId()); } else { a = mTransitionAnimation.loadVoiceActivityExitAnimation(enter); a = mTransitionAnimation.loadVoiceActivityExitAnimation(enter, options.getUserId()); } } else if (changeMode == TRANSIT_CHANGE) { // In the absence of a specific adapter, we just want to keep everything stationary. Loading @@ -783,9 +783,9 @@ public class DefaultTransitionHandler implements Transitions.TransitionHandler { } else if (overrideType == ANIM_CUSTOM && (!isTask || options.getOverrideTaskTransition())) { a = mTransitionAnimation.loadAnimationRes(options.getPackageName(), enter ? options.getEnterResId() : options.getExitResId()); ? options.getEnterResId() : options.getExitResId(), options.getUserId()); } else if (overrideType == ANIM_OPEN_CROSS_PROFILE_APPS && enter) { a = mTransitionAnimation.loadCrossProfileAppEnterAnimation(); a = mTransitionAnimation.loadCrossProfileAppEnterAnimation(options.getUserId()); } else if (overrideType == ANIM_CLIP_REVEAL) { a = mTransitionAnimation.createClipRevealAnimationLocked(type, wallpaperTransit, enter, endBounds, endBounds, options.getTransitionBounds()); Loading
services/core/java/com/android/server/wm/ActivityClientController.java +7 −5 Original line number Diff line number Diff line Loading @@ -864,8 +864,9 @@ class ActivityClientController extends IActivityClientController.Stub { if (transition != null) { if (changed) { // Always set as scene transition because it expects to be a jump-cut. transition.setOverrideAnimation(TransitionInfo.AnimationOptions .makeSceneTransitionAnimOptions(), null, null); transition.setOverrideAnimation( TransitionInfo.AnimationOptions.makeSceneTransitionAnimOptions(), r, null, null); r.mTransitionController.requestStartTransition(transition, null /*startTask */, null /* remoteTransition */, null /* displayChange */); Loading Loading @@ -910,8 +911,9 @@ class ActivityClientController extends IActivityClientController.Stub { && under.returningOptions.getAnimationType() == ANIM_SCENE_TRANSITION) { // Pass along the scene-transition animation-type transition.setOverrideAnimation(TransitionInfo.AnimationOptions .makeSceneTransitionAnimOptions(), null, null); transition.setOverrideAnimation(TransitionInfo .AnimationOptions.makeSceneTransitionAnimOptions(), r, null, null); } } else { transition.abort(); Loading Loading @@ -1508,7 +1510,7 @@ class ActivityClientController extends IActivityClientController.Stub { r.mOverrideTaskTransition); r.mTransitionController.setOverrideAnimation( TransitionInfo.AnimationOptions.makeCustomAnimOptions(packageName, enterAnim, exitAnim, backgroundColor, r.mOverrideTaskTransition), enterAnim, exitAnim, backgroundColor, r.mOverrideTaskTransition), r, null /* startCallback */, null /* finishCallback */); } } Loading
services/core/java/com/android/server/wm/ActivityRecord.java +5 −2 Original line number Diff line number Diff line Loading @@ -353,6 +353,7 @@ import android.window.SplashScreen; import android.window.SplashScreenView; import android.window.SplashScreenView.SplashScreenViewParcelable; import android.window.TaskSnapshot; import android.window.TransitionInfo; import android.window.TransitionInfo.AnimationOptions; import android.window.WindowContainerToken; import android.window.WindowOnBackInvokedDispatcher; Loading Loading @@ -5034,7 +5035,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A // controller but don't clear the animation information from the options since they // need to be sent to the animating activity. mTransitionController.setOverrideAnimation( AnimationOptions.makeSceneTransitionAnimOptions(), null, null); TransitionInfo.AnimationOptions.makeSceneTransitionAnimOptions(), this, null, null); return; } applyOptionsAnimation(mPendingOptions, intent); Loading Loading @@ -5157,7 +5159,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A } if (options != null) { mTransitionController.setOverrideAnimation(options, startCallback, finishCallback); mTransitionController.setOverrideAnimation(options, this, startCallback, finishCallback); } } Loading