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

Commit 2d26e18d authored by Jacqueline Bronger's avatar Jacqueline Bronger Committed by Android (Google) Code Review
Browse files

Merge "Fix TV PiP back and forth animation after switch"

parents 3775d25e 86571395
Loading
Loading
Loading
Loading
+4 −2
Original line number Original line Diff line number Diff line
@@ -125,7 +125,9 @@ public class TvPipBoundsController {
            cancelScheduledPlacement();
            cancelScheduledPlacement();
            applyPlacement(placement, shouldStash, animationDuration);
            applyPlacement(placement, shouldStash, animationDuration);
        } else {
        } else {
            if (mCurrentPlacementBounds != null) {
                applyPlacementBounds(mCurrentPlacementBounds, animationDuration);
                applyPlacementBounds(mCurrentPlacementBounds, animationDuration);
            }
            schedulePinnedStackPlacement(placement, animationDuration);
            schedulePinnedStackPlacement(placement, animationDuration);
        }
        }
    }
    }
@@ -188,7 +190,7 @@ public class TvPipBoundsController {
        applyPlacementBounds(bounds, animationDuration);
        applyPlacementBounds(bounds, animationDuration);
    }
    }


    void onPipDismissed() {
    void reset() {
        mCurrentPlacementBounds = null;
        mCurrentPlacementBounds = null;
        mPipTargetBounds = null;
        mPipTargetBounds = null;
        cancelScheduledPlacement();
        cancelScheduledPlacement();
+11 −14
Original line number Original line Diff line number Diff line
@@ -450,18 +450,6 @@ public class TvPipController implements PipTransitionController.PipTransitionCal
        mPipMediaController.registerSessionListenerForCurrentUser();
        mPipMediaController.registerSessionListenerForCurrentUser();
    }
    }


    private void checkIfPinnedTaskAppeared() {
        final TaskInfo pinnedTask = getPinnedTaskInfo();
        ProtoLog.d(ShellProtoLogGroup.WM_SHELL_PICTURE_IN_PICTURE,
                "%s: checkIfPinnedTaskAppeared(), task=%s", TAG, pinnedTask);
        if (pinnedTask == null || pinnedTask.topActivity == null) return;
        mPinnedTaskId = pinnedTask.taskId;

        mPipMediaController.onActivityPinned();
        mActionBroadcastReceiver.register();
        mPipNotificationController.show(pinnedTask.topActivity.getPackageName());
    }

    private void checkIfPinnedTaskIsGone() {
    private void checkIfPinnedTaskIsGone() {
        ProtoLog.d(ShellProtoLogGroup.WM_SHELL_PICTURE_IN_PICTURE,
        ProtoLog.d(ShellProtoLogGroup.WM_SHELL_PICTURE_IN_PICTURE,
                "%s: onTaskStackChanged()", TAG);
                "%s: onTaskStackChanged()", TAG);
@@ -482,7 +470,7 @@ public class TvPipController implements PipTransitionController.PipTransitionCal


        mTvPipMenuController.closeMenu();
        mTvPipMenuController.closeMenu();
        mTvPipBoundsState.resetTvPipState();
        mTvPipBoundsState.resetTvPipState();
        mTvPipBoundsController.onPipDismissed();
        mTvPipBoundsController.reset();
        setState(STATE_NO_PIP);
        setState(STATE_NO_PIP);
        mPinnedTaskId = NONEXISTENT_TASK_ID;
        mPinnedTaskId = NONEXISTENT_TASK_ID;
    }
    }
@@ -537,7 +525,16 @@ public class TvPipController implements PipTransitionController.PipTransitionCal
        taskStackListener.addListener(new TaskStackListenerCallback() {
        taskStackListener.addListener(new TaskStackListenerCallback() {
            @Override
            @Override
            public void onActivityPinned(String packageName, int userId, int taskId, int stackId) {
            public void onActivityPinned(String packageName, int userId, int taskId, int stackId) {
                checkIfPinnedTaskAppeared();
                final TaskInfo pinnedTask = getPinnedTaskInfo();
                ProtoLog.d(ShellProtoLogGroup.WM_SHELL_PICTURE_IN_PICTURE,
                        "%s: onActivityPinned(), task=%s", TAG, pinnedTask);
                if (pinnedTask == null || pinnedTask.topActivity == null) return;
                mPinnedTaskId = pinnedTask.taskId;

                mPipMediaController.onActivityPinned();
                mActionBroadcastReceiver.register();
                mPipNotificationController.show(pinnedTask.topActivity.getPackageName());
                mTvPipBoundsController.reset();
                mAppOpsListener.onActivityPinned(packageName);
                mAppOpsListener.onActivityPinned(packageName);
            }
            }