Loading libs/WindowManager/Shell/res/values/config.xml +0 −3 Original line number Diff line number Diff line Loading @@ -33,9 +33,6 @@ <!-- Allow PIP to resize via dragging the corner of PiP. --> <bool name="config_pipEnableDragCornerResize">false</bool> <!-- Allow PIP to enable round corner, see also R.dimen.pip_corner_radius --> <bool name="config_pipEnableRoundCorner">false</bool> <!-- Animation duration when using long press on recents to dock --> <integer name="long_press_dock_anim_duration">250</integer> Loading libs/WindowManager/Shell/src/com/android/wm/shell/pip/IPipAnimationListener.aidl +8 −0 Original line number Diff line number Diff line Loading @@ -24,4 +24,12 @@ oneway interface IPipAnimationListener { * Notifies the listener that the Pip animation is started. */ void onPipAnimationStarted(); /** * Notifies the listener about PiP round corner radius changes. * Listener can expect an immediate callback the first time they attach. * * @param cornerRadius the pixel value of the corner radius, zero means it's disabled. */ void onPipCornerRadiusChanged(int cornerRadius); } libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipSurfaceTransactionHelper.java +6 −17 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package com.android.wm.shell.pip; import android.content.Context; import android.content.res.Resources; import android.graphics.Matrix; import android.graphics.Rect; import android.graphics.RectF; Loading @@ -30,10 +29,6 @@ import com.android.wm.shell.R; * Abstracts the common operations on {@link SurfaceControl.Transaction} for PiP transition. */ public class PipSurfaceTransactionHelper { private final boolean mEnableCornerRadius; private int mCornerRadius; /** for {@link #scale(SurfaceControl.Transaction, SurfaceControl, Rect, Rect)} operation */ private final Matrix mTmpTransform = new Matrix(); private final float[] mTmpFloat9 = new float[9]; Loading @@ -41,11 +36,7 @@ public class PipSurfaceTransactionHelper { private final RectF mTmpDestinationRectF = new RectF(); private final Rect mTmpDestinationRect = new Rect(); public PipSurfaceTransactionHelper(Context context) { final Resources res = context.getResources(); mEnableCornerRadius = res.getBoolean(R.bool.config_pipEnableRoundCorner) || SystemProperties.getBoolean("debug.sf.enable_hole_punch_pip", false); } private int mCornerRadius; /** * Called when display size or font size of settings changed Loading @@ -53,10 +44,10 @@ public class PipSurfaceTransactionHelper { * @param context the current context */ public void onDensityOrFontScaleChanged(Context context) { if (mEnableCornerRadius) { final Resources res = context.getResources(); mCornerRadius = res.getDimensionPixelSize(R.dimen.pip_corner_radius); } final boolean enableCornerRadius = SystemProperties.getBoolean("debug.sf.enable_hole_punch_pip", false); mCornerRadius = enableCornerRadius ? context.getResources().getDimensionPixelSize(R.dimen.pip_corner_radius) : 0; } /** Loading Loading @@ -194,9 +185,7 @@ public class PipSurfaceTransactionHelper { */ public PipSurfaceTransactionHelper round(SurfaceControl.Transaction tx, SurfaceControl leash, boolean applyCornerRadius) { if (mEnableCornerRadius) { tx.setCornerRadius(leash, applyCornerRadius ? mCornerRadius : 0); } return this; } Loading libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java +18 −4 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import android.content.res.Configuration; import android.graphics.Rect; import android.os.IBinder; import android.os.RemoteException; import android.os.SystemProperties; import android.os.UserHandle; import android.os.UserManager; import android.util.Log; Loading @@ -50,6 +51,7 @@ import androidx.annotation.BinderThread; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.android.wm.shell.R; import com.android.wm.shell.WindowManagerShellWrapper; import com.android.wm.shell.common.DisplayChangeController; import com.android.wm.shell.common.DisplayController; Loading Loading @@ -428,6 +430,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb private void onDensityOrFontScaleChanged() { mPipTaskOrganizer.onDensityOrFontScaleChanged(mContext); onPipCornerRadiusChanged(); } private void onOverlayChanged() { Loading Loading @@ -488,10 +491,6 @@ public class PipController implements PipTransitionController.PipTransitionCallb mTouchHandler.getMotionHelper().expandLeavePip(false /* skipAnimation */); } private PipTouchHandler getPipTouchHandler() { return mTouchHandler; } /** * Hides the PIP menu. */ Loading Loading @@ -531,6 +530,21 @@ public class PipController implements PipTransitionController.PipTransitionCallb private void setPinnedStackAnimationListener(IPipAnimationListener callback) { mPinnedStackAnimationRecentsCallback = callback; onPipCornerRadiusChanged(); } private void onPipCornerRadiusChanged() { if (mPinnedStackAnimationRecentsCallback != null) { final boolean enableCornerRadius = SystemProperties.getBoolean("debug.sf.enable_hole_punch_pip", false); final int cornerRadius = enableCornerRadius ? mContext.getResources().getDimensionPixelSize(R.dimen.pip_corner_radius) : 0; try { mPinnedStackAnimationRecentsCallback.onPipCornerRadiusChanged(cornerRadius); } catch (RemoteException e) { Log.e(TAG, "Failed to call onPipCornerRadiusChanged", e); } } } private Rect startSwipePipToHome(ComponentName componentName, ActivityInfo activityInfo, Loading libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipMenuView.java +2 −3 Original line number Diff line number Diff line Loading @@ -152,9 +152,8 @@ public class PipMenuView extends FrameLayout { mAccessibilityManager = context.getSystemService(AccessibilityManager.class); inflate(context, R.layout.pip_menu, this); final boolean enableCornerRadius = mContext.getResources() .getBoolean(R.bool.config_pipEnableRoundCorner) || SystemProperties.getBoolean("debug.sf.enable_hole_punch_pip", false); final boolean enableCornerRadius = SystemProperties.getBoolean("debug.sf.enable_hole_punch_pip", false); mBackgroundDrawable = enableCornerRadius ? mContext.getDrawable(R.drawable.pip_menu_background) : new ColorDrawable(Color.BLACK); Loading Loading
libs/WindowManager/Shell/res/values/config.xml +0 −3 Original line number Diff line number Diff line Loading @@ -33,9 +33,6 @@ <!-- Allow PIP to resize via dragging the corner of PiP. --> <bool name="config_pipEnableDragCornerResize">false</bool> <!-- Allow PIP to enable round corner, see also R.dimen.pip_corner_radius --> <bool name="config_pipEnableRoundCorner">false</bool> <!-- Animation duration when using long press on recents to dock --> <integer name="long_press_dock_anim_duration">250</integer> Loading
libs/WindowManager/Shell/src/com/android/wm/shell/pip/IPipAnimationListener.aidl +8 −0 Original line number Diff line number Diff line Loading @@ -24,4 +24,12 @@ oneway interface IPipAnimationListener { * Notifies the listener that the Pip animation is started. */ void onPipAnimationStarted(); /** * Notifies the listener about PiP round corner radius changes. * Listener can expect an immediate callback the first time they attach. * * @param cornerRadius the pixel value of the corner radius, zero means it's disabled. */ void onPipCornerRadiusChanged(int cornerRadius); }
libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipSurfaceTransactionHelper.java +6 −17 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package com.android.wm.shell.pip; import android.content.Context; import android.content.res.Resources; import android.graphics.Matrix; import android.graphics.Rect; import android.graphics.RectF; Loading @@ -30,10 +29,6 @@ import com.android.wm.shell.R; * Abstracts the common operations on {@link SurfaceControl.Transaction} for PiP transition. */ public class PipSurfaceTransactionHelper { private final boolean mEnableCornerRadius; private int mCornerRadius; /** for {@link #scale(SurfaceControl.Transaction, SurfaceControl, Rect, Rect)} operation */ private final Matrix mTmpTransform = new Matrix(); private final float[] mTmpFloat9 = new float[9]; Loading @@ -41,11 +36,7 @@ public class PipSurfaceTransactionHelper { private final RectF mTmpDestinationRectF = new RectF(); private final Rect mTmpDestinationRect = new Rect(); public PipSurfaceTransactionHelper(Context context) { final Resources res = context.getResources(); mEnableCornerRadius = res.getBoolean(R.bool.config_pipEnableRoundCorner) || SystemProperties.getBoolean("debug.sf.enable_hole_punch_pip", false); } private int mCornerRadius; /** * Called when display size or font size of settings changed Loading @@ -53,10 +44,10 @@ public class PipSurfaceTransactionHelper { * @param context the current context */ public void onDensityOrFontScaleChanged(Context context) { if (mEnableCornerRadius) { final Resources res = context.getResources(); mCornerRadius = res.getDimensionPixelSize(R.dimen.pip_corner_radius); } final boolean enableCornerRadius = SystemProperties.getBoolean("debug.sf.enable_hole_punch_pip", false); mCornerRadius = enableCornerRadius ? context.getResources().getDimensionPixelSize(R.dimen.pip_corner_radius) : 0; } /** Loading Loading @@ -194,9 +185,7 @@ public class PipSurfaceTransactionHelper { */ public PipSurfaceTransactionHelper round(SurfaceControl.Transaction tx, SurfaceControl leash, boolean applyCornerRadius) { if (mEnableCornerRadius) { tx.setCornerRadius(leash, applyCornerRadius ? mCornerRadius : 0); } return this; } Loading
libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java +18 −4 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import android.content.res.Configuration; import android.graphics.Rect; import android.os.IBinder; import android.os.RemoteException; import android.os.SystemProperties; import android.os.UserHandle; import android.os.UserManager; import android.util.Log; Loading @@ -50,6 +51,7 @@ import androidx.annotation.BinderThread; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.android.wm.shell.R; import com.android.wm.shell.WindowManagerShellWrapper; import com.android.wm.shell.common.DisplayChangeController; import com.android.wm.shell.common.DisplayController; Loading Loading @@ -428,6 +430,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb private void onDensityOrFontScaleChanged() { mPipTaskOrganizer.onDensityOrFontScaleChanged(mContext); onPipCornerRadiusChanged(); } private void onOverlayChanged() { Loading Loading @@ -488,10 +491,6 @@ public class PipController implements PipTransitionController.PipTransitionCallb mTouchHandler.getMotionHelper().expandLeavePip(false /* skipAnimation */); } private PipTouchHandler getPipTouchHandler() { return mTouchHandler; } /** * Hides the PIP menu. */ Loading Loading @@ -531,6 +530,21 @@ public class PipController implements PipTransitionController.PipTransitionCallb private void setPinnedStackAnimationListener(IPipAnimationListener callback) { mPinnedStackAnimationRecentsCallback = callback; onPipCornerRadiusChanged(); } private void onPipCornerRadiusChanged() { if (mPinnedStackAnimationRecentsCallback != null) { final boolean enableCornerRadius = SystemProperties.getBoolean("debug.sf.enable_hole_punch_pip", false); final int cornerRadius = enableCornerRadius ? mContext.getResources().getDimensionPixelSize(R.dimen.pip_corner_radius) : 0; try { mPinnedStackAnimationRecentsCallback.onPipCornerRadiusChanged(cornerRadius); } catch (RemoteException e) { Log.e(TAG, "Failed to call onPipCornerRadiusChanged", e); } } } private Rect startSwipePipToHome(ComponentName componentName, ActivityInfo activityInfo, Loading
libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipMenuView.java +2 −3 Original line number Diff line number Diff line Loading @@ -152,9 +152,8 @@ public class PipMenuView extends FrameLayout { mAccessibilityManager = context.getSystemService(AccessibilityManager.class); inflate(context, R.layout.pip_menu, this); final boolean enableCornerRadius = mContext.getResources() .getBoolean(R.bool.config_pipEnableRoundCorner) || SystemProperties.getBoolean("debug.sf.enable_hole_punch_pip", false); final boolean enableCornerRadius = SystemProperties.getBoolean("debug.sf.enable_hole_punch_pip", false); mBackgroundDrawable = enableCornerRadius ? mContext.getDrawable(R.drawable.pip_menu_background) : new ColorDrawable(Color.BLACK); Loading