That fuck shit the fascists are using
1package org.tm.archive.components;
2
3import android.content.Context;
4import android.content.res.TypedArray;
5import android.graphics.Canvas;
6import android.util.AttributeSet;
7
8import androidx.annotation.Nullable;
9import androidx.core.content.ContextCompat;
10
11import org.tm.archive.R;
12
13public class OutlinedThumbnailView extends ThumbnailView {
14
15 private CornerMask cornerMask;
16 private Outliner outliner;
17
18 public OutlinedThumbnailView(Context context) {
19 super(context);
20 init(null);
21 }
22
23 public OutlinedThumbnailView(Context context, AttributeSet attrs) {
24 super(context, attrs);
25 init(attrs);
26 }
27
28 private void init(@Nullable AttributeSet attrs) {
29 cornerMask = new CornerMask(this);
30 outliner = new Outliner();
31
32 int defaultOutlinerColor = ContextCompat.getColor(getContext(), R.color.signal_inverse_transparent_20);
33 outliner.setColor(defaultOutlinerColor);
34
35 int radius = 0;
36
37 if (attrs != null) {
38 TypedArray typedArray = getContext().getTheme().obtainStyledAttributes(attrs, R.styleable.OutlinedThumbnailView, 0, 0);
39 radius = typedArray.getDimensionPixelOffset(R.styleable.OutlinedThumbnailView_otv_cornerRadius, 0);
40
41 outliner.setStrokeWidth(typedArray.getDimensionPixelSize(R.styleable.OutlinedThumbnailView_otv_strokeWidth, 1));
42 outliner.setColor(typedArray.getColor(R.styleable.OutlinedThumbnailView_otv_strokeColor, defaultOutlinerColor));
43 }
44
45 setRadius(radius);
46 setCorners(radius, radius, radius, radius);
47
48 setWillNotDraw(false);
49 }
50
51 @Override
52 protected void dispatchDraw(Canvas canvas) {
53 super.dispatchDraw(canvas);
54
55 cornerMask.mask(canvas);
56 outliner.draw(canvas);
57 }
58
59 public void setCorners(int topLeft, int topRight, int bottomRight, int bottomLeft) {
60 cornerMask.setRadii(topLeft, topRight, bottomRight, bottomLeft);
61 outliner.setRadii(topLeft, topRight, bottomRight, bottomLeft);
62 postInvalidate();
63 }
64}