That fuck shit the fascists are using
at master 80 lines 2.4 kB view raw
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}