Merge "Handle task visibility change to show the surface" into udc-dev

This commit is contained in:
Gaurav Bhola
2023-03-13 19:20:00 +00:00
committed by Android (Google) Code Review

View File

@@ -129,6 +129,7 @@ public class FullscreenTaskListener implements ShellTaskOrganizer.TaskListener {
public void onTaskInfoChanged(RunningTaskInfo taskInfo) {
final State state = mTasks.get(taskInfo.taskId);
final Point oldPositionInParent = state.mTaskInfo.positionInParent;
boolean oldVisible = state.mTaskInfo.isVisible;
if (mWindowDecorViewModelOptional.isPresent()) {
mWindowDecorViewModelOptional.get().onTaskInfoChanged(taskInfo);
@@ -138,12 +139,18 @@ public class FullscreenTaskListener implements ShellTaskOrganizer.TaskListener {
updateRecentsForVisibleFullscreenTask(taskInfo);
final Point positionInParent = state.mTaskInfo.positionInParent;
if (!oldPositionInParent.equals(state.mTaskInfo.positionInParent)) {
boolean positionInParentChanged = !oldPositionInParent.equals(positionInParent);
boolean becameVisible = !oldVisible && state.mTaskInfo.isVisible;
if (becameVisible || positionInParentChanged) {
mSyncQueue.runInSync(t -> {
if (!state.mLeash.isValid()) {
// Task vanished before sync completion
return;
}
if (becameVisible) {
t.show(state.mLeash);
}
t.setPosition(state.mLeash, positionInParent.x, positionInParent.y);
});
}