Fix layering issue when launching from side TaskView
Fully reverted the change in ag/24840504, and instead make use of
prefixOrderIndex to ensure translucent overlays launch on top of
the underlying task.
Test: Swipe up from an app to Overview (phone), scroll over one
task, click on the live tile you came from; ensure animates well
Test: Open an app, launch a translucent overlay, e.g. Volume
Dialog, swipe up to Overview and relaunch the live tasks; ensure
the overlay stays on top throughout the animation
Fixes: 310765248
Flag: ACONFIG com.android.launcher3.enable_grid_only_overview TEAMFOOD
Change-Id: I0708bf3c060ba84089722d0bd9480a4f4bd2b8e2
diff --git a/quickstep/src/com/android/quickstep/util/TaskViewSimulator.java b/quickstep/src/com/android/quickstep/util/TaskViewSimulator.java
index 5d8e53e..baaa062 100644
--- a/quickstep/src/com/android/quickstep/util/TaskViewSimulator.java
+++ b/quickstep/src/com/android/quickstep/util/TaskViewSimulator.java
@@ -427,9 +427,16 @@
// conflict with layers that WM core positions (ie. the input consumers). For shell
// transitions, the animation leashes are reparented to an animation container so we
// can bump layers as needed.
- builder.setLayer(mDrawsBelowRecents
- ? Integer.MIN_VALUE + app.prefixOrderIndex
- : ENABLE_SHELL_TRANSITIONS ? Integer.MAX_VALUE : 0);
+ if (ENABLE_SHELL_TRANSITIONS) {
+ builder.setLayer(mDrawsBelowRecents
+ ? Integer.MIN_VALUE + app.prefixOrderIndex
+ // 1000 is an arbitrary number to give room for multiple layers.
+ : Integer.MAX_VALUE - 1000 + app.prefixOrderIndex);
+ } else {
+ builder.setLayer(mDrawsBelowRecents
+ ? Integer.MIN_VALUE + app.prefixOrderIndex
+ : 0);
+ }
}
}
diff --git a/quickstep/src/com/android/quickstep/views/TaskView.java b/quickstep/src/com/android/quickstep/views/TaskView.java
index af4f402..5041a76 100644
--- a/quickstep/src/com/android/quickstep/views/TaskView.java
+++ b/quickstep/src/com/android/quickstep/views/TaskView.java
@@ -1062,9 +1062,6 @@
anim.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationStart(Animator animation) {
- if (!recentsView.showAsGrid()) {
- return;
- }
recentsView.runActionOnRemoteHandles(
(Consumer<RemoteTargetHandle>) remoteTargetHandle ->
remoteTargetHandle