Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import android.graphics.Bitmap;
- import android.support.annotation.NonNull;
- import android.support.v7.widget.RecyclerView;
- import android.util.Log;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.Button;
- import android.widget.ImageView;
- import java.util.List;
- public class ImagesRecycler extends RecyclerView.Adapter<ImagesRecycler.ViewHolder> {
- private final Images imagesCollection;
- private final List<SavedImage> images;
- public ImagesRecycler(Images images) {
- this.imagesCollection = images;
- this.images = images.getSavedImages();
- }
- @NonNull
- @Override
- public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
- View view = LayoutInflater.from(viewGroup.getContext())
- .inflate(R.layout.item_image, viewGroup, false);
- ViewHolder holder = new ViewHolder(view);
- return holder;
- }
- @Override
- public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {
- SavedImage img = images.get(i);
- if (img == null) {
- return;
- }
- viewHolder.init();
- viewHolder.id = img.getId();
- viewHolder.image.setImageBitmap(img.getImage());
- }
- @Override
- public int getItemCount() {
- return this.images.size();
- }
- public SavedImage addImage(Bitmap bmp) {
- SavedImage img = this.imagesCollection.addImage(bmp);
- this.images.add(img);
- notifyItemRangeInserted(this.images.size(), 1);
- return img;
- }
- public class ViewHolder extends RecyclerView.ViewHolder {
- public Button removeButton;
- public Button toggleButton;
- public ImageView image;
- public int id;
- public ViewHolder(@NonNull View itemView) {
- super(itemView);
- }
- public void init() {
- this.removeButton = itemView.findViewById(R.id.image_remove);
- this.toggleButton = itemView.findViewById(R.id.image_toggle);
- this.image = itemView.findViewById(R.id.image_image);
- this.removeButton.setOnClickListener(new ItemRemover(this));
- }
- }
- private class ItemRemover implements View.OnClickListener {
- private final ViewHolder holder;
- ItemRemover(ViewHolder viewHolder) {
- this.holder = viewHolder;
- }
- @Override
- public void onClick(View view) {
- holder.removeButton.setEnabled(false);
- int id = holder.id;
- int pos = holder.getAdapterPosition();
- holder.removeButton.setText(String.valueOf(pos));
- holder.removeButton.setOnClickListener(null);
- removeImage(id, pos);
- }
- }
- private void removeImage(int id, int pos) {
- this.imagesCollection.removeImage(id);
- this.images.remove(pos);
- notifyItemRemoved(pos);
- notifyItemRangeChanged(pos, this.images.size());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement