package ar.rulosoft.mimanganu.adapters; import android.app.Activity; import android.support.annotation.NonNull; import android.support.v4.content.ContextCompat; import android.support.v7.widget.CardView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import com.fedorvlasov.lazylist.ImageLoader; import java.util.ArrayList; import java.util.List; import ar.rulosoft.mimanganu.R; import ar.rulosoft.mimanganu.componentes.Cover; import ar.rulosoft.mimanganu.componentes.Manga; import ar.rulosoft.mimanganu.servers.ServerBase; public class MisMangasAdapter extends ArrayAdapter<Manga> { private static int resource = R.layout.control_tapa_manga; private Activity activity; private ImageLoader imageLoader; private boolean darkTheme = false; private int darkBackground; public MisMangasAdapter(Activity activity, List<Manga> objects, boolean darkTheme) { super(activity, resource, objects); this.darkTheme = darkTheme; this.darkBackground = ContextCompat.getColor(activity, R.color.background_floating_material_dark); this.activity = activity; imageLoader = new ImageLoader(activity); } @Override public View getView(int position, View convertView, @NonNull ViewGroup parent) { View item = convertView; ViewHolder holder; if (item == null) { LayoutInflater inflater = activity.getLayoutInflater(); item = inflater.inflate(resource, null); holder = new ViewHolder(item); item.setTag(holder); } else { holder = (ViewHolder) item.getTag(); } Manga m = getItem(position); holder.serie.setText(m.getTitle()); imageLoader.displayImg(m.getImages(), holder.serie); ServerBase server = ServerBase.getServer(m.getServerId(), getContext()); holder.server.setImageResource(server.getIcon()); if (m.getNews() > 0) { holder.notif.setVisibility(ImageView.VISIBLE); } else { holder.notif.setVisibility(ImageView.INVISIBLE); } return (item); } public void addAll(ArrayList<Manga> mangasNuevos) { for (Manga manga : mangasNuevos) { add(manga); } } public class ViewHolder { Cover serie; View v; ImageView server; ImageView notif; public ViewHolder(View itemView) { serie = (Cover) itemView.findViewById(R.id.tapa); notif = (ImageView) itemView.findViewById(R.id.notif); server = (ImageView) itemView.findViewById(R.id.server); v = itemView; if (darkTheme) { ((CardView) itemView.findViewById(R.id.cardview_server_container)) .setCardBackgroundColor(darkBackground); } } } }