package name.caiyao.microreader.ui.adapter;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.support.v7.widget.RecyclerView;
import android.util.SparseBooleanArray;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
import butterknife.BindView;
import butterknife.ButterKnife;
import name.caiyao.microreader.R;
import name.caiyao.microreader.bean.guokr.GuokrHotItem;
import name.caiyao.microreader.config.Config;
import name.caiyao.microreader.ui.activity.ZhihuStoryActivity;
import name.caiyao.microreader.utils.DBUtils;
import name.caiyao.microreader.utils.ImageLoader;
/**
* Created by 蔡小木 on 2016/4/27 0027.
*/
public class GuokrAdapter extends RecyclerView.Adapter<GuokrAdapter.GuokrViewHolder> {
//解决item状态混乱问题
private SparseBooleanArray mSparseBooleanArray = new SparseBooleanArray();
private ArrayList<GuokrHotItem> guokrHotItems;
private Context mContext;
public GuokrAdapter(ArrayList<GuokrHotItem> guokrHotItems, Context context) {
this.guokrHotItems = guokrHotItems;
this.mContext = context;
}
@Override
public GuokrViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new GuokrViewHolder(LayoutInflater.from(mContext).inflate(R.layout.ithome_item, parent, false));
}
@Override
public void onBindViewHolder(final GuokrViewHolder holder, int position) {
final GuokrHotItem guokrHotItem = guokrHotItems.get(holder.getAdapterPosition());
if (DBUtils.getDB(mContext).isRead(Config.GUOKR, guokrHotItem.getId(), 1))
holder.mTvTitle.setTextColor(Color.GRAY);
else
holder.mTvTitle.setTextColor(Color.BLACK);
holder.mTvTitle.setText(guokrHotItem.getTitle());
holder.mTvDescription.setText(guokrHotItem.getSummary());
holder.mTvTime.setText(guokrHotItem.getTime());
ImageLoader.loadImage(mContext, guokrHotItem.getSmallImage(), holder.mIvIthome);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DBUtils.getDB(mContext).insertHasRead(Config.GUOKR, guokrHotItem.getId(), 1);
holder.mTvTitle.setTextColor(Color.GRAY);
Intent intent = new Intent(mContext, ZhihuStoryActivity.class);
intent.putExtra("type", ZhihuStoryActivity.TYPE_GUOKR);
intent.putExtra("id", guokrHotItem.getId());
intent.putExtra("title", guokrHotItem.getTitle());
mContext.startActivity(intent);
}
});
if (mSparseBooleanArray.get(Integer.parseInt(guokrHotItem.getId()))){
holder.btnDetail.setBackgroundResource(R.drawable.ic_expand_less_black_24px);
holder.mTvDescription.setVisibility(View.VISIBLE);
}else{
holder.btnDetail.setBackgroundResource(R.drawable.ic_expand_more_black_24px);
holder.mTvDescription.setVisibility(View.GONE);
}
holder.btnDetail.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (holder.mTvDescription.getVisibility() == View.GONE) {
holder.btnDetail.setBackgroundResource(R.drawable.ic_expand_less_black_24px);
holder.mTvDescription.setVisibility(View.VISIBLE);
mSparseBooleanArray.put(Integer.parseInt(guokrHotItem.getId()), true);
} else {
holder.btnDetail.setBackgroundResource(R.drawable.ic_expand_more_black_24px);
holder.mTvDescription.setVisibility(View.GONE);
mSparseBooleanArray.put(Integer.parseInt(guokrHotItem.getId()), false);
}
}
});
}
@Override
public int getItemCount() {
return guokrHotItems.size();
}
class GuokrViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.tv_title)
TextView mTvTitle;
@BindView(R.id.iv_ithome)
ImageView mIvIthome;
@BindView(R.id.tv_description)
TextView mTvDescription;
@BindView(R.id.tv_time)
TextView mTvTime;
@BindView(R.id.btn_detail)
Button btnDetail;
GuokrViewHolder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
}
}
}