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