Merge "Pass background color from transition info to remote animation" into tm-dev
This commit is contained in:
@@ -33,6 +33,7 @@ import static android.view.RemoteAnimationTargetProto.TASK_ID;
|
|||||||
import static android.view.RemoteAnimationTargetProto.WINDOW_CONFIGURATION;
|
import static android.view.RemoteAnimationTargetProto.WINDOW_CONFIGURATION;
|
||||||
import static android.view.WindowManager.LayoutParams.INVALID_WINDOW_TYPE;
|
import static android.view.WindowManager.LayoutParams.INVALID_WINDOW_TYPE;
|
||||||
|
|
||||||
|
import android.annotation.ColorInt;
|
||||||
import android.annotation.IntDef;
|
import android.annotation.IntDef;
|
||||||
import android.app.ActivityManager;
|
import android.app.ActivityManager;
|
||||||
import android.app.TaskInfo;
|
import android.app.TaskInfo;
|
||||||
@@ -221,6 +222,12 @@ public class RemoteAnimationTarget implements Parcelable {
|
|||||||
*/
|
*/
|
||||||
public boolean hasAnimatingParent;
|
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,
|
public RemoteAnimationTarget(int taskId, int mode, SurfaceControl leash, boolean isTranslucent,
|
||||||
Rect clipRect, Rect contentInsets, int prefixOrderIndex, Point position,
|
Rect clipRect, Rect contentInsets, int prefixOrderIndex, Point position,
|
||||||
Rect localBounds, Rect screenSpaceBounds,
|
Rect localBounds, Rect screenSpaceBounds,
|
||||||
@@ -279,6 +286,7 @@ public class RemoteAnimationTarget implements Parcelable {
|
|||||||
allowEnterPip = in.readBoolean();
|
allowEnterPip = in.readBoolean();
|
||||||
windowType = in.readInt();
|
windowType = in.readInt();
|
||||||
hasAnimatingParent = in.readBoolean();
|
hasAnimatingParent = in.readBoolean();
|
||||||
|
backgroundColor = in.readInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -307,6 +315,7 @@ public class RemoteAnimationTarget implements Parcelable {
|
|||||||
dest.writeBoolean(allowEnterPip);
|
dest.writeBoolean(allowEnterPip);
|
||||||
dest.writeInt(windowType);
|
dest.writeInt(windowType);
|
||||||
dest.writeBoolean(hasAnimatingParent);
|
dest.writeBoolean(hasAnimatingParent);
|
||||||
|
dest.writeInt(backgroundColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void dump(PrintWriter pw, String prefix) {
|
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("allowEnterPip="); pw.println(allowEnterPip);
|
||||||
pw.print(prefix); pw.print("windowType="); pw.print(windowType);
|
pw.print(prefix); pw.print("windowType="); pw.print(windowType);
|
||||||
pw.print(prefix); pw.print("hasAnimatingParent="); pw.print(hasAnimatingParent);
|
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) {
|
public void dumpDebug(ProtoOutputStream proto, long fieldId) {
|
||||||
|
|||||||
@@ -432,7 +432,8 @@ class ActivityLaunchAnimator(
|
|||||||
right = windowBounds.right
|
right = windowBounds.right
|
||||||
)
|
)
|
||||||
val callback = this@ActivityLaunchAnimator.callback!!
|
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.
|
// Make sure we use the modified timings when animating a dialog into an app.
|
||||||
val launchAnimator = if (controller.isDialogLaunch) {
|
val launchAnimator = if (controller.isDialogLaunch) {
|
||||||
|
|||||||
@@ -138,7 +138,7 @@ class RemoteTransitionAdapter {
|
|||||||
info: TransitionInfo,
|
info: TransitionInfo,
|
||||||
t: SurfaceControl.Transaction
|
t: SurfaceControl.Transaction
|
||||||
): RemoteAnimationTarget {
|
): RemoteAnimationTarget {
|
||||||
return RemoteAnimationTarget(
|
val target = RemoteAnimationTarget(
|
||||||
/* taskId */ if (change.taskInfo != null) change.taskInfo!!.taskId else -1,
|
/* taskId */ if (change.taskInfo != null) change.taskInfo!!.taskId else -1,
|
||||||
/* mode */ newModeToLegacyMode(change.mode),
|
/* mode */ newModeToLegacyMode(change.mode),
|
||||||
/* leash */ createLeash(info, change, order, t),
|
/* leash */ createLeash(info, change, order, t),
|
||||||
@@ -160,6 +160,8 @@ class RemoteTransitionAdapter {
|
|||||||
/* taskInfo */ change.taskInfo,
|
/* taskInfo */ change.taskInfo,
|
||||||
/* allowEnterPip */ change.allowEnterPip,
|
/* allowEnterPip */ change.allowEnterPip,
|
||||||
/* windowType */ WindowManager.LayoutParams.INVALID_WINDOW_TYPE)
|
/* windowType */ WindowManager.LayoutParams.INVALID_WINDOW_TYPE)
|
||||||
|
target.backgroundColor = change.backgroundColor
|
||||||
|
return target
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user