Loading core/java/android/view/IRecentsAnimationRunner.aidl +15 −3 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package android.view; import android.graphics.Rect; import android.view.RemoteAnimationTarget; import android.view.IRecentsAnimationController; Loading @@ -28,15 +29,26 @@ import android.view.IRecentsAnimationController; oneway interface IRecentsAnimationRunner { /** * Called when the system is ready for the handler to start animating all the visible tasks. * Deprecated, to be removed once Launcher updates */ void onAnimationStart(in IRecentsAnimationController controller, in RemoteAnimationTarget[] apps); in RemoteAnimationTarget[] apps) = 0; /** * Called when the system needs to cancel the current animation. This can be due to the * wallpaper not drawing in time, or the handler not finishing the animation within a predefined * amount of time. */ void onAnimationCanceled(); void onAnimationCanceled() = 1; /** * Called when the system is ready for the handler to start animating all the visible tasks. * * @param homeContentInsets The current home app content insets * @param minimizedHomeBounds Specifies the bounds of the minimized home app, will be * {@code null} if the device is not currently in split screen */ void onAnimationStart_New(in IRecentsAnimationController controller, in RemoteAnimationTarget[] apps, in Rect homeContentInsets, in Rect minimizedHomeBounds) = 2; } core/java/android/view/RemoteAnimationTarget.java +10 −2 Original line number Diff line number Diff line Loading @@ -78,6 +78,11 @@ public class RemoteAnimationTarget implements Parcelable { */ public final Rect clipRect; /** * The insets of the main app window. */ public final Rect contentInsets; /** * The index of the element in the tree in prefix order. This should be used for z-layering * to preserve original z-layer order in the hierarchy tree assuming no "boosting" needs to Loading Loading @@ -105,13 +110,14 @@ public class RemoteAnimationTarget implements Parcelable { public final WindowConfiguration windowConfiguration; public RemoteAnimationTarget(int taskId, int mode, SurfaceControl leash, boolean isTranslucent, Rect clipRect, int prefixOrderIndex, Point position, Rect sourceContainerBounds, WindowConfiguration windowConfig) { Rect clipRect, Rect contentInsets, int prefixOrderIndex, Point position, Rect sourceContainerBounds, WindowConfiguration windowConfig) { this.mode = mode; this.taskId = taskId; this.leash = leash; this.isTranslucent = isTranslucent; this.clipRect = new Rect(clipRect); this.contentInsets = new Rect(contentInsets); this.prefixOrderIndex = prefixOrderIndex; this.position = new Point(position); this.sourceContainerBounds = new Rect(sourceContainerBounds); Loading @@ -124,6 +130,7 @@ public class RemoteAnimationTarget implements Parcelable { leash = in.readParcelable(null); isTranslucent = in.readBoolean(); clipRect = in.readParcelable(null); contentInsets = in.readParcelable(null); prefixOrderIndex = in.readInt(); position = in.readParcelable(null); sourceContainerBounds = in.readParcelable(null); Loading @@ -142,6 +149,7 @@ public class RemoteAnimationTarget implements Parcelable { dest.writeParcelable(leash, 0 /* flags */); dest.writeBoolean(isTranslucent); dest.writeParcelable(clipRect, 0 /* flags */); dest.writeParcelable(contentInsets, 0 /* flags */); dest.writeInt(prefixOrderIndex); dest.writeParcelable(position, 0 /* flags */); dest.writeParcelable(sourceContainerBounds, 0 /* flags */); Loading packages/SystemUI/shared/src/com/android/systemui/shared/system/ActivityManagerWrapper.java +12 −1 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import android.content.pm.UserInfo; import android.content.res.Resources; import android.content.res.Resources.NotFoundException; import android.graphics.Bitmap; import android.graphics.Rect; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.os.Bundle; Loading @@ -57,6 +58,7 @@ import android.view.IRecentsAnimationController; import android.view.IRecentsAnimationRunner; import android.view.RemoteAnimationTarget; import android.view.WindowManagerGlobal; import com.android.systemui.shared.recents.model.Task; import com.android.systemui.shared.recents.model.Task.TaskKey; import com.android.systemui.shared.recents.model.ThumbnailData; Loading Loading @@ -271,11 +273,20 @@ public class ActivityManagerWrapper { runner = new IRecentsAnimationRunner.Stub() { public void onAnimationStart(IRecentsAnimationController controller, RemoteAnimationTarget[] apps) { final Rect stableInsets = new Rect(); WindowManagerWrapper.getInstance().getStableInsets(stableInsets); onAnimationStart_New(controller, apps, stableInsets, null); } public void onAnimationStart_New(IRecentsAnimationController controller, RemoteAnimationTarget[] apps, Rect homeContentInsets, Rect minimizedHomeBounds) { final RecentsAnimationControllerCompat controllerCompat = new RecentsAnimationControllerCompat(controller); final RemoteAnimationTargetCompat[] appsCompat = RemoteAnimationTargetCompat.wrap(apps); animationHandler.onAnimationStart(controllerCompat, appsCompat); animationHandler.onAnimationStart(controllerCompat, appsCompat, homeContentInsets, minimizedHomeBounds); } public void onAnimationCanceled() { Loading packages/SystemUI/shared/src/com/android/systemui/shared/system/RecentsAnimationListener.java +3 −1 Original line number Diff line number Diff line Loading @@ -16,13 +16,15 @@ package com.android.systemui.shared.system; import android.graphics.Rect; public interface RecentsAnimationListener { /** * Called when the animation into Recents can start. This call is made on the binder thread. */ void onAnimationStart(RecentsAnimationControllerCompat controller, RemoteAnimationTargetCompat[] apps); RemoteAnimationTargetCompat[] apps, Rect homeContentInsets, Rect minimizedHomeBounds); /** * Called when the animation into Recents was canceled. This call is made on the binder thread. Loading packages/SystemUI/shared/src/com/android/systemui/shared/system/RemoteAnimationTargetCompat.java +20 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,9 @@ package com.android.systemui.shared.system; import static android.app.WindowConfiguration.ACTIVITY_TYPE_ASSISTANT; import android.app.WindowConfiguration; import android.graphics.Point; import android.graphics.Rect; import android.view.RemoteAnimationTarget; Loading @@ -37,7 +40,10 @@ public class RemoteAnimationTargetCompat { public final Point position; public final Rect sourceContainerBounds; private final RemoteAnimationTarget mTarget; public RemoteAnimationTargetCompat(RemoteAnimationTarget app) { mTarget = app; taskId = app.taskId; mode = app.mode; leash = new SurfaceControlCompat(app.leash); Loading @@ -56,4 +62,18 @@ public class RemoteAnimationTargetCompat { } return appsCompat; } /** * TODO: Get as a method for compatibility (will move into ctor once Launcher updates) */ public Rect getContentInsets() { return mTarget.contentInsets; } /** * TODO: Get as a method for compatibility (will move into ctor once Launcher updates) */ public boolean isAssistantActivityType() { return mTarget.windowConfiguration.getActivityType() == ACTIVITY_TYPE_ASSISTANT; } } No newline at end of file Loading
core/java/android/view/IRecentsAnimationRunner.aidl +15 −3 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package android.view; import android.graphics.Rect; import android.view.RemoteAnimationTarget; import android.view.IRecentsAnimationController; Loading @@ -28,15 +29,26 @@ import android.view.IRecentsAnimationController; oneway interface IRecentsAnimationRunner { /** * Called when the system is ready for the handler to start animating all the visible tasks. * Deprecated, to be removed once Launcher updates */ void onAnimationStart(in IRecentsAnimationController controller, in RemoteAnimationTarget[] apps); in RemoteAnimationTarget[] apps) = 0; /** * Called when the system needs to cancel the current animation. This can be due to the * wallpaper not drawing in time, or the handler not finishing the animation within a predefined * amount of time. */ void onAnimationCanceled(); void onAnimationCanceled() = 1; /** * Called when the system is ready for the handler to start animating all the visible tasks. * * @param homeContentInsets The current home app content insets * @param minimizedHomeBounds Specifies the bounds of the minimized home app, will be * {@code null} if the device is not currently in split screen */ void onAnimationStart_New(in IRecentsAnimationController controller, in RemoteAnimationTarget[] apps, in Rect homeContentInsets, in Rect minimizedHomeBounds) = 2; }
core/java/android/view/RemoteAnimationTarget.java +10 −2 Original line number Diff line number Diff line Loading @@ -78,6 +78,11 @@ public class RemoteAnimationTarget implements Parcelable { */ public final Rect clipRect; /** * The insets of the main app window. */ public final Rect contentInsets; /** * The index of the element in the tree in prefix order. This should be used for z-layering * to preserve original z-layer order in the hierarchy tree assuming no "boosting" needs to Loading Loading @@ -105,13 +110,14 @@ public class RemoteAnimationTarget implements Parcelable { public final WindowConfiguration windowConfiguration; public RemoteAnimationTarget(int taskId, int mode, SurfaceControl leash, boolean isTranslucent, Rect clipRect, int prefixOrderIndex, Point position, Rect sourceContainerBounds, WindowConfiguration windowConfig) { Rect clipRect, Rect contentInsets, int prefixOrderIndex, Point position, Rect sourceContainerBounds, WindowConfiguration windowConfig) { this.mode = mode; this.taskId = taskId; this.leash = leash; this.isTranslucent = isTranslucent; this.clipRect = new Rect(clipRect); this.contentInsets = new Rect(contentInsets); this.prefixOrderIndex = prefixOrderIndex; this.position = new Point(position); this.sourceContainerBounds = new Rect(sourceContainerBounds); Loading @@ -124,6 +130,7 @@ public class RemoteAnimationTarget implements Parcelable { leash = in.readParcelable(null); isTranslucent = in.readBoolean(); clipRect = in.readParcelable(null); contentInsets = in.readParcelable(null); prefixOrderIndex = in.readInt(); position = in.readParcelable(null); sourceContainerBounds = in.readParcelable(null); Loading @@ -142,6 +149,7 @@ public class RemoteAnimationTarget implements Parcelable { dest.writeParcelable(leash, 0 /* flags */); dest.writeBoolean(isTranslucent); dest.writeParcelable(clipRect, 0 /* flags */); dest.writeParcelable(contentInsets, 0 /* flags */); dest.writeInt(prefixOrderIndex); dest.writeParcelable(position, 0 /* flags */); dest.writeParcelable(sourceContainerBounds, 0 /* flags */); Loading
packages/SystemUI/shared/src/com/android/systemui/shared/system/ActivityManagerWrapper.java +12 −1 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import android.content.pm.UserInfo; import android.content.res.Resources; import android.content.res.Resources.NotFoundException; import android.graphics.Bitmap; import android.graphics.Rect; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.os.Bundle; Loading @@ -57,6 +58,7 @@ import android.view.IRecentsAnimationController; import android.view.IRecentsAnimationRunner; import android.view.RemoteAnimationTarget; import android.view.WindowManagerGlobal; import com.android.systemui.shared.recents.model.Task; import com.android.systemui.shared.recents.model.Task.TaskKey; import com.android.systemui.shared.recents.model.ThumbnailData; Loading Loading @@ -271,11 +273,20 @@ public class ActivityManagerWrapper { runner = new IRecentsAnimationRunner.Stub() { public void onAnimationStart(IRecentsAnimationController controller, RemoteAnimationTarget[] apps) { final Rect stableInsets = new Rect(); WindowManagerWrapper.getInstance().getStableInsets(stableInsets); onAnimationStart_New(controller, apps, stableInsets, null); } public void onAnimationStart_New(IRecentsAnimationController controller, RemoteAnimationTarget[] apps, Rect homeContentInsets, Rect minimizedHomeBounds) { final RecentsAnimationControllerCompat controllerCompat = new RecentsAnimationControllerCompat(controller); final RemoteAnimationTargetCompat[] appsCompat = RemoteAnimationTargetCompat.wrap(apps); animationHandler.onAnimationStart(controllerCompat, appsCompat); animationHandler.onAnimationStart(controllerCompat, appsCompat, homeContentInsets, minimizedHomeBounds); } public void onAnimationCanceled() { Loading
packages/SystemUI/shared/src/com/android/systemui/shared/system/RecentsAnimationListener.java +3 −1 Original line number Diff line number Diff line Loading @@ -16,13 +16,15 @@ package com.android.systemui.shared.system; import android.graphics.Rect; public interface RecentsAnimationListener { /** * Called when the animation into Recents can start. This call is made on the binder thread. */ void onAnimationStart(RecentsAnimationControllerCompat controller, RemoteAnimationTargetCompat[] apps); RemoteAnimationTargetCompat[] apps, Rect homeContentInsets, Rect minimizedHomeBounds); /** * Called when the animation into Recents was canceled. This call is made on the binder thread. Loading
packages/SystemUI/shared/src/com/android/systemui/shared/system/RemoteAnimationTargetCompat.java +20 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,9 @@ package com.android.systemui.shared.system; import static android.app.WindowConfiguration.ACTIVITY_TYPE_ASSISTANT; import android.app.WindowConfiguration; import android.graphics.Point; import android.graphics.Rect; import android.view.RemoteAnimationTarget; Loading @@ -37,7 +40,10 @@ public class RemoteAnimationTargetCompat { public final Point position; public final Rect sourceContainerBounds; private final RemoteAnimationTarget mTarget; public RemoteAnimationTargetCompat(RemoteAnimationTarget app) { mTarget = app; taskId = app.taskId; mode = app.mode; leash = new SurfaceControlCompat(app.leash); Loading @@ -56,4 +62,18 @@ public class RemoteAnimationTargetCompat { } return appsCompat; } /** * TODO: Get as a method for compatibility (will move into ctor once Launcher updates) */ public Rect getContentInsets() { return mTarget.contentInsets; } /** * TODO: Get as a method for compatibility (will move into ctor once Launcher updates) */ public boolean isAssistantActivityType() { return mTarget.windowConfiguration.getActivityType() == ACTIVITY_TYPE_ASSISTANT; } } No newline at end of file