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: I453ace9178d14a715d6ade840c132e9ef74919b3
This commit is contained in:
Hongwei Wang
2021-03-03 23:51:57 +00:00
committed by Automerger Merge Worker
3 changed files with 20 additions and 1 deletions

View File

@@ -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>

View File

@@ -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" />

View File

@@ -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;
@@ -223,6 +224,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
@@ -244,6 +246,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;
mPipUiEventLoggerLogger = pipUiEventLogger;
@@ -949,7 +953,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;
}