Merge "Pass background color from transition info to remote animation" into tm-dev

This commit is contained in:
Riddle Hsu
2022-04-07 08:41:17 +00:00
committed by Android (Google) Code Review
3 changed files with 15 additions and 2 deletions

View File

@@ -33,6 +33,7 @@ import static android.view.RemoteAnimationTargetProto.TASK_ID;
import static android.view.RemoteAnimationTargetProto.WINDOW_CONFIGURATION;
import static android.view.WindowManager.LayoutParams.INVALID_WINDOW_TYPE;
import android.annotation.ColorInt;
import android.annotation.IntDef;
import android.app.ActivityManager;
import android.app.TaskInfo;
@@ -221,6 +222,12 @@ public class RemoteAnimationTarget implements Parcelable {
*/
public boolean hasAnimatingParent;
/**
* The background color of animation in case the task info is not available if the transition
* is activity level.
*/
public @ColorInt int backgroundColor;
public RemoteAnimationTarget(int taskId, int mode, SurfaceControl leash, boolean isTranslucent,
Rect clipRect, Rect contentInsets, int prefixOrderIndex, Point position,
Rect localBounds, Rect screenSpaceBounds,
@@ -279,6 +286,7 @@ public class RemoteAnimationTarget implements Parcelable {
allowEnterPip = in.readBoolean();
windowType = in.readInt();
hasAnimatingParent = in.readBoolean();
backgroundColor = in.readInt();
}
@Override
@@ -307,6 +315,7 @@ public class RemoteAnimationTarget implements Parcelable {
dest.writeBoolean(allowEnterPip);
dest.writeInt(windowType);
dest.writeBoolean(hasAnimatingParent);
dest.writeInt(backgroundColor);
}
public void dump(PrintWriter pw, String prefix) {
@@ -327,6 +336,7 @@ public class RemoteAnimationTarget implements Parcelable {
pw.print(prefix); pw.print("allowEnterPip="); pw.println(allowEnterPip);
pw.print(prefix); pw.print("windowType="); pw.print(windowType);
pw.print(prefix); pw.print("hasAnimatingParent="); pw.print(hasAnimatingParent);
pw.print(prefix); pw.print("backgroundColor="); pw.print(backgroundColor);
}
public void dumpDebug(ProtoOutputStream proto, long fieldId) {

View File

@@ -432,7 +432,8 @@ class ActivityLaunchAnimator(
right = windowBounds.right
)
val callback = this@ActivityLaunchAnimator.callback!!
val windowBackgroundColor = callback.getBackgroundColor(window.taskInfo)
val windowBackgroundColor = window.taskInfo?.let { callback.getBackgroundColor(it) }
?: window.backgroundColor
// Make sure we use the modified timings when animating a dialog into an app.
val launchAnimator = if (controller.isDialogLaunch) {

View File

@@ -138,7 +138,7 @@ class RemoteTransitionAdapter {
info: TransitionInfo,
t: SurfaceControl.Transaction
): RemoteAnimationTarget {
return RemoteAnimationTarget(
val target = RemoteAnimationTarget(
/* taskId */ if (change.taskInfo != null) change.taskInfo!!.taskId else -1,
/* mode */ newModeToLegacyMode(change.mode),
/* leash */ createLeash(info, change, order, t),
@@ -160,6 +160,8 @@ class RemoteTransitionAdapter {
/* taskInfo */ change.taskInfo,
/* allowEnterPip */ change.allowEnterPip,
/* windowType */ WindowManager.LayoutParams.INVALID_WINDOW_TYPE)
target.backgroundColor = change.backgroundColor
return target
}
/**