Check that activity is not in PIP mode already

This change verifies that the requested activity to PIP
is not already in PIP mode before scheduling a transaction
with an EnterPipRequestedItem.

Bug: 156365025
Test: atest WmTests:ActivityTaskManagerServiceTests
Change-Id: I37019368b00440bdd24cb3ee5f4bfaf667464f8a
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
index 5f591b5..7c935d0 100644
--- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
+++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
@@ -4873,6 +4873,10 @@
                     return;
                 }
 
+                if (isInPictureInPictureMode(activity)) {
+                    throw new IllegalStateException("Activity is already in PIP mode");
+                }
+
                 final boolean canEnterPictureInPicture = activity.checkEnterPictureInPictureState(
                         "requestPictureInPictureMode", /* beforeStopping */ false);
                 if (!canEnterPictureInPicture) {