Handle dim layers in recents animation
Launcher-side changes for ag/31424956.
Bug: 349828130
Flag: com.android.wm.shell.enable_flexible_two_app_split
Test: Visually correct when a 90:10 pair goes to recents and back
Change-Id: I65bc56565291eae5959cd567057754d47a84bcaa
diff --git a/quickstep/src/com/android/quickstep/RecentsAnimationCallbacks.java b/quickstep/src/com/android/quickstep/RecentsAnimationCallbacks.java
index c6b858b..372354c 100644
--- a/quickstep/src/com/android/quickstep/RecentsAnimationCallbacks.java
+++ b/quickstep/src/com/android/quickstep/RecentsAnimationCallbacks.java
@@ -21,6 +21,7 @@
import static android.view.WindowManager.LayoutParams.TYPE_DOCK_DIVIDER;
import static com.android.launcher3.util.Executors.MAIN_EXECUTOR;
+import static com.android.wm.shell.shared.TransitionUtil.TYPE_SPLIT_SCREEN_DIM_LAYER;
import android.annotation.Nullable;
import android.graphics.Rect;
@@ -189,7 +190,8 @@
ArrayList<RemoteAnimationTarget> apps, ArrayList<RemoteAnimationTarget> nonApps) {
for (int i = 0; i < appTargets.length; i++) {
RemoteAnimationTarget target = appTargets[i];
- if (target.windowType == TYPE_DOCK_DIVIDER) {
+ if (target.windowType == TYPE_DOCK_DIVIDER
+ || target.windowType == TYPE_SPLIT_SCREEN_DIM_LAYER) {
nonApps.add(target);
} else {
apps.add(target);
diff --git a/quickstep/src/com/android/quickstep/TaskViewUtils.java b/quickstep/src/com/android/quickstep/TaskViewUtils.java
index e47223b..49f0efc 100644
--- a/quickstep/src/com/android/quickstep/TaskViewUtils.java
+++ b/quickstep/src/com/android/quickstep/TaskViewUtils.java
@@ -39,6 +39,7 @@
import static com.android.launcher3.Utilities.getDescendantCoordRelativeToAncestor;
import static com.android.launcher3.util.MultiPropertyFactory.MULTI_PROPERTY_VALUE;
import static com.android.quickstep.util.AnimUtils.clampToDuration;
+import static com.android.wm.shell.shared.TransitionUtil.TYPE_SPLIT_SCREEN_DIM_LAYER;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
@@ -732,7 +733,9 @@
List<SurfaceControl> auxiliarySurfaces = new ArrayList<>();
for (RemoteAnimationTarget target : nonApps) {
final SurfaceControl leash = target.leash;
- if (target.windowType == TYPE_DOCK_DIVIDER && leash != null && leash.isValid()) {
+ if ((target.windowType == TYPE_DOCK_DIVIDER
+ || target.windowType == TYPE_SPLIT_SCREEN_DIM_LAYER)
+ && leash != null && leash.isValid()) {
auxiliarySurfaces.add(leash);
}
}