package ren.solid.ganhuoio.module.home.provider;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
import me.drakeet.multitype.ItemViewProvider;
import ren.solid.ganhuoio.R;
import ren.solid.ganhuoio.bean.GanHuoData;
import ren.solid.ganhuoio.bean.bomb.CollectTable;
import ren.solid.ganhuoio.utils.DialogUtils;
import ren.solid.library.activity.ViewPicActivity;
import ren.solid.library.activity.WebViewActivity;
import ren.solid.library.imageloader.ImageLoader;
import ren.solid.library.utils.DateUtils;
/**
* Created by _SOLID
* Date:2016/11/30
* Time:11:22
* Desc:
*/
public class GanHuoImageViewProvider
extends ItemViewProvider<GanHuoData, GanHuoImageViewProvider.ViewHolder> {
@NonNull
@Override
protected ViewHolder onCreateViewHolder(
@NonNull LayoutInflater inflater, @NonNull ViewGroup parent) {
View root = inflater.inflate(R.layout.item_ganhuo_image, parent, false);
return new ViewHolder(root);
}
@Override
protected void onBindViewHolder(
@NonNull final ViewHolder holder, @NonNull final GanHuoData bean) {
final Context context = holder.itemView.getContext();
String date = bean.getPublishedAt().replace('T', ' ').replace('Z', ' ');
holder.tv_title.setText(bean.getDesc());
holder.tv_time.setText(DateUtils.friendlyTime(date));
holder.tv_people.setText("via " + bean.getWho());
holder.viewpager.setAdapter(new VPAdapter(holder.viewpager.getContext(), bean.getImages()));
holder.rl_bottom.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
WebViewActivity.start(context, bean.getDesc(), bean.getUrl());
}
});
holder.rl_bottom.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
DialogUtils.showActionDialog(view.getContext()
, holder.itemView
, new CollectTable(bean.getDesc(),bean.getUrl(), bean.getType()));
return true;
}
});
}
class VPAdapter extends PagerAdapter {
List<String> images;
Context context;
public VPAdapter(Context context, List<String> images) {
this.images = images;
this.context = context;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
final ImageView imageView = new ImageView(context);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT
, ViewGroup.LayoutParams.MATCH_PARENT));
ImageLoader.displayImage(imageView, images.get(position));
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ViewPicActivity.start(context, imageView, (ArrayList<String>) images, 0);
}
});
container.addView(imageView);
return imageView;
}
@Override
public int getCount() {
return images.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
}
static class ViewHolder extends RecyclerView.ViewHolder {
TextView tv_title;
TextView tv_people;
TextView tv_time;
ViewPager viewpager;
View rl_bottom;
ViewHolder(View itemView) {
super(itemView);
tv_title = (TextView) itemView.findViewById(R.id.tv_title);
tv_people = (TextView) itemView.findViewById(R.id.tv_people);
tv_time = (TextView) itemView.findViewById(R.id.tv_time);
viewpager = (ViewPager) itemView.findViewById(R.id.viewpager);
rl_bottom = itemView.findViewById(R.id.rl_bottom);
}
}
}