That fuck shit the fascists are using
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}