Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a3f107c0 authored by Evan Rosky's avatar Evan Rosky
Browse files

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
parent ed6a6324
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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,
+2 −3
Original line number Diff line number Diff line
@@ -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<ActivityManager.RunningTaskInfo> out,