summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/ActivityClientController.java3
-rw-r--r--services/core/java/com/android/server/wm/ActivityRecord.java3
-rw-r--r--services/core/java/com/android/server/wm/ActivityTaskManagerService.java11
-rw-r--r--services/core/java/com/android/server/wm/RootWindowContainer.java4
-rw-r--r--services/core/java/com/android/server/wm/Task.java3
-rw-r--r--services/core/java/com/android/server/wm/TransitionController.java9
-rw-r--r--services/core/java/com/android/server/wm/WindowOrganizerController.java20
7 files changed, 23 insertions, 30 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityClientController.java b/services/core/java/com/android/server/wm/ActivityClientController.java
index ff1c28ad1973..a0a64187c752 100644
--- a/services/core/java/com/android/server/wm/ActivityClientController.java
+++ b/services/core/java/com/android/server/wm/ActivityClientController.java
@@ -1147,8 +1147,7 @@ class ActivityClientController extends IActivityClientController.Stub {
if (mService.mWindowManager.mSyncEngine.hasActiveSync()) {
ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS,
"Creating Pending Multiwindow Fullscreen Request: %s", transition);
- mService.mWindowManager.mSyncEngine.queueSyncSet(
- () -> r.mTransitionController.moveToCollecting(transition),
+ r.mTransitionController.queueCollecting(transition,
() -> {
executeFullscreenRequestTransition(fullscreenRequest, callback, r,
transition, true /* queued */);
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java
index 5f56923e2f53..f5b2f1318d92 100644
--- a/services/core/java/com/android/server/wm/ActivityRecord.java
+++ b/services/core/java/com/android/server/wm/ActivityRecord.java
@@ -9808,8 +9808,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
scheduleStopForRestartProcess();
};
if (mWmService.mSyncEngine.hasActiveSync()) {
- mWmService.mSyncEngine.queueSyncSet(
- () -> mTransitionController.moveToCollecting(transition), executeRestart);
+ mTransitionController.queueCollecting(transition, executeRestart);
} else {
mTransitionController.moveToCollecting(transition);
executeRestart.run();
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
index 12fe6a0dba25..55e68055ed89 100644
--- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
+++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
@@ -2874,8 +2874,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
final Transition transition = new Transition(TRANSIT_CHANGE, 0 /* flags */,
getTransitionController(), mWindowManager.mSyncEngine);
if (mWindowManager.mSyncEngine.hasActiveSync()) {
- mWindowManager.mSyncEngine.queueSyncSet(
- () -> getTransitionController().moveToCollecting(transition),
+ getTransitionController().queueCollecting(transition,
() -> {
if (!task.getWindowConfiguration().canResizeTask()) {
Slog.w(TAG, "resizeTask not allowed on task=" + task);
@@ -3629,9 +3628,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
if (transition != null && mWindowManager.mSyncEngine.hasActiveSync()) {
ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS,
"Creating Pending Pip-Enter: %s", transition);
- mWindowManager.mSyncEngine.queueSyncSet(
- () -> getTransitionController().moveToCollecting(transition),
- enterPipRunnable);
+ getTransitionController().queueCollecting(transition, enterPipRunnable);
} else {
// Move to collecting immediately to "claim" the sync-engine for this
// transition.
@@ -3647,9 +3644,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
if (transition != null && mWindowManager.mSyncEngine.hasActiveSync()) {
ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS,
"Creating Pending Pip-Enter: %s", transition);
- mWindowManager.mSyncEngine.queueSyncSet(
- () -> getTransitionController().moveToCollecting(transition),
- enterPipRunnable);
+ getTransitionController().queueCollecting(transition, enterPipRunnable);
} else {
if (transition != null) {
getTransitionController().moveToCollecting(transition);
diff --git a/services/core/java/com/android/server/wm/RootWindowContainer.java b/services/core/java/com/android/server/wm/RootWindowContainer.java
index 07daa4b22ac9..ad934541267e 100644
--- a/services/core/java/com/android/server/wm/RootWindowContainer.java
+++ b/services/core/java/com/android/server/wm/RootWindowContainer.java
@@ -2335,9 +2335,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
transition.playNow();
};
if (display.mTransitionController.isCollecting()) {
- mWmService.mSyncEngine.queueSyncSet(
- () -> display.mTransitionController.moveToCollecting(transition),
- sendSleepTransition);
+ display.mTransitionController.queueCollecting(transition, sendSleepTransition);
} else {
display.mTransitionController.moveToCollecting(transition);
sendSleepTransition.run();
diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java
index db4453297001..25e4d45c90c6 100644
--- a/services/core/java/com/android/server/wm/Task.java
+++ b/services/core/java/com/android/server/wm/Task.java
@@ -5634,8 +5634,7 @@ class Task extends TaskFragment {
if (mWmService.mSyncEngine.hasActiveSync()) {
ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS,
"Creating Pending Move-to-back: %s", transition);
- mWmService.mSyncEngine.queueSyncSet(
- () -> mTransitionController.moveToCollecting(transition),
+ mTransitionController.queueCollecting(transition,
() -> {
// Need to check again since this happens later and the system might
// be in a different state.
diff --git a/services/core/java/com/android/server/wm/TransitionController.java b/services/core/java/com/android/server/wm/TransitionController.java
index bcb8c46de5ed..19f940d60113 100644
--- a/services/core/java/com/android/server/wm/TransitionController.java
+++ b/services/core/java/com/android/server/wm/TransitionController.java
@@ -886,6 +886,15 @@ class TransitionController {
proto.end(token);
}
+ void queueCollecting(Transition transit, Runnable onCollectStart) {
+ mAtm.mWindowManager.mSyncEngine.queueSyncSet(
+ // Make sure to collect immediately to prevent another transition
+ // from sneaking in before it. Note: moveToCollecting internally
+ // calls startSyncSet.
+ () -> moveToCollecting(transit),
+ onCollectStart);
+ }
+
/**
* This manages the animating state of processes that are running remote animations for
* {@link #mTransitionPlayerProc}.
diff --git a/services/core/java/com/android/server/wm/WindowOrganizerController.java b/services/core/java/com/android/server/wm/WindowOrganizerController.java
index 32d54d774b40..f63470f2bea4 100644
--- a/services/core/java/com/android/server/wm/WindowOrganizerController.java
+++ b/services/core/java/com/android/server/wm/WindowOrganizerController.java
@@ -291,23 +291,21 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub
if (type < 0) {
throw new IllegalArgumentException("Can't create transition with no type");
}
+ transition = new Transition(type, 0 /* flags */, mTransitionController,
+ mService.mWindowManager.mSyncEngine);
// If there is already a collecting transition, queue up a new transition and
// return that. The actual start and apply will then be deferred until that
// transition starts collecting. This should almost never happen except during
// tests.
if (mService.mWindowManager.mSyncEngine.hasActiveSync()) {
Slog.w(TAG, "startTransition() while one is already collecting.");
- final Transition nextTransition = new Transition(type, 0 /* flags */,
- mTransitionController, mService.mWindowManager.mSyncEngine);
+ final Transition nextTransition = transition;
ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS,
"Creating Pending Transition: %s", nextTransition);
- mService.mWindowManager.mSyncEngine.queueSyncSet(
- // Make sure to collect immediately to prevent another transition
- // from sneaking in before it. Note: moveToCollecting internally
- // calls startSyncSet.
- () -> mTransitionController.moveToCollecting(nextTransition),
+ mTransitionController.queueCollecting(nextTransition,
() -> {
nextTransition.start();
+ nextTransition.mLogger.mStartWCT = wct;
applyTransaction(wct, -1 /*syncId*/, nextTransition, caller);
if (needsSetReady) {
nextTransition.setAllReady();
@@ -315,7 +313,7 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub
});
return nextTransition.getToken();
}
- transition = mTransitionController.createTransition(type);
+ mTransitionController.moveToCollecting(transition);
}
if (!transition.isCollecting() && !transition.isForcePlaying()) {
Slog.e(TAG, "Trying to start a transition that isn't collecting. This probably"
@@ -474,11 +472,7 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub
mTransitionController, mService.mWindowManager.mSyncEngine);
ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS,
"Creating Pending Transition for TaskFragment: %s", nextTransition);
- mService.mWindowManager.mSyncEngine.queueSyncSet(
- // Make sure to collect immediately to prevent another transition
- // from sneaking in before it. Note: moveToCollecting internally
- // calls startSyncSet.
- () -> mTransitionController.moveToCollecting(nextTransition),
+ mTransitionController.queueCollecting(nextTransition,
() -> {
if (mTaskFragmentOrganizerController.isValidTransaction(wct)
&& (applyTransaction(wct, -1 /* syncId */, nextTransition, caller)