diff options
| author | 2021-03-03 23:56:17 +0000 | |
|---|---|---|
| committer | 2021-03-03 23:56:17 +0000 | |
| commit | 31a836e67a67735cdea4241acb5d176a9f59c1a5 (patch) | |
| tree | e72a60b775f598d07b64f2ce052084b3d43cd9e3 | |
| parent | 35e7a1408e80c472e0662114e86e7798d0df9a14 (diff) | |
| parent | 2ed6d3891b0443d3283f67e686f62e742a4d2721 (diff) | |
Merge "Restrict the overridden min size for PiP" into rvc-dev am: 2ed6d3891b
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13746374
MUST ONLY BE SUBMITTED BY AUTOMERGER
Change-Id: Ib6f163efc4614654de88657d693b1542c86cfc1e
| -rw-r--r-- | core/res/res/values/dimens.xml | 7 | ||||
| -rw-r--r-- | core/res/res/values/symbols.xml | 1 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/pip/PipTaskOrganizer.java | 13 |
3 files changed, 20 insertions, 1 deletions
diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml index ebaf85c64a14..d165930d3c94 100644 --- a/core/res/res/values/dimens.xml +++ b/core/res/res/values/dimens.xml @@ -632,6 +632,13 @@ <!-- The default minimal size of a PiP task, in both dimensions. --> <dimen name="default_minimal_size_pip_resizable_task">108dp</dimen> + <!-- + The overridable minimal size of a PiP task, in both dimensions. + Different from default_minimal_size_pip_resizable_task, this is to limit the dimension + when the pinned stack size is overridden by app via minWidth/minHeight. + --> + <dimen name="overridable_minimal_size_pip_resizable_task">48dp</dimen> + <!-- Height of a task when in minimized mode from the top when launcher is resizable. --> <dimen name="task_height_of_minimized_mode">80dp</dimen> diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index 871924255e66..45a4cee8c5ef 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -1927,6 +1927,7 @@ <java-symbol type="fraction" name="config_dimBehindFadeDuration" /> <java-symbol type="dimen" name="default_minimal_size_resizable_task" /> <java-symbol type="dimen" name="default_minimal_size_pip_resizable_task" /> + <java-symbol type="dimen" name="overridable_minimal_size_pip_resizable_task" /> <java-symbol type="dimen" name="task_height_of_minimized_mode" /> <java-symbol type="fraction" name="config_screenAutoBrightnessDozeScaleFactor" /> <java-symbol type="bool" name="config_allowPriorityVibrationsInLowPowerMode" /> diff --git a/packages/SystemUI/src/com/android/systemui/pip/PipTaskOrganizer.java b/packages/SystemUI/src/com/android/systemui/pip/PipTaskOrganizer.java index 0141dee04086..ae3269fbc19b 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 <layout> // 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; } |