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

Commit 411c1b48 authored by Chris Li's avatar Chris Li
Browse files

Transfer PipContentOverlay when swipe to home with Shell transition

Update launcher to pass the taskId to Shell, so that Shell can reparent
the overlay from the remote transition leash to the Task leash.
Otherwise the overlay will be removed with the transition leash when
transition is finished.

Bug: 222030101
Test: verify with swipe to home with Shell transition
Change-Id: I838c22951fdf79c3213f2c9b1cb73a4a90341597
parent 42698fcb
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1760,6 +1760,7 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
    private void maybeFinishSwipeToHome() {
        if (mIsSwipingPipToHome && mSwipePipToHomeAnimators[0] != null) {
            SystemUiProxy.INSTANCE.get(mContext).stopSwipePipToHome(
                    mSwipePipToHomeAnimator.getTaskId(),
                    mSwipePipToHomeAnimator.getComponentName(),
                    mSwipePipToHomeAnimator.getDestinationBounds(),
                    mSwipePipToHomeAnimator.getContentOverlay());
+7 −2
Original line number Diff line number Diff line
@@ -541,11 +541,16 @@ public class SystemUiProxy implements ISystemUiProxy,
        return null;
    }

    public void stopSwipePipToHome(ComponentName componentName, Rect destinationBounds,
    /**
     * Notifies WM Shell that launcher has finished all the animation for swipe to home. WM Shell
     * can choose to fade out the overlay when entering PIP is finished, and WM Shell should be
     * responsible for cleaning up the overlay.
     */
    public void stopSwipePipToHome(int taskId, ComponentName componentName, Rect destinationBounds,
            SurfaceControl overlay) {
        if (mPip != null) {
            try {
                mPip.stopSwipePipToHome(componentName, destinationBounds, overlay);
                mPip.stopSwipePipToHome(taskId, componentName, destinationBounds, overlay);
            } catch (RemoteException e) {
                Log.w(TAG, "Failed call stopSwipePipToHome");
            }