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

Commit b81ccb45 authored by James O'Leary's avatar James O'Leary
Browse files

Render invocation lights as beziers, not circles

Test: Verify WAI
Bug: 135669903
Change-Id: I8dd9f96179264b5a44a9446977ada1ed4ea8e3c8
parent 4ffaa9a2
Loading
Loading
Loading
Loading
+17 −5
Original line number Diff line number Diff line
@@ -92,15 +92,14 @@ public class InvocationLightsView extends View
        mPaint.setStrokeJoin(Paint.Join.MITER);
        mPaint.setAntiAlias(true);

        int cornerRadiusBottom = DisplayUtils.getCornerRadiusBottom(context);
        int cornerRadiusTop = DisplayUtils.getCornerRadiusTop(context);

        int displayWidth = DisplayUtils.getWidth(context);
        int displayHeight = DisplayUtils.getHeight(context);
        CircularCornerPathRenderer cornerPathRenderer = new CircularCornerPathRenderer(
                cornerRadiusBottom, cornerRadiusTop, displayWidth, displayHeight);
        mGuide = new PerimeterPathGuide(context, cornerPathRenderer,
        mGuide = new PerimeterPathGuide(context, createCornerPathRenderer(context),
                mStrokeWidth / 2, displayWidth, displayHeight);

        int cornerRadiusBottom = DisplayUtils.getCornerRadiusBottom(context);
        int cornerRadiusTop = DisplayUtils.getCornerRadiusTop(context);
        mViewHeight = Math.max(cornerRadiusBottom, cornerRadiusTop);

        final int dualToneDarkTheme = Utils.getThemeAttr(mContext, R.attr.darkIconTheme);
@@ -242,6 +241,19 @@ public class InvocationLightsView extends View
        mAssistInvocationLights.get(index).setLength(length);
    }

    /**
     * Returns CornerPathRenderer to be used for rendering invocation lights.
     *
     * To render corners that aren't circular, override this method in a subclass.
     */
    protected CornerPathRenderer createCornerPathRenderer(Context context) {
        int displayWidth = DisplayUtils.getWidth(context);
        int displayHeight = DisplayUtils.getHeight(context);
        int cornerRadiusBottom = DisplayUtils.getCornerRadiusBottom(context);
        int cornerRadiusTop = DisplayUtils.getCornerRadiusTop(context);
        return new CircularCornerPathRenderer(
                cornerRadiusBottom, cornerRadiusTop, displayWidth, displayHeight);
    }
    /**
     * Receives an intensity from 0 (lightest) to 1 (darkest) and sets the handle color
     * appropriately. Intention is to match the home handle color.