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

Commit 2dc91f1c authored by Perry Wu's avatar Perry Wu
Browse files

[PIP2] Fix rounded corners for lock/unlock case

Fixes the lack of rounded corner and shadow radii when locking and
unlocking the device

Bug: 385152045
Flag: com.android.wm.shell.enable_pip2
Test: http://recall/-/cidfAmGe9UaIuFMHR3GEC8/bhYJXbiTEpxibFV5XG4Mmy
Change-Id: Ia247b9a81aee58b8689504724895c1d5ba0ce1e9
parent d811d8cb
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -70,6 +70,7 @@ import com.android.wm.shell.desktopmode.DesktopRepository;
import com.android.wm.shell.desktopmode.DesktopUserRepositories;
import com.android.wm.shell.desktopmode.desktopwallpaperactivity.DesktopWallpaperActivityTokenProvider;
import com.android.wm.shell.pip.PipTransitionController;
import com.android.wm.shell.pip2.PipSurfaceTransactionHelper;
import com.android.wm.shell.pip2.animation.PipAlphaAnimator;
import com.android.wm.shell.pip2.animation.PipEnterAnimator;
import com.android.wm.shell.pip2.animation.PipExpandAnimator;
@@ -115,6 +116,7 @@ public class PipTransition extends PipTransitionController implements
    private final PipTransitionState mPipTransitionState;
    private final PipDisplayLayoutState mPipDisplayLayoutState;
    private final DisplayController mDisplayController;
    private final PipSurfaceTransactionHelper mPipSurfaceTransactionHelper;
    private final Optional<DesktopUserRepositories> mDesktopUserRepositoriesOptional;
    private final Optional<DesktopWallpaperActivityTokenProvider>
            mDesktopWallpaperActivityTokenProviderOptional;
@@ -169,6 +171,7 @@ public class PipTransition extends PipTransitionController implements
        mPipTransitionState.addPipTransitionStateChangedListener(this);
        mPipDisplayLayoutState = pipDisplayLayoutState;
        mDisplayController = displayController;
        mPipSurfaceTransactionHelper = new PipSurfaceTransactionHelper(mContext);
        mDesktopUserRepositoriesOptional = desktopUserRepositoriesOptional;
        mDesktopWallpaperActivityTokenProviderOptional =
                desktopWallpaperActivityTokenProviderOptional;
@@ -341,6 +344,25 @@ public class PipTransition extends PipTransitionController implements
        }
    }

    @Override
    public boolean syncPipSurfaceState(@NonNull TransitionInfo info,
            @NonNull SurfaceControl.Transaction startTransaction,
            @NonNull SurfaceControl.Transaction finishTransaction) {
        final TransitionInfo.Change pipChange = getPipChange(info);
        if (pipChange == null) return false;

        // add shadow and corner radii
        final SurfaceControl leash = pipChange.getLeash();
        final boolean isInPip = mPipTransitionState.isInPip();

        mPipSurfaceTransactionHelper.round(startTransaction, leash, isInPip)
                .shadow(startTransaction, leash, isInPip);
        mPipSurfaceTransactionHelper.round(finishTransaction, leash, isInPip)
                .shadow(finishTransaction, leash, isInPip);

        return true;
    }

    //
    // Animation schedulers and entry points
    //