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

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

DotRenderer: Add shadow to notification dots

parent 50a911f5
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.PathMeasure;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.Typeface;
import android.util.Log;
import android.view.ViewDebug;
@@ -48,6 +49,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;
@@ -157,11 +160,15 @@ public class DotRenderer {
        canvas.scale(params.scale, params.scale);

        mCirclePaint.setColor(params.dotColor);
        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);
        }

@@ -214,6 +221,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;
    }

    /**