That fuck shit the fascists are using
1package org.tm.archive.components;
2
3import android.content.Context;
4import android.util.AttributeSet;
5import android.view.LayoutInflater;
6import android.view.View;
7import android.widget.FrameLayout;
8import android.widget.ImageView;
9
10import androidx.annotation.NonNull;
11import androidx.annotation.Nullable;
12
13import org.tm.archive.R;
14
15public class RemovableEditableMediaView extends FrameLayout {
16
17 private final @NonNull ImageView remove;
18 private final @NonNull ImageView edit;
19
20 private final int removeSize;
21 private final int editSize;
22
23 private @Nullable View current;
24
25 public RemovableEditableMediaView(Context context) {
26 this(context, null);
27 }
28
29 public RemovableEditableMediaView(Context context, AttributeSet attrs) {
30 this(context, attrs, 0);
31 }
32
33 public RemovableEditableMediaView(Context context, AttributeSet attrs, int defStyleAttr) {
34 super(context, attrs, defStyleAttr);
35
36 this.remove = (ImageView)LayoutInflater.from(context).inflate(R.layout.media_view_remove_button, this, false);
37 this.edit = (ImageView)LayoutInflater.from(context).inflate(R.layout.media_view_edit_button, this, false);
38
39 this.removeSize = getResources().getDimensionPixelSize(R.dimen.media_bubble_remove_button_size);
40 this.editSize = getResources().getDimensionPixelSize(R.dimen.media_bubble_edit_button_size);
41
42 this.remove.setVisibility(View.GONE);
43 this.edit.setVisibility(View.GONE);
44 }
45
46 @Override
47 public void onFinishInflate() {
48 super.onFinishInflate();
49 this.addView(remove);
50 this.addView(edit);
51 }
52
53 public void display(@Nullable View view, boolean editable) {
54 edit.setVisibility(editable ? View.VISIBLE : View.GONE);
55
56 if (view == current) return;
57 if (current != null) current.setVisibility(View.GONE);
58
59 if (view != null) {
60 view.setPadding(view.getPaddingLeft(), removeSize / 2, removeSize / 2, view.getPaddingRight());
61 edit.setPadding(0, 0, removeSize / 2, 0);
62
63 view.setVisibility(View.VISIBLE);
64 remove.setVisibility(View.VISIBLE);
65 } else {
66 remove.setVisibility(View.GONE);
67 edit.setVisibility(View.GONE);
68 }
69
70 current = view;
71 }
72
73 public void setRemoveClickListener(View.OnClickListener listener) {
74 this.remove.setOnClickListener(listener);
75 }
76
77 public void setEditClickListener(View.OnClickListener listener) {
78 this.edit.setOnClickListener(listener);
79 }
80}