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

Commit 8ba4ff40 authored by Jorge Gil's avatar Jorge Gil Committed by Automerger Merge Worker
Browse files

Merge "Check that activity is not in PIP mode already" into rvc-dev am: 3c987ead

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

Change-Id: I039f6da0a92510403da43df2045513de32bc04c3
parents 0247278f 3c987ead
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -4873,6 +4873,10 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
                    return;
                }

                if (isInPictureInPictureMode(activity)) {
                    throw new IllegalStateException("Activity is already in PIP mode");
                }

                final boolean canEnterPictureInPicture = activity.checkEnterPictureInPictureState(
                        "requestPictureInPictureMode", /* beforeStopping */ false);
                if (!canEnterPictureInPicture) {
+14 −2
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@
package com.android.server.wm;

import static com.android.dx.mockito.inline.extended.ExtendedMockito.any;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.doNothing;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession;
@@ -111,7 +110,7 @@ public class ActivityTaskManagerServiceTests extends ActivityTestsBase {
        final ActivityStack stack = new StackBuilder(mRootWindowContainer).build();
        final ActivityRecord activity = stack.getBottomMostTask().getTopNonFinishingActivity();
        ClientLifecycleManager lifecycleManager = mService.getLifecycleManager();
        doNothing().when(lifecycleManager).scheduleTransaction(any());
        doReturn(false).when(activity).inPinnedWindowingMode();
        doReturn(false).when(activity).checkEnterPictureInPictureState(anyString(), anyBoolean());

        mService.requestPictureInPictureMode(activity.token);
@@ -120,6 +119,19 @@ public class ActivityTaskManagerServiceTests extends ActivityTestsBase {
        verify(lifecycleManager, times(0)).scheduleTransaction(any());
    }

    @Test(expected = IllegalStateException.class)
    public void testOnPictureInPictureRequested_alreadyInPIPMode() throws RemoteException {
        final ActivityStack stack = new StackBuilder(mRootWindowContainer).build();
        final ActivityRecord activity = stack.getBottomMostTask().getTopNonFinishingActivity();
        ClientLifecycleManager lifecycleManager = mService.getLifecycleManager();
        doReturn(true).when(activity).inPinnedWindowingMode();

        mService.requestPictureInPictureMode(activity.token);

        // Check that no transactions with enter pip requests are made.
        verify(lifecycleManager, times(0)).scheduleTransaction(any());
    }

    @Test
    public void testDisplayWindowListener() {
        final ArrayList<Integer> added = new ArrayList<>();