Swati4star/Images-to-PDF

View on GitHub
app/src/main/java/swati4star/createpdf/adapter/RecentListAdapter.java

Summary

Maintainability
A
0 mins
Test Coverage
package swati4star.createpdf.adapter;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.RecyclerView;

import com.google.android.material.card.MaterialCardView;

import java.util.List;
import java.util.Map;

import butterknife.BindView;
import butterknife.ButterKnife;
import swati4star.createpdf.R;

public class RecentListAdapter extends RecyclerView.Adapter<RecentListAdapter.RecentItemViewHolder> {

    private final View.OnClickListener mOnClickListener;
    private List<String> mKeys;
    private List<Map<String, String>> mValues;

    public RecentListAdapter(View.OnClickListener listener) {
        this.mOnClickListener = listener;
    }


    /**
     * Updates the recent list
     *
     * @param keys       - list of all the feature viewId
     * @param recentList - list of the features
     */
    public void updateList(List<String> keys, List<Map<String, String>> recentList) {
        this.mKeys = keys;
        this.mValues = recentList;
    }

    @NonNull
    @Override
    public RecentItemViewHolder onCreateViewHolder(
            @NonNull final ViewGroup viewGroup, final int i) {
        View mView = LayoutInflater.from(viewGroup.getContext())
                .inflate(R.layout.item_view_enhancement_option, viewGroup, false);
        return new RecentListAdapter.RecentItemViewHolder(mView);
    }

    @Override
    public void onBindViewHolder(
            @NonNull final RecentItemViewHolder recentItemViewHolder, final int i) {

        recentItemViewHolder.name.setText(recentItemViewHolder.itemView.getContext().getString(
                Integer.parseInt(mValues.get(i).keySet().iterator().next())
        ));
        recentItemViewHolder.icon.setImageDrawable(ContextCompat.getDrawable(recentItemViewHolder.itemView.getContext(),
                Integer.parseInt(mValues.get(i).values().iterator().next())));

        recentItemViewHolder.itemView.setId(Integer.parseInt(mKeys.get(i)));
        recentItemViewHolder.itemView.setOnClickListener(mOnClickListener);
    }

    @Override
    public int getItemCount() {
        return mValues.size();
    }

    class RecentItemViewHolder extends RecyclerView.ViewHolder {
        @BindView(R.id.option_image)
        ImageView icon;
        @BindView(R.id.option_name)
        TextView name;

        MaterialCardView cardView;

        private RecentItemViewHolder(@NonNull final View itemView) {
            super(itemView);
            ButterKnife.bind(this, itemView);
            cardView = itemView.findViewById(R.id.container_card_view);
        }
    }
}