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

Commit 318ef830 authored by Tony Huang's avatar Tony Huang Committed by Automerger Merge Worker
Browse files

Merge "Skip enter split expanding animation by drag" into tm-qpr-dev am: 7914d7de am: 54394901

parents 69dbbef6 54394901
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -87,6 +87,10 @@ public class SplitscreenEventLogger {
        return mLoggerSessionId != null;
    }

    public boolean isEnterRequestedByDrag() {
        return mEnterReason == ENTER_REASON_DRAG;
    }

    /**
     * May be called before logEnter() to indicate that the session was started from a drag.
     */
+23 −8
Original line number Diff line number Diff line
@@ -505,6 +505,12 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
        final WindowContainerTransaction wct = new WindowContainerTransaction();
        options = resolveStartStage(STAGE_TYPE_UNDEFINED, position, options, wct);

        // If split still not active, apply windows bounds first to avoid surface reset to
        // wrong pos by SurfaceAnimator from wms.
        if (!mMainStage.isActive() && mLogger.isEnterRequestedByDrag()) {
            updateWindowBounds(mSplitLayout, wct);
        }

        wct.sendPendingIntent(intent, fillInIntent, options);
        mSyncQueue.queue(transition, WindowManager.TRANSIT_OPEN, wct);
    }
@@ -1461,18 +1467,27 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
                }
            }
        } else if (isSideStage && hasChildren && !mMainStage.isActive()) {
            // TODO (b/238697912) : Add the validation to prevent entering non-recovered status
            onSplitScreenEnter();
            final WindowContainerTransaction wct = new WindowContainerTransaction();
            mSplitLayout.init();
            if (mLogger.isEnterRequestedByDrag()) {
                prepareEnterSplitScreen(wct);
            } else {
                // TODO (b/238697912) : Add the validation to prevent entering non-recovered status
                onSplitScreenEnter();
                mSplitLayout.setDividerAtBorder(mSideStagePosition == SPLIT_POSITION_TOP_OR_LEFT);
                mMainStage.activate(wct, true /* includingTopTask */);
                updateWindowBounds(mSplitLayout, wct);
                wct.reorder(mRootTaskInfo.token, true);
                wct.setForceTranslucent(mRootTaskInfo.token, false);
            }

            mSyncQueue.queue(wct);
            mSyncQueue.runInSync(t -> {
                if (mLogger.isEnterRequestedByDrag()) {
                    updateSurfaceBounds(mSplitLayout, t, false /* applyResizingOffset */);
                } else {
                    mSplitLayout.flingDividerToCenter();
                }
            });
        }
        if (mMainStageListener.mHasChildren && mSideStageListener.mHasChildren) {