diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml
index ebaf85c64a1421e7cb902dff2e52ef8bd71e284a..d165930d3c94245f3aa321586fccb384c5787bc1 100644
--- a/core/res/res/values/dimens.xml
+++ b/core/res/res/values/dimens.xml
@@ -632,6 +632,13 @@
108dp
+
+ 48dp
+
80dp
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 871924255e66313af01b11691d0b62dab6682c3c..45a4cee8c5ef2f85481fe9866da24371f753e403 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -1927,6 +1927,7 @@
+
diff --git a/packages/SystemUI/src/com/android/systemui/pip/PipTaskOrganizer.java b/packages/SystemUI/src/com/android/systemui/pip/PipTaskOrganizer.java
index 0141dee040860cc4f605c1bd9bc2ee6dd7c35b76..ae3269fbc19b51de8848ac6def6ced939ab1d47c 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/PipTaskOrganizer.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/PipTaskOrganizer.java
@@ -45,6 +45,7 @@ import android.os.Handler;
import android.os.IBinder;
import android.os.Looper;
import android.os.RemoteException;
+import android.util.EventLog;
import android.util.Log;
import android.util.Size;
import android.view.SurfaceControl;
@@ -193,6 +194,7 @@ public class PipTaskOrganizer extends TaskOrganizer implements
private PipSurfaceTransactionHelper.SurfaceControlTransactionFactory
mSurfaceControlTransactionFactory;
private PictureInPictureParams mPictureInPictureParams;
+ private int mOverridableMinSize;
/**
* If set to {@code true}, the entering animation will be skipped and we will wait for
@@ -211,6 +213,8 @@ public class PipTaskOrganizer extends TaskOrganizer implements
mPipBoundsHandler = boundsHandler;
mEnterExitAnimationDuration = context.getResources()
.getInteger(R.integer.config_pipResizeAnimationDuration);
+ mOverridableMinSize = context.getResources().getDimensionPixelSize(
+ com.android.internal.R.dimen.overridable_minimal_size_pip_resizable_task);
mSurfaceTransactionHelper = surfaceTransactionHelper;
mPipAnimationController = pipAnimationController;
mSurfaceControlTransactionFactory = SurfaceControl.Transaction::new;
@@ -887,7 +891,14 @@ public class PipTaskOrganizer extends TaskOrganizer implements
// -1 will be populated if an activity specifies defaultWidth/defaultHeight in
// without minWidth/minHeight
if (windowLayout.minWidth > 0 && windowLayout.minHeight > 0) {
- return new Size(windowLayout.minWidth, windowLayout.minHeight);
+ // If either dimension is smaller than the allowed minimum, adjust them
+ // according to mOverridableMinSize and log to SafeNet
+ if (windowLayout.minWidth < mOverridableMinSize
+ || windowLayout.minHeight < mOverridableMinSize) {
+ EventLog.writeEvent(0x534e4554, "174302616", -1, "");
+ }
+ return new Size(Math.max(windowLayout.minWidth, mOverridableMinSize),
+ Math.max(windowLayout.minHeight, mOverridableMinSize));
}
return null;
}