Fallback to default aspect ratio if not provided

This is to fix the regression introduced by ag/26340832. When apps like
YT provide empty aspect ratio via PictureInPictureParams, the zero value
would be used to calculate the min / max allowed size and causes the PiP
window to be resized unexpectedly.

Video: http://recall/-/aaaaaabFQoRHlzixHdtY/frCUwuTnpvVPMqFs3C5Gnk
Bug: 328051931
Test: manual, follow the reproduce steps, see video
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:63c0f02a731151d7b5ec6ea3a1a1466f0774cc32)
Merged-In: Icab07e634cbd3c19668640203b586f10219c0410
Change-Id: Icab07e634cbd3c19668640203b586f10219c0410
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java
index 2cdec81..84afed1 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java
@@ -979,7 +979,13 @@
         // cache current min/max size
         Point minSize = mPipBoundsState.getMinSize();
         Point maxSize = mPipBoundsState.getMaxSize();
-        mPipBoundsState.updateMinMaxSize(pictureInPictureParams.getAspectRatioFloat());
+        final float aspectRatioFloat;
+        if (pictureInPictureParams.hasSetAspectRatio()) {
+            aspectRatioFloat = pictureInPictureParams.getAspectRatioFloat();
+        } else {
+            aspectRatioFloat = mPipBoundsAlgorithm.getDefaultAspectRatio();
+        }
+        mPipBoundsState.updateMinMaxSize(aspectRatioFloat);
         final Rect entryBounds = mPipTaskOrganizer.startSwipePipToHome(componentName, activityInfo,
                 pictureInPictureParams);
         // restore min/max size, as this is referenced later in OnDisplayChangingListener and needs