Merge "Fix issues where the task was still touchable in overview" into sc-v2-dev

This commit is contained in:
Winson Chung
2021-08-27 20:11:09 +00:00
committed by Android (Google) Code Review
3 changed files with 11 additions and 5 deletions

View File

@@ -67,6 +67,8 @@ import com.android.wm.shell.transition.LegacyTransitions;
import com.android.wm.shell.transition.Transitions; import com.android.wm.shell.transition.Transitions;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Comparator;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
/** /**
@@ -295,11 +297,15 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
mRootTDAOrganizer.attachToDisplayArea(DEFAULT_DISPLAY, builder); mRootTDAOrganizer.attachToDisplayArea(DEFAULT_DISPLAY, builder);
SurfaceControl sc = builder.build(); SurfaceControl sc = builder.build();
SurfaceControl.Transaction transaction = new SurfaceControl.Transaction(); SurfaceControl.Transaction transaction = new SurfaceControl.Transaction();
// Ensure that we order these in the parent in the right z-order as their previous order
Arrays.sort(apps, (a1, a2) -> a1.prefixOrderIndex - a2.prefixOrderIndex);
int layer = 1;
for (RemoteAnimationTarget appTarget : apps) { for (RemoteAnimationTarget appTarget : apps) {
// TODO(b/195958376) set the correct layer/z-order in transaction for the new surface
transaction.reparent(appTarget.leash, sc); transaction.reparent(appTarget.leash, sc);
transaction.setPosition(appTarget.leash, appTarget.screenSpaceBounds.left, transaction.setPosition(appTarget.leash, appTarget.screenSpaceBounds.left,
appTarget.screenSpaceBounds.top); appTarget.screenSpaceBounds.top);
transaction.setLayer(appTarget.leash, layer++);
} }
transaction.apply(); transaction.apply();
transaction.close(); transaction.close();

View File

@@ -582,7 +582,7 @@ final class InputMonitor {
if (recentsAnimationController.updateInputConsumerForApp( if (recentsAnimationController.updateInputConsumerForApp(
mRecentsAnimationInputConsumer.mWindowHandle)) { mRecentsAnimationInputConsumer.mWindowHandle)) {
mRecentsAnimationInputConsumer.show(mInputTransaction, mRecentsAnimationInputConsumer.show(mInputTransaction,
recentsAnimationController.getHighestLayerActivity()); recentsAnimationController.getHighestLayerWindow());
mAddRecentsAnimationInputConsumerHandle = false; mAddRecentsAnimationInputConsumerHandle = false;
} }
} }

View File

@@ -1103,9 +1103,9 @@ public class RecentsAnimationController implements DeathRecipient {
} }
/** /**
* Returns the activity with the highest layer, or null if none is found. * Returns the window with the highest layer, or null if none is found.
*/ */
public ActivityRecord getHighestLayerActivity() { public WindowState getHighestLayerWindow() {
int highestLayer = Integer.MIN_VALUE; int highestLayer = Integer.MIN_VALUE;
Task highestLayerTask = null; Task highestLayerTask = null;
for (int i = mPendingAnimations.size() - 1; i >= 0; i--) { for (int i = mPendingAnimations.size() - 1; i >= 0; i--) {
@@ -1116,7 +1116,7 @@ public class RecentsAnimationController implements DeathRecipient {
highestLayerTask = adapter.mTask; highestLayerTask = adapter.mTask;
} }
} }
return highestLayerTask.getTopMostActivity(); return highestLayerTask.getTopMostActivity().getTopChild();
} }
boolean isAnimatingTask(Task task) { boolean isAnimatingTask(Task task) {