That fuck shit the fascists are using
at master 99 lines 2.7 kB view raw
1package org.tm.archive.conversation; 2 3import android.graphics.Color; 4import android.view.LayoutInflater; 5import android.view.View; 6import android.view.ViewGroup; 7import android.widget.ImageView; 8import android.widget.TextView; 9 10import androidx.annotation.NonNull; 11import androidx.core.content.ContextCompat; 12import androidx.recyclerview.widget.RecyclerView; 13 14import org.tm.archive.R; 15 16import java.util.ArrayList; 17import java.util.List; 18 19class AttachmentKeyboardButtonAdapter extends RecyclerView.Adapter<AttachmentKeyboardButtonAdapter.ButtonViewHolder> { 20 21 private final List<AttachmentKeyboardButton> buttons; 22 private final Listener listener; 23 24 private boolean wallpaperEnabled; 25 26 AttachmentKeyboardButtonAdapter(@NonNull Listener listener) { 27 this.buttons = new ArrayList<>(); 28 this.listener = listener; 29 30 setHasStableIds(true); 31 } 32 33 @Override 34 public long getItemId(int position) { 35 return buttons.get(position).getTitleRes(); 36 } 37 38 @Override 39 public @NonNull 40 ButtonViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { 41 return new ButtonViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.attachment_keyboard_button_item, parent, false)); 42 } 43 44 @Override 45 public void onBindViewHolder(@NonNull ButtonViewHolder holder, int position) { 46 holder.bind(buttons.get(position), wallpaperEnabled, listener); 47 } 48 49 @Override 50 public void onViewRecycled(@NonNull ButtonViewHolder holder) { 51 holder.recycle(); 52 } 53 54 @Override 55 public int getItemCount() { 56 return buttons.size(); 57 } 58 59 public void setButtons(@NonNull List<AttachmentKeyboardButton> buttons) { 60 this.buttons.clear(); 61 this.buttons.addAll(buttons); 62 notifyDataSetChanged(); 63 } 64 65 public void setWallpaperEnabled(boolean enabled) { 66 if (wallpaperEnabled != enabled) { 67 wallpaperEnabled = enabled; 68 notifyDataSetChanged(); 69 } 70 } 71 72 interface Listener { 73 void onClick(@NonNull AttachmentKeyboardButton button); 74 } 75 76 static class ButtonViewHolder extends RecyclerView.ViewHolder { 77 78 private final ImageView image; 79 private final TextView title; 80 81 public ButtonViewHolder(@NonNull View itemView) { 82 super(itemView); 83 84 this.image = itemView.findViewById(R.id.icon); 85 this.title = itemView.findViewById(R.id.label); 86 } 87 88 void bind(@NonNull AttachmentKeyboardButton button, boolean wallpaperEnabled, @NonNull Listener listener) { 89 image.setImageResource(button.getIconRes()); 90 title.setText(button.getTitleRes()); 91 92 itemView.setOnClickListener(v -> listener.onClick(button)); 93 } 94 95 void recycle() { 96 itemView.setOnClickListener(null); 97 } 98 } 99}