package com.quinn.githubknife.ui.adapter;
import android.graphics.Typeface;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.quinn.githubknife.R;
import com.quinn.githubknife.ui.widget.RecycleItemClickListener;
import com.quinn.httpknife.github.Repository;
import com.quinn.httpknife.github.TrendingRepo;
import java.util.List;
/**
* Created by Quinn on 9/10/16.
*/
public class TrendingRepoAdapter extends
RecyclerView.Adapter<TrendingRepoAdapter.ViewHolder>{
private List<TrendingRepo> dataItems;
private RecycleItemClickListener itemClickListener;
public TrendingRepoAdapter(List<TrendingRepo> dataItems){
this.dataItems = dataItems;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
final LayoutInflater mInflater = LayoutInflater.from(parent
.getContext());
final View sView = mInflater.inflate(R.layout.item_trending_reposlist, parent,
false);
return new ViewHolder(sView,itemClickListener);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
TrendingRepo repo = dataItems.get(position);
holder.name.setText(repo.getName());
int rsid = R.string.since_today;
switch (repo.getSince_type()) {
case SINCE_DAY:
rsid = R.string.since_today;
break;
case SINCE_WEEK:
rsid = R.string.since_weekly;
break;
case SINCE_MONTH:
rsid = R.string.since_month;
break;
}
holder.addStar.setText(repo.getAddStars() + " "+ holder.addStar.getContext().getString(rsid));
holder.language.setText(repo.getLanguage());
holder.iconType.setText(R.string.icon_repo);
holder.description.setText(repo.getDescription());
}
@Override
public int getItemCount() {
return dataItems.size();
}
public static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
private RecycleItemClickListener mItemClickListener;
public TextView name;
public TextView iconType;
public TextView addStar;
public TextView description;
public TextView language;
public ViewHolder(View view,RecycleItemClickListener itemClickListener){
super(view);
this.mItemClickListener = itemClickListener;
name = (TextView) view.findViewById(R.id.repoFullName);
iconType = (TextView) view.findViewById(R.id.iconType);
addStar = (TextView) view.findViewById(R.id.addStar);
description = (TextView) view.findViewById(R.id.description);
language = (TextView) view.findViewById(R.id.language);
Typeface typeface = Typeface.createFromAsset(view.getContext().getAssets(),"octicons.ttf");
iconType.setTypeface(typeface);
view.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if(mItemClickListener != null){
mItemClickListener.onItemClick(v,getPosition());
}
}
}
public void setOnItemClickListener(RecycleItemClickListener listener) {
this.itemClickListener = listener;
}
}