package com.aptoide.amethyst.adapter; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.aptoide.amethyst.R; import com.aptoide.amethyst.utils.IconSizeUtils; import com.aptoide.models.displayables.ExcludedUpdate; import com.bumptech.glide.Glide; import java.util.ArrayList; import com.aptoide.amethyst.viewholders.BaseViewHolder; import com.aptoide.amethyst.viewholders.ExcludedUpdateViewHolder; /** * Created by hsousa on 26/06/15. */ public class ExcludedUpdateAdapter extends RecyclerView.Adapter<BaseViewHolder> { private final ArrayList<ExcludedUpdate> list; private String sizeString; public ExcludedUpdateAdapter(ArrayList<ExcludedUpdate> list) { this.list = list; } @Override public BaseViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { sizeString = IconSizeUtils.generateSizeString(parent.getContext()); return new ExcludedUpdateViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.row_excluded_update, null), viewType); } @Override public void onBindViewHolder(final BaseViewHolder viewHolder, int position) { final ExcludedUpdateViewHolder item = (ExcludedUpdateViewHolder) viewHolder; final ExcludedUpdate appItem = list.get(position); item.cb_exclude.setChecked(appItem.isChecked()); item.cb_exclude.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { appItem.setChecked(item.cb_exclude.isChecked()); } }); String iconString = appItem.getIcon(); if (iconString.contains("_icon")) { String[] splittedUrl = iconString.split("\\.(?=[^\\.]+$)"); iconString = splittedUrl[0] + "_" + sizeString + "." + splittedUrl[1]; } Glide.with(viewHolder.itemView.getContext()).load(iconString).into(item.app_icon); item.tv_name.setText(appItem.getName()); item.tv_vercode.setText(appItem.getVersionName()); item.tv_apkid.setText(appItem.getApkid()); item.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { item.cb_exclude.setChecked(!appItem.isChecked()); appItem.setChecked(!appItem.isChecked()); } }); } @Override public int getItemCount() { return list.size(); } protected void setAllChecked(final boolean checked) { for (ExcludedUpdate excludedUpdate : list) { excludedUpdate.setChecked(checked); } notifyDataSetChanged(); } public void selectAll() { setAllChecked(true); } public void selectNone() { setAllChecked(false); } }