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

Commit 7be7140e authored by Jerry Chang's avatar Jerry Chang Committed by Automerger Merge Worker
Browse files

Merge "Use the proper transaction when finishing a split screen transition"...

Merge "Use the proper transaction when finishing a split screen transition" into tm-qpr-dev am: a2227ca9 am: 2cb2a5b8

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19416506



Change-Id: I4b7e499a738d792f74b7955fc2318f7e1bd5cc40
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents c9e41e3d 2cb2a5b8
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -1130,16 +1130,16 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange
            boolean adjusted = false;
            if (mYOffsetForIme != 0) {
                if (dividerLeash != null) {
                    mTempRect.set(mDividerBounds);
                    getRefDividerBounds(mTempRect);
                    mTempRect.offset(0, mYOffsetForIme);
                    t.setPosition(dividerLeash, mTempRect.left, mTempRect.top);
                }

                mTempRect.set(mBounds1);
                getRefBounds1(mTempRect);
                mTempRect.offset(0, mYOffsetForIme);
                t.setPosition(leash1, mTempRect.left, mTempRect.top);

                mTempRect.set(mBounds2);
                getRefBounds2(mTempRect);
                mTempRect.offset(0, mYOffsetForIme);
                t.setPosition(leash2, mTempRect.left, mTempRect.top);
                adjusted = true;
+2 −1
Original line number Diff line number Diff line
@@ -317,7 +317,8 @@ public class PipTransition extends PipTransitionController {
    }

    @Override
    public void onTransitionConsumed(@NonNull IBinder transition, boolean aborted) {
    public void onTransitionConsumed(@NonNull IBinder transition, boolean aborted,
            @Nullable SurfaceControl.Transaction finishT) {
        if (transition != mExitTransition) {
            return;
        }
+5 −13
Original line number Diff line number Diff line
@@ -94,6 +94,7 @@ class SplitScreenTransitions {
            @NonNull WindowContainerToken topRoot) {
        mFinishCallback = finishCallback;
        mAnimatingTransition = transition;
        mFinishTransaction = finishTransaction;
        if (mPendingRemoteHandler != null) {
            mPendingRemoteHandler.startAnimation(transition, info, startTransaction,
                    finishTransaction, mRemoteFinishCB);
@@ -107,8 +108,6 @@ class SplitScreenTransitions {
    private void playInternalAnimation(@NonNull IBinder transition, @NonNull TransitionInfo info,
            @NonNull SurfaceControl.Transaction t, @NonNull WindowContainerToken mainRoot,
            @NonNull WindowContainerToken sideRoot, @NonNull WindowContainerToken topRoot) {
        mFinishTransaction = mTransactionPool.acquire();

        // Play some place-holder fade animations
        for (int i = info.getChanges().size() - 1; i >= 0; --i) {
            final TransitionInfo.Change change = info.getChanges().get(i);
@@ -287,16 +286,14 @@ class SplitScreenTransitions {
        return true;
    }

    void onTransitionConsumed(@NonNull IBinder transition, boolean aborted) {
    void onTransitionConsumed(@NonNull IBinder transition, boolean aborted,
            @Nullable SurfaceControl.Transaction finishT) {
        if (isPendingEnter(transition)) {
            if (!aborted) {
                // An enter transition got merged, appends the rest operations to finish entering
                // split screen.
                // TODO (b/238856352): Passed-in the proper finish transition to merge instead.
                if (mFinishTransaction == null) {
                    mFinishTransaction = mTransactionPool.acquire();
                }
                mStageCoordinator.finishEnterSplitScreen(mFinishTransaction);
                mStageCoordinator.finishEnterSplitScreen(finishT);
                mPendingRemoteHandler = null;
            }

            mPendingEnter.mCallback.onTransitionConsumed(aborted);
@@ -339,11 +336,6 @@ class SplitScreenTransitions {
        mAnimatingTransition = null;

        mOnFinish.run();
        if (mFinishTransaction != null) {
            mFinishTransaction.apply();
            mTransactionPool.release(mFinishTransaction);
            mFinishTransaction = null;
        }
        if (mFinishCallback != null) {
            mFinishCallback.onTransitionFinished(wct /* wct */, wctCB /* wctCB */);
            mFinishCallback = null;
+4 −2
Original line number Diff line number Diff line
@@ -233,6 +233,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
                if (op.getType() == HIERARCHY_OP_TYPE_REORDER && op.getToTop()
                        && (mMainStage.containsContainer(container)
                        || mSideStage.containsContainer(container))) {
                    updateSurfaceBounds(mSplitLayout, finishT, false /* applyResizingOffset */);
                    setDividerVisibility(true, finishT);
                    return;
                }
@@ -1742,8 +1743,9 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
    }

    @Override
    public void onTransitionConsumed(@NonNull IBinder transition, boolean aborted) {
        mSplitTransitions.onTransitionConsumed(transition, aborted);
    public void onTransitionConsumed(@NonNull IBinder transition, boolean aborted,
            @Nullable SurfaceControl.Transaction finishT) {
        mSplitTransitions.onTransitionConsumed(transition, aborted, finishT);
    }

    @Override
+3 −2
Original line number Diff line number Diff line
@@ -274,7 +274,8 @@ public class DefaultMixedHandler implements Transitions.TransitionHandler {
    }

    @Override
    public void onTransitionConsumed(@NonNull IBinder transition, boolean aborted) {
    public void onTransitionConsumed(@NonNull IBinder transition, boolean aborted,
            @Nullable SurfaceControl.Transaction finishT) {
        MixedTransition mixed = null;
        for (int i = mActiveTransitions.size() - 1; i >= 0; --i) {
            if (mActiveTransitions.get(i).mTransition != transition) continue;
@@ -283,7 +284,7 @@ public class DefaultMixedHandler implements Transitions.TransitionHandler {
        }
        if (mixed == null) return;
        if (mixed.mType == MixedTransition.TYPE_ENTER_PIP_FROM_SPLIT) {
            mPipHandler.onTransitionConsumed(transition, aborted);
            mPipHandler.onTransitionConsumed(transition, aborted, finishT);
        }
    }
}
Loading