From a3f107c0e81a115e22f193e5ddd4cfb5eacdabd2 Mon Sep 17 00:00:00 2001 From: Evan Rosky Date: Wed, 10 Feb 2021 16:08:29 -0800 Subject: Apply split-screen resize on sync queue This keeps it synchronized with dismissal and thus avoids a race between pending and sync transaction application Bug: 170801863 Test: launch a forced-multiwindow sizecompat app in split and then dismiss split to that app. App should not be cropped. Change-Id: I686605928ededcd5c5d032789fd883e17f437948 Merged-in: I4d89be443af5616174ea44e62774133e3b99597c --- .../SystemUI/src/com/android/systemui/stackdivider/DividerView.java | 4 ++-- .../src/com/android/systemui/stackdivider/WindowManagerProxy.java | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java b/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java index b6c6afd523b3..be4009838fcc 100644 --- a/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java +++ b/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java @@ -618,7 +618,7 @@ public class DividerView extends FrameLayout implements OnTouchListener, mEntranceAnimationRunning = false; mExitAnimationRunning = false; if (!dismissed && !wasMinimizeInteraction) { - WindowManagerProxy.applyResizeSplits(snapTarget.position, mSplitLayout); + mWindowManagerProxy.applyResizeSplits(snapTarget.position, mSplitLayout); } if (mCallback != null) { mCallback.onDraggingEnd(); @@ -889,7 +889,7 @@ public class DividerView extends FrameLayout implements OnTouchListener, t.hide(sc).apply(); mTiles.releaseTransaction(t); int midPos = mSplitLayout.getSnapAlgorithm().getMiddleTarget().position; - WindowManagerProxy.applyResizeSplits(midPos, mSplitLayout); + mWindowManagerProxy.applyResizeSplits(midPos, mSplitLayout); } public void setMinimizedDockStack(boolean minimized, long animDuration, diff --git a/packages/SystemUI/src/com/android/systemui/stackdivider/WindowManagerProxy.java b/packages/SystemUI/src/com/android/systemui/stackdivider/WindowManagerProxy.java index 410e3dd39a0b..e593db86bd12 100644 --- a/packages/SystemUI/src/com/android/systemui/stackdivider/WindowManagerProxy.java +++ b/packages/SystemUI/src/com/android/systemui/stackdivider/WindowManagerProxy.java @@ -37,7 +37,6 @@ import android.view.WindowManagerGlobal; import android.window.TaskOrganizer; import android.window.WindowContainerToken; import android.window.WindowContainerTransaction; -import android.window.WindowOrganizer; import com.android.internal.annotations.GuardedBy; import com.android.systemui.TransactionPool; @@ -112,10 +111,10 @@ public class WindowManagerProxy { mExecutor.execute(mSetTouchableRegionRunnable); } - static void applyResizeSplits(int position, SplitDisplayLayout splitLayout) { + void applyResizeSplits(int position, SplitDisplayLayout splitLayout) { WindowContainerTransaction t = new WindowContainerTransaction(); splitLayout.resizeSplits(position, t); - WindowOrganizer.applyTransaction(t); + applySyncTransaction(t); } private static boolean getHomeAndRecentsTasks(List out, -- cgit v1.2.3-59-g8ed1b