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

Commit 61d29718 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:...

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

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

Change-Id: I728ed03c18ab07e9e4889ca2db51b4cdc0321b3f
parents 248b9e3b c1e74994
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -4858,6 +4858,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<>();