Use SysUI/Shell's transaction apply token in Launcher

Launcher and SysUI/Shell have a lot of interactions
that require careful synchronization and ordering (at-least
with shell-transitions). As a result, they need to share
the same apply token or else some operations can end up
out-of-order despite being applied in-order.

Bug: 242193885
Test: Open an app, quickswitch repeatedly.
Change-Id: I4cbe8b5db28516db7a08b4022f1199f3f6b89591
This commit is contained in:
Evan Rosky
2022-08-16 21:49:53 +00:00
parent 50a0d503b6
commit 6e326cf205
2 changed files with 53 additions and 1 deletions

View File

@@ -46,6 +46,7 @@ import static com.android.launcher3.statehandlers.DepthController.DEPTH;
import static com.android.launcher3.util.window.RefreshRateTracker.getSingleFrameMs;
import static com.android.launcher3.views.FloatingIconView.SHAPE_PROGRESS_DURATION;
import static com.android.launcher3.views.FloatingIconView.getFloatingIconView;
import static com.android.quickstep.TaskAnimationManager.ENABLE_SHELL_TRANSITIONS;
import static com.android.quickstep.TaskViewUtils.findTaskViewToLaunch;
import static com.android.systemui.shared.system.QuickStepContract.getWindowCornerRadius;
import static com.android.systemui.shared.system.QuickStepContract.supportsRoundedCornersOnWindows;
@@ -1119,6 +1120,9 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener
* Registers remote animations used when closing apps to home screen.
*/
public void registerRemoteTransitions() {
if (ENABLE_SHELL_TRANSITIONS) {
SystemUiProxy.INSTANCE.get(mLauncher).shareTransactionQueue();
}
if (SEPARATE_RECENTS_ACTIVITY.get()) {
return;
}
@@ -1158,6 +1162,9 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener
}
private void unregisterRemoteTransitions() {
if (ENABLE_SHELL_TRANSITIONS) {
SystemUiProxy.INSTANCE.get(mLauncher).unshareTransactionQueue();
}
if (SEPARATE_RECENTS_ACTIVITY.get()) {
return;
}