That fuck shit the fascists are using
1package org.tm.archive.conversation;
2
3import android.view.LayoutInflater;
4import android.view.View;
5import android.view.ViewGroup;
6import android.widget.ImageView;
7
8import androidx.annotation.NonNull;
9import androidx.recyclerview.widget.RecyclerView;
10
11import com.bumptech.glide.RequestManager;
12import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions;
13
14import org.tm.archive.R;
15import org.tm.archive.database.model.StickerRecord;
16import org.tm.archive.mms.DecryptableStreamUriLoader.DecryptableUri;
17
18import java.util.ArrayList;
19import java.util.List;
20
21public class ConversationStickerSuggestionAdapter extends RecyclerView.Adapter<ConversationStickerSuggestionAdapter.StickerSuggestionViewHolder> {
22
23 private final RequestManager requestManager;
24 private final EventListener eventListener;
25 private final List<StickerRecord> stickers;
26
27 public ConversationStickerSuggestionAdapter(@NonNull RequestManager requestManager, @NonNull EventListener eventListener) {
28 this.requestManager = requestManager;
29 this.eventListener = eventListener;
30 this.stickers = new ArrayList<>();
31 }
32
33 @Override
34 public @NonNull StickerSuggestionViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
35 return new StickerSuggestionViewHolder(LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.sticker_suggestion_list_item, viewGroup, false));
36 }
37
38 @Override
39 public void onBindViewHolder(@NonNull StickerSuggestionViewHolder viewHolder, int i) {
40 viewHolder.bind(requestManager, eventListener, stickers.get(i));
41 }
42
43 @Override
44 public void onViewRecycled(@NonNull StickerSuggestionViewHolder holder) {
45 holder.recycle();
46 }
47
48 @Override
49 public int getItemCount() {
50 return stickers.size();
51 }
52
53 public void setStickers(@NonNull List<StickerRecord> stickers) {
54 this.stickers.clear();
55 this.stickers.addAll(stickers);
56 notifyDataSetChanged();
57 }
58
59 static class StickerSuggestionViewHolder extends RecyclerView.ViewHolder {
60
61 private final ImageView image;
62
63 StickerSuggestionViewHolder(@NonNull View itemView) {
64 super(itemView);
65 this.image = itemView.findViewById(R.id.sticker_suggestion_item_image);
66 }
67
68 void bind(@NonNull RequestManager requestManager, @NonNull EventListener eventListener, @NonNull StickerRecord sticker) {
69 requestManager.load(new DecryptableUri(sticker.getUri()))
70 .transition(DrawableTransitionOptions.withCrossFade())
71 .fitCenter()
72 .into(image);
73
74 itemView.setOnClickListener(v -> {
75 eventListener.onStickerSuggestionClicked(sticker);
76 });
77 }
78
79 void recycle() {
80 itemView.setOnClickListener(null);
81 }
82 }
83
84 public interface EventListener {
85 void onStickerSuggestionClicked(@NonNull StickerRecord sticker);
86 }
87}