Merge "Fix issues where the task was still touchable in overview" into sc-v2-dev
This commit is contained in:
@@ -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();
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user