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

Commit b2a5b198 authored by Hongwei Wang's avatar Hongwei Wang Committed by Android (Google) Code Review
Browse files

Merge "Handle PiP shadow radius in WMShell" into tm-dev

parents 353fe11e 2708c3a7
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -222,9 +222,6 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu
    })
    public @interface WindowConfig {}

    /** @hide */
    public static final int PINNED_WINDOWING_MODE_ELEVATION_IN_DIP = 5;

    @UnsupportedAppUsage
    public WindowConfiguration() {
        unset();
+26 −4
Original line number Diff line number Diff line
@@ -47,6 +47,8 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable {

    public final float mCornerRadius;

    public final float mShadowRadius;

    private final Rect mWindowCrop;

    private PictureInPictureSurfaceTransaction(Parcel in) {
@@ -56,11 +58,12 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable {
        in.readFloatArray(mFloat9);
        mRotation = in.readFloat();
        mCornerRadius = in.readFloat();
        mShadowRadius = in.readFloat();
        mWindowCrop = in.readTypedObject(Rect.CREATOR);
    }

    private PictureInPictureSurfaceTransaction(float alpha, @Nullable PointF position,
            @Nullable float[] float9, float rotation, float cornerRadius,
            @Nullable float[] float9, float rotation, float cornerRadius, float shadowRadius,
            @Nullable Rect windowCrop) {
        mAlpha = alpha;
        mPosition = position;
@@ -73,12 +76,14 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable {
            mRotation = rotation;
        }
        mCornerRadius = cornerRadius;
        mShadowRadius = shadowRadius;
        mWindowCrop = (windowCrop == null) ? null : new Rect(windowCrop);
    }

    public PictureInPictureSurfaceTransaction(PictureInPictureSurfaceTransaction other) {
        this(other.mAlpha, other.mPosition,
                other.mFloat9, other.mRotation, other.mCornerRadius, other.mWindowCrop);
                other.mFloat9, other.mRotation, other.mCornerRadius, other.mShadowRadius,
                other.mWindowCrop);
    }

    /** @return {@link Matrix} from {@link #mFloat9} */
@@ -93,6 +98,11 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable {
        return mCornerRadius > 0;
    }

    /** @return {@code true} if this transaction contains setting shadow radius. */
    public boolean hasShadowRadiusSet() {
        return mShadowRadius > 0;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
@@ -103,13 +113,14 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable {
                && Arrays.equals(mFloat9, that.mFloat9)
                && Objects.equals(mRotation, that.mRotation)
                && Objects.equals(mCornerRadius, that.mCornerRadius)
                && Objects.equals(mShadowRadius, that.mShadowRadius)
                && Objects.equals(mWindowCrop, that.mWindowCrop);
    }

    @Override
    public int hashCode() {
        return Objects.hash(mAlpha, mPosition, Arrays.hashCode(mFloat9),
                mRotation, mCornerRadius, mWindowCrop);
                mRotation, mCornerRadius, mShadowRadius, mWindowCrop);
    }

    @Override
@@ -124,6 +135,7 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable {
        out.writeFloatArray(mFloat9);
        out.writeFloat(mRotation);
        out.writeFloat(mCornerRadius);
        out.writeFloat(mShadowRadius);
        out.writeTypedObject(mWindowCrop, 0 /* flags */);
    }

@@ -136,6 +148,7 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable {
                + " matrix=" + matrix.toShortString()
                + " rotation=" + mRotation
                + " cornerRadius=" + mCornerRadius
                + " shadowRadius=" + mShadowRadius
                + " crop=" + mWindowCrop
                + ")";
    }
@@ -156,6 +169,9 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable {
        if (surfaceTransaction.hasCornerRadiusSet()) {
            tx.setCornerRadius(surfaceControl, surfaceTransaction.mCornerRadius);
        }
        if (surfaceTransaction.hasShadowRadiusSet()) {
            tx.setShadowRadius(surfaceControl, surfaceTransaction.mShadowRadius);
        }
        if (surfaceTransaction.mAlpha != NOT_SET) {
            tx.setAlpha(surfaceControl, surfaceTransaction.mAlpha);
        }
@@ -178,6 +194,7 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable {
        private float[] mFloat9;
        private float mRotation;
        private float mCornerRadius = NOT_SET;
        private float mShadowRadius = NOT_SET;
        private Rect mWindowCrop;

        public Builder setAlpha(float alpha) {
@@ -201,6 +218,11 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable {
            return this;
        }

        public Builder setShadowRadius(float shadowRadius) {
            mShadowRadius = shadowRadius;
            return this;
        }

        public Builder setWindowCrop(@NonNull Rect windowCrop) {
            mWindowCrop = new Rect(windowCrop);
            return this;
@@ -208,7 +230,7 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable {

        public PictureInPictureSurfaceTransaction build() {
            return new PictureInPictureSurfaceTransaction(mAlpha, mPosition,
                    mFloat9, mRotation, mCornerRadius, mWindowCrop);
                    mFloat9, mRotation, mCornerRadius, mShadowRadius, mWindowCrop);
        }
    }
}
+0 −5
Original line number Diff line number Diff line
@@ -16,9 +16,7 @@

package com.android.internal.policy;

import static android.app.WindowConfiguration.PINNED_WINDOWING_MODE_ELEVATION_IN_DIP;
import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
import static android.content.res.Configuration.ORIENTATION_PORTRAIT;
import static android.os.Build.VERSION_CODES.M;
import static android.os.Build.VERSION_CODES.N;
@@ -2549,9 +2547,6 @@ public class DecorView extends FrameLayout implements RootViewSurfaceTaker, Wind
            // Convert the DP elevation into physical pixels.
            elevation = dipToPx(elevation);
            mElevationAdjustedForStack = true;
        } else if (windowingMode == WINDOWING_MODE_PINNED) {
            elevation = dipToPx(PINNED_WINDOWING_MODE_ELEVATION_IN_DIP);
            mElevationAdjustedForStack = true;
        } else {
            mElevationAdjustedForStack = false;
        }
+4 −0
Original line number Diff line number Diff line
@@ -74,6 +74,10 @@
    <!-- PIP stash offset size, which is the width of visible PIP region when stashed. -->
    <dimen name="pip_stash_offset">32dp</dimen>

    <!-- PIP shadow radius, originally as
         WindowConfiguration#PINNED_WINDOWING_MODE_ELEVATION_IN_DIP -->
    <dimen name="pip_shadow_radius">5dp</dimen>

    <dimen name="dismiss_target_x_size">24dp</dimen>
    <dimen name="floating_dismiss_bottom_margin">50dp</dimen>

+3 −2
Original line number Diff line number Diff line
@@ -26,12 +26,13 @@ oneway interface IPipAnimationListener {
    void onPipAnimationStarted();

    /**
     * Notifies the listener about PiP round corner radius changes.
     * Notifies the listener about PiP resource dimensions changed.
     * 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.
     * @param shadowRadius the pixel value of the shadow radius, zero means it's disabled.
     */
    void onPipCornerRadiusChanged(int cornerRadius);
    void onPipResourceDimensionsChanged(int cornerRadius, int shadowRadius);

    /**
     * Notifies the listener that user leaves PiP by tapping on the expand button.
Loading