Make sure recents animation input consumer is above the top task
- Now that we are animating multiple tasks together for staged split we need to ensure the layer is above the top most task Bug: 195427335 Test: atest RecentsAnimationControllerTest Change-Id: Ieb4b0b0de730a9b3ba3725955c5baac4c0f1c4c8
This commit is contained in:
@@ -539,7 +539,8 @@ final class InputMonitor {
|
||||
if (mAddRecentsAnimationInputConsumerHandle && shouldApplyRecentsInputConsumer) {
|
||||
if (recentsAnimationController.updateInputConsumerForApp(
|
||||
mRecentsAnimationInputConsumer.mWindowHandle)) {
|
||||
mRecentsAnimationInputConsumer.show(mInputTransaction, w.mActivityRecord);
|
||||
mRecentsAnimationInputConsumer.show(mInputTransaction,
|
||||
recentsAnimationController.getHighestLayerTask());
|
||||
mAddRecentsAnimationInputConsumerHandle = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1102,6 +1102,23 @@ public class RecentsAnimationController implements DeathRecipient {
|
||||
return mTargetActivityRecord.findMainWindow();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the task with the highest layer, or null if none is found.
|
||||
*/
|
||||
public Task getHighestLayerTask() {
|
||||
int highestLayer = Integer.MIN_VALUE;
|
||||
Task highestLayerTask = null;
|
||||
for (int i = mPendingAnimations.size() - 1; i >= 0; i--) {
|
||||
TaskAnimationAdapter adapter = mPendingAnimations.get(i);
|
||||
int layer = adapter.mTask.getPrefixOrderIndex();
|
||||
if (layer > highestLayer) {
|
||||
highestLayer = layer;
|
||||
highestLayerTask = adapter.mTask;
|
||||
}
|
||||
}
|
||||
return highestLayerTask;
|
||||
}
|
||||
|
||||
boolean isAnimatingTask(Task task) {
|
||||
for (int i = mPendingAnimations.size() - 1; i >= 0; i--) {
|
||||
if (task == mPendingAnimations.get(i).mTask) {
|
||||
|
||||
Reference in New Issue
Block a user