That fuck shit the fascists are using
1package org.tm.archive.components;
2
3import android.graphics.Canvas;
4import android.graphics.Paint;
5import android.graphics.Path;
6import android.graphics.RectF;
7
8import androidx.annotation.ColorInt;
9
10import org.tm.archive.util.ViewUtil;
11
12public class Outliner {
13
14 private final float[] radii = new float[8];
15 private final Path corners = new Path();
16 private final RectF bounds = new RectF();
17 private final Paint outlinePaint = new Paint();
18 {
19 outlinePaint.setStyle(Paint.Style.STROKE);
20 outlinePaint.setStrokeWidth(ViewUtil.dpToPx(1));
21 outlinePaint.setAntiAlias(true);
22 }
23
24 public void setColor(@ColorInt int color) {
25 outlinePaint.setColor(color);
26 }
27
28 public void setStrokeWidth(float pixels) {
29 outlinePaint.setStrokeWidth(pixels);
30 }
31
32 public void setAlpha(int alpha) {
33 outlinePaint.setAlpha(alpha);
34 }
35
36 public void draw(Canvas canvas) {
37 draw(canvas, 0, canvas.getWidth(), canvas.getHeight(), 0);
38 }
39
40 public void draw(Canvas canvas, int top, int right, int bottom, int left) {
41 final float halfStrokeWidth = outlinePaint.getStrokeWidth() / 2;
42
43 bounds.left = left + halfStrokeWidth;
44 bounds.top = top + halfStrokeWidth;
45 bounds.right = right - halfStrokeWidth;
46 bounds.bottom = bottom - halfStrokeWidth;
47
48 corners.reset();
49 corners.addRoundRect(bounds, radii, Path.Direction.CW);
50
51 canvas.drawPath(corners, outlinePaint);
52 }
53
54 public void setRadius(int radius) {
55 setRadii(radius, radius, radius, radius);
56 }
57
58 public void setRadii(int topLeft, int topRight, int bottomRight, int bottomLeft) {
59 radii[0] = radii[1] = topLeft;
60 radii[2] = radii[3] = topRight;
61 radii[4] = radii[5] = bottomRight;
62 radii[6] = radii[7] = bottomLeft;
63 }
64}