Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2a18b15d authored by Hongwei Wang's avatar Hongwei Wang
Browse files

Restrict the overridden min size for PiP

Per go/cdd-proposal-pip-size, the absolute minimum size when overridden
should be 48dp.

Bug: 174302616
Test: atest PinnedStackTests#testEnterPipWithTinyMinimalSize
Merged-In: I2f0dfd9a79049aaf696fde8703994deaecce63f5
Change-Id: I2f0dfd9a79049aaf696fde8703994deaecce63f5
parent 3516e98d
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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>

+1 −0
Original line number Diff line number Diff line
@@ -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" />
+12 −1
Original line number Diff line number Diff line
@@ -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;
    }