Merge "Fix some places where we could abort an already-requested transition" into udc-dev

This commit is contained in:
Evan Rosky
2023-03-29 16:44:17 +00:00
committed by Android (Google) Code Review
3 changed files with 8 additions and 17 deletions

View File

@@ -778,13 +778,12 @@ class ActivityClientController extends IActivityClientController.Stub {
&& r.mTransitionController.inPlayingTransition(r) && r.mTransitionController.inPlayingTransition(r)
&& !r.mTransitionController.isCollecting() && !r.mTransitionController.isCollecting()
? r.mTransitionController.createTransition(TRANSIT_TO_BACK) : null; ? r.mTransitionController.createTransition(TRANSIT_TO_BACK) : null;
if (transition != null) {
r.mTransitionController.requestStartTransition(transition, null /*startTask */,
null /* remoteTransition */, null /* displayChange */);
}
final boolean changed = r != null && r.setOccludesParent(true); final boolean changed = r != null && r.setOccludesParent(true);
if (transition != null) { if (transition != null) {
if (changed) { if (changed) {
r.mTransitionController.requestStartTransition(transition,
null /*startTask */, null /* remoteTransition */,
null /* displayChange */);
r.mTransitionController.setReady(r.getDisplayContent()); r.mTransitionController.setReady(r.getDisplayContent());
} else { } else {
transition.abort(); transition.abort();
@@ -818,13 +817,12 @@ class ActivityClientController extends IActivityClientController.Stub {
final Transition transition = r.mTransitionController.inPlayingTransition(r) final Transition transition = r.mTransitionController.inPlayingTransition(r)
&& !r.mTransitionController.isCollecting() && !r.mTransitionController.isCollecting()
? r.mTransitionController.createTransition(TRANSIT_TO_FRONT) : null; ? r.mTransitionController.createTransition(TRANSIT_TO_FRONT) : null;
if (transition != null) {
r.mTransitionController.requestStartTransition(transition, null /*startTask */,
null /* remoteTransition */, null /* displayChange */);
}
final boolean changed = r.setOccludesParent(false); final boolean changed = r.setOccludesParent(false);
if (transition != null) { if (transition != null) {
if (changed) { if (changed) {
r.mTransitionController.requestStartTransition(transition,
null /*startTask */, null /* remoteTransition */,
null /* displayChange */);
r.mTransitionController.setReady(r.getDisplayContent()); r.mTransitionController.setReady(r.getDisplayContent());
} else { } else {
transition.abort(); transition.abort();

View File

@@ -5636,8 +5636,6 @@ class Task extends TaskFragment {
mWmService.mSyncEngine.queueSyncSet( mWmService.mSyncEngine.queueSyncSet(
() -> mTransitionController.moveToCollecting(transition), () -> mTransitionController.moveToCollecting(transition),
() -> { () -> {
mTransitionController.requestStartTransition(transition, tr,
null /* remoteTransition */, null /* displayChange */);
// Need to check again since this happens later and the system might // Need to check again since this happens later and the system might
// be in a different state. // be in a different state.
if (!canMoveTaskToBack(tr)) { if (!canMoveTaskToBack(tr)) {
@@ -5646,6 +5644,8 @@ class Task extends TaskFragment {
transition.abort(); transition.abort();
return; return;
} }
mTransitionController.requestStartTransition(transition, tr,
null /* remoteTransition */, null /* displayChange */);
moveTaskToBackInner(tr); moveTaskToBackInner(tr);
}); });
} else { } else {

View File

@@ -88,7 +88,6 @@ import static android.view.WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY;
import static android.view.WindowManager.LayoutParams.TYPE_WALLPAPER; import static android.view.WindowManager.LayoutParams.TYPE_WALLPAPER;
import static android.view.WindowManager.REMOVE_CONTENT_MODE_UNDEFINED; import static android.view.WindowManager.REMOVE_CONTENT_MODE_UNDEFINED;
import static android.view.WindowManager.TRANSIT_NONE; import static android.view.WindowManager.TRANSIT_NONE;
import static android.view.WindowManager.TRANSIT_TO_FRONT;
import static android.view.WindowManager.fixScale; import static android.view.WindowManager.fixScale;
import static android.view.WindowManagerGlobal.ADD_OKAY; import static android.view.WindowManagerGlobal.ADD_OKAY;
import static android.view.WindowManagerGlobal.RELAYOUT_RES_CANCEL_AND_REDRAW; import static android.view.WindowManagerGlobal.RELAYOUT_RES_CANCEL_AND_REDRAW;
@@ -8537,13 +8536,7 @@ public class WindowManagerService extends IWindowManager.Stub
} }
} }
// focus-transfer can re-order windows and thus potentially causes visible changes:
final Transition transition = mAtmService.getTransitionController()
.requestTransitionIfNeeded(TRANSIT_TO_FRONT, task);
mAtmService.setFocusedTask(task.mTaskId, touchedActivity); mAtmService.setFocusedTask(task.mTaskId, touchedActivity);
if (transition != null) {
transition.setReady(task, true /* ready */);
}
} }
/** /**