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

Commit 9b82673c authored by Omar Miatello's avatar Omar Miatello Committed by Automerger Merge Worker
Browse files

Merge "Improve readability of ExpandableOutlineView.getClipPath()" into...

Merge "Improve readability of ExpandableOutlineView.getClipPath()" into tm-qpr-dev am: 376c3406 am: 457e01da

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20519789



Change-Id: I9d7aaa12d793bc7a25b086addd98bc40ad9e5220
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 7c58fa6e 457e01da
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -84,7 +84,7 @@ public abstract class ExpandableOutlineView extends ExpandableView {
        int right;
        int bottom;
        int height;
        float topRoundness = mAlwaysRoundBothCorners ? getMaxRadius() : getTopCornerRadius();
        float topRadius = mAlwaysRoundBothCorners ? getMaxRadius() : getTopCornerRadius();
        if (!mCustomOutline) {
            // The outline just needs to be shifted if we're translating the contents. Otherwise
            // it's already in the right place.
@@ -97,7 +97,7 @@ public abstract class ExpandableOutlineView extends ExpandableView {
            // If the top is rounded we want the bottom to be at most at the top roundness, in order
            // to avoid the shadow changing when scrolling up.
            bottom = Math.max(mMinimumHeightForClipping,
                    Math.max(getActualHeight() - mClipBottomAmount, (int) (top + topRoundness)));
                    Math.max(getActualHeight() - mClipBottomAmount, (int) (top + topRadius)));
        } else {
            left = mOutlineRect.left;
            top = mOutlineRect.top;
@@ -108,17 +108,17 @@ public abstract class ExpandableOutlineView extends ExpandableView {
        if (height == 0) {
            return EMPTY_PATH;
        }
        float bottomRoundness = mAlwaysRoundBothCorners ? getMaxRadius() : getBottomCornerRadius();
        if (topRoundness + bottomRoundness > height) {
            float overShoot = topRoundness + bottomRoundness - height;
        float bottomRadius = mAlwaysRoundBothCorners ? getMaxRadius() : getBottomCornerRadius();
        if (topRadius + bottomRadius > height) {
            float overShoot = topRadius + bottomRadius - height;
            float currentTopRoundness = getTopRoundness();
            float currentBottomRoundness = getBottomRoundness();
            topRoundness -= overShoot * currentTopRoundness
            topRadius -= overShoot * currentTopRoundness
                    / (currentTopRoundness + currentBottomRoundness);
            bottomRoundness -= overShoot * currentBottomRoundness
            bottomRadius -= overShoot * currentBottomRoundness
                    / (currentTopRoundness + currentBottomRoundness);
        }
        getRoundedRectPath(left, top, right, bottom, topRoundness, bottomRoundness, mTmpPath);
        getRoundedRectPath(left, top, right, bottom, topRadius, bottomRadius, mTmpPath);
        return mTmpPath;
    }