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

Commit 03ec3e80 authored by Vinit Nayak's avatar Vinit Nayak Committed by Android (Google) Code Review
Browse files

Merge "Only add Dim layers to transaction if not in 50/50 split" into main

parents d6ed8077 d15777c5
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -17,6 +17,10 @@
package com.android.wm.shell.common.split;

import static com.android.wm.shell.shared.split.SplitScreenConstants.NOT_IN_SPLIT;
import static com.android.wm.shell.shared.split.SplitScreenConstants.SNAP_TO_2_10_90;
import static com.android.wm.shell.shared.split.SplitScreenConstants.SNAP_TO_2_90_10;
import static com.android.wm.shell.shared.split.SplitScreenConstants.SNAP_TO_3_10_45_45;
import static com.android.wm.shell.shared.split.SplitScreenConstants.SNAP_TO_3_45_45_10;
import static com.android.wm.shell.shared.split.SplitScreenConstants.SplitScreenState;

import android.graphics.Rect;
@@ -62,4 +66,12 @@ public class SplitState {
    public List<RectF> getCurrentLayout() {
        return getLayout(mState);
    }

    /** @return {@code true} if at least one app is partially offscreen in the current layout. */
    public boolean currentStateSupportsOffscreenApps() {
        return mState == SNAP_TO_2_10_90
                || mState == SNAP_TO_2_90_10
                || mState == SNAP_TO_3_10_45_45
                || mState == SNAP_TO_3_45_45_10;
    }
}
+11 −8
Original line number Diff line number Diff line
@@ -3618,9 +3618,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,

        finishEnterSplitScreen(finishT);
        addDividerBarToTransition(info, true /* show */);
        if (Flags.enableFlexibleTwoAppSplit()) {
        addAllDimLayersToTransition(info, true /* show */);
        }
        return true;
    }

@@ -3871,10 +3869,8 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
        }

        addDividerBarToTransition(info, false /* show */);
        if (Flags.enableFlexibleTwoAppSplit()) {
        addAllDimLayersToTransition(info, false /* show */);
    }
    }

    /** Call this when the recents animation canceled during split-screen. */
    public void onRecentsInSplitAnimationCanceled() {
@@ -3999,8 +3995,15 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
        info.addChange(barChange);
    }

    /** Add dim layers to the transition, so that they can be hidden/shown when animation starts. */
    /**
     * Add dim layers to the transition, so that they can be hidden/shown when animation starts.
     * They're only added if there is at least one offscreen app.
     */
    private void addAllDimLayersToTransition(@NonNull TransitionInfo info, boolean show) {
        if (!mSplitState.currentStateSupportsOffscreenApps()) {
            return;
        }

        if (Flags.enableFlexibleSplit()) {
            List<StageTaskListener> stages = mStageOrderOperator.getActiveStages();
            for (int i = 0; i < stages.size(); i++) {
@@ -4008,7 +4011,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
                mSplitState.getCurrentLayout().get(i).roundOut(mTempRect1);
                addDimLayerToTransition(info, show, stage, mTempRect1);
            }
        } else {
        } else if (enableFlexibleTwoAppSplit()) {
            addDimLayerToTransition(info, show, mMainStage, getMainStageBounds());
            addDimLayerToTransition(info, show, mSideStage, getSideStageBounds());
        }