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

Commit 92b58c26 authored by Hongwei Wang's avatar Hongwei Wang
Browse files

Explicitly call out Home vis change on exiting PiP

Explicitly call HomeTransitionObserver#notifyHomeVisibilityChanged when
exiting PiP to full-screen mode.

Video: http://recall/-/aaaaaabFQoRHlzixHdtY/bDCe5aL9ctHwQWlW9lMvAr
Bug: 340443311
Test: Enter and exit PiP in button navigation mode, tap Recents button
Change-Id: I47c948af54db22305f56e0c95df049e2f87abc3c
(cherry picked from commit 0634ed0d)
parent 2674c808
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -60,6 +60,7 @@ import com.android.wm.shell.splitscreen.SplitScreenController;
import com.android.wm.shell.sysui.ShellCommandHandler;
import com.android.wm.shell.sysui.ShellController;
import com.android.wm.shell.sysui.ShellInit;
import com.android.wm.shell.transition.HomeTransitionObserver;
import com.android.wm.shell.transition.Transitions;

import dagger.Module;
@@ -192,11 +193,12 @@ public abstract class Pip1Module {
            PipBoundsState pipBoundsState, PipDisplayLayoutState pipDisplayLayoutState,
            PipTransitionState pipTransitionState, PhonePipMenuController pipMenuController,
            PipSurfaceTransactionHelper pipSurfaceTransactionHelper,
            HomeTransitionObserver homeTransitionObserver,
            Optional<SplitScreenController> splitScreenOptional) {
        return new PipTransition(context, shellInit, shellTaskOrganizer, transitions,
                pipBoundsState, pipDisplayLayoutState, pipTransitionState, pipMenuController,
                pipBoundsAlgorithm, pipAnimationController, pipSurfaceTransactionHelper,
                splitScreenOptional);
                homeTransitionObserver, splitScreenOptional);
    }

    @WMSingleton
+7 −0
Original line number Diff line number Diff line
@@ -76,6 +76,7 @@ import com.android.wm.shell.shared.TransitionUtil;
import com.android.wm.shell.splitscreen.SplitScreenController;
import com.android.wm.shell.sysui.ShellInit;
import com.android.wm.shell.transition.CounterRotatorHelper;
import com.android.wm.shell.transition.HomeTransitionObserver;
import com.android.wm.shell.transition.Transitions;

import java.io.PrintWriter;
@@ -108,6 +109,7 @@ public class PipTransition extends PipTransitionController {
    private final PipDisplayLayoutState mPipDisplayLayoutState;
    private final int mEnterExitAnimationDuration;
    private final PipSurfaceTransactionHelper mSurfaceTransactionHelper;
    private final HomeTransitionObserver mHomeTransitionObserver;
    private final Optional<SplitScreenController> mSplitScreenOptional;
    private final PipAnimationController mPipAnimationController;
    private @PipAnimationController.AnimationType int mEnterAnimationType = ANIM_TYPE_BOUNDS;
@@ -165,6 +167,7 @@ public class PipTransition extends PipTransitionController {
            PipBoundsAlgorithm pipBoundsAlgorithm,
            PipAnimationController pipAnimationController,
            PipSurfaceTransactionHelper pipSurfaceTransactionHelper,
            HomeTransitionObserver homeTransitionObserver,
            Optional<SplitScreenController> splitScreenOptional) {
        super(shellInit, shellTaskOrganizer, transitions, pipBoundsState, pipMenuController,
                pipBoundsAlgorithm);
@@ -175,6 +178,7 @@ public class PipTransition extends PipTransitionController {
        mEnterExitAnimationDuration = context.getResources()
                .getInteger(R.integer.config_pipResizeAnimationDuration);
        mSurfaceTransactionHelper = pipSurfaceTransactionHelper;
        mHomeTransitionObserver = homeTransitionObserver;
        mSplitScreenOptional = splitScreenOptional;
    }

@@ -197,6 +201,9 @@ public class PipTransition extends PipTransitionController {
            animator.cancel();
        }
        mExitTransition = mTransitions.startTransition(type, out, this);
        if (mPipOrganizer.getOutPipWindowingMode() == WINDOWING_MODE_UNDEFINED) {
            mHomeTransitionObserver.notifyHomeVisibilityChanged(false /* isVisible */);
        }
    }

    @Override