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

Commit 60e86d17 authored by Abhishek Aggarwal's avatar Abhishek Aggarwal Committed by Mohammed Althaf T
Browse files

DotRenderer: Add shadow to notification dots

parent c5cc0acc
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import android.graphics.Path;
import android.graphics.PathMeasure;
import android.graphics.PointF;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.Typeface;
import android.util.Log;
import android.view.ViewDebug;
@@ -57,6 +58,8 @@ public class DotRenderer {

    private final float mCircleRadius;
    private final Paint mCirclePaint = new Paint(ANTI_ALIAS_FLAG | FILTER_BITMAP_FLAG);
    private final Paint mCircleShadowPaint = new Paint(ANTI_ALIAS_FLAG | FILTER_BITMAP_FLAG);

    private final Paint mTextPaint = new Paint(ANTI_ALIAS_FLAG | FILTER_BITMAP_FLAG);

    private final Bitmap mBackgroundWithShadow;
@@ -147,11 +150,15 @@ public class DotRenderer {
        canvas.scale(params.scale, params.scale);

        mCirclePaint.setColor(params.mDotColor);
        mCircleShadowPaint.setColor(params.shadowDotColor);
        if (numNotifications > 9 && numNotifications < 100) {
            canvas.drawRoundRect(new RectF(-mCircleRadius - 10, -mCircleRadius, mCircleRadius + 10, mCircleRadius + 3), 50, 50, mCircleShadowPaint);
            canvas.drawRoundRect(new RectF(-mCircleRadius - 10, -mCircleRadius, mCircleRadius + 10, mCircleRadius), 50, 50, mCirclePaint);
        } else if (numNotifications > 99 && numNotifications < 1000) {
            canvas.drawRoundRect(new RectF(-mCircleRadius - 20, -mCircleRadius, mCircleRadius + 20, mCircleRadius + 3), 50, 50, mCircleShadowPaint);
            canvas.drawRoundRect(new RectF(-mCircleRadius - 20, -mCircleRadius, mCircleRadius + 20, mCircleRadius), 50, 50, mCirclePaint);
        } else {
            canvas.drawCircle(0, 3, mCircleRadius, mCircleShadowPaint);
            canvas.drawCircle(0, 0, mCircleRadius, mCirclePaint);
        }

@@ -200,6 +207,8 @@ public class DotRenderer {
        /** Whether the dot should align to the top left of the icon rather than the top right. */
        @ViewDebug.ExportedProperty(category = "notification dot")
        public boolean leftAlign;
        @ViewDebug.ExportedProperty(category = "notification dot", formatToHexString = true)
        public int shadowDotColor;

        @NonNull
        public IconShapeInfo shapeInfo = IconShapeInfo.DEFAULT;