package com.dxjia.doubantop.adapters;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import com.dxjia.doubantop.R;
import com.dxjia.doubantop.datas.beans.MovieInfoBean;
import com.dxjia.doubantop.datas.beans.MovieMajorInfos;
import com.dxjia.doubantop.interfaces.MovieInfoActionsListener;
import com.dxjia.doubantop.views.MovieView;
import com.squareup.picasso.Picasso;
import java.util.List;
import butterknife.ButterKnife;
/**
* Created by dxjia on 15-6-23.
*/
public class ContentItemAdapter extends RecyclerView.Adapter<ContentItemAdapter.ViewHolder> {
final private List<MovieInfoBean> mMoviesList;
final private MovieInfoActionsListener mActionListener;
public ContentItemAdapter(MovieInfoActionsListener l, List<MovieInfoBean> moviesList) {
mActionListener = l;
mMoviesList = moviesList;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.content_item, parent,false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
MovieInfoBean bean = mMoviesList.get(position);
holder.updateViews(bean);
}
@Override
public int getItemCount() {
return mMoviesList.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
public ImageView mImageView;
public MovieView mMovieView;
public Button mDetailButton;
public MovieInfoBean mBean;
public void updateViews(MovieInfoBean details) {
mBean = details;
mMovieView.setTitle(mBean.getTitle());
mMovieView.setDescription(mBean.getFormatedGenres());
mMovieView.setAverage(mBean.getAverage() + "'");
mDetailButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
MovieMajorInfos movieMajorInfos = new MovieMajorInfos();
movieMajorInfos.fillDatas(mBean.getId(), mBean.getTitle(), mBean.getImageUri(),
mBean.getCastsCount(), mBean.getCastsIds(), mBean.getCastsAvatorUris(),
mBean.getDirectorId(), mBean.getDirectorImageUri(), mBean.getAverage());
mActionListener.showDetails(movieMajorInfos);
}
});
Context context = mImageView.getContext();
Picasso.with(context)
.load(mBean.getImageUri())
.placeholder(R.mipmap.ic_loading)
.error(R.mipmap.ic_unkown_image)
.fit()
.into(mImageView);
}
public ViewHolder(View itemView) {
super(itemView);
mMovieView = ButterKnife.findById(itemView, R.id.cardview);
mMovieView.setTitle("Card View");
mImageView = mMovieView.getImageView();
mDetailButton = mMovieView.getHighlightButton();
}
}
}