package com.yyquan.jzh.adapter;
import android.content.Context;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.Adapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.TextView;
import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.AsyncHttpResponseHandler;
import com.loopj.android.http.RequestParams;
import com.squareup.picasso.Picasso;
import com.yyquan.jzh.R;
import com.yyquan.jzh.activity.ShowImageActivity;
import com.yyquan.jzh.entity.Ip;
import com.yyquan.jzh.entity.News_luntan;
import com.yyquan.jzh.entity.News_pinglun;
import com.yyquan.jzh.view.CircleImageView;
import java.util.ArrayList;
import java.util.Date;
import cz.msebera.android.httpclient.Header;
/**
* Created by Administrator on 2015/12/27.
*/
public class ShowLunTanRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
Context context;
ArrayList<News_pinglun> news;
News_luntan news_luntan;
String user;
String nickname;
String url_icon = Ip.ip + "/YfriendService/DoGetIcon?name=";
private static final int TYPE_STATE = 0;
private static final int TYPE_PINGLUN = 1;
LayoutInflater minflater;
public ShowLunTanRecyclerViewAdapter(Context context, ArrayList<News_pinglun> news, News_luntan news_luntan, String user, String nickname) {
this.context = context;
this.news = news;
this.user = user;
this.news_luntan = news_luntan;
this.nickname = nickname;
minflater = LayoutInflater.from(context);
}
@Override
public int getItemViewType(int position) {
return position == 0 ? TYPE_STATE : TYPE_PINGLUN;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if (viewType == TYPE_STATE) {
State_ViewHolder holders = new State_ViewHolder(minflater.inflate(R.layout.show_luntan_recycerlistview_item_top, parent, false));
return holders;
} else if (viewType == TYPE_PINGLUN) {
PingLun_ViewHolder holders = new PingLun_ViewHolder(minflater.inflate(R.layout.listview_pinglun_item, parent, false));
return holders;
} else {
return null;
}
}
@Override
public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int position) {
int type = getItemViewType(position);
switch (type) {
case TYPE_STATE:
State_ViewHolder sholder = (State_ViewHolder) holder;
final String[] grid_img = news_luntan.getImage().split(";");
if (news_luntan.getLocation().equals("")) {
sholder.tv_location.setVisibility(View.GONE);
} else {
sholder.tv_location.setVisibility(View.VISIBLE);
sholder.tv_location.setText(" " + news_luntan.getLocation());
}
if (news_luntan.getUser().getIcon().equals("")) {
if (news_luntan.getUser().getSex().equals("男")) {
sholder.iv_icon.setImageResource(R.mipmap.me_icon_man);
} else {
sholder.iv_icon.setImageResource(R.mipmap.me_icon_woman);
}
} else {
if (news_luntan.getUser().getIcon().substring(0, 4).equals("http")) {
Picasso.with(context).load(news_luntan.getUser().getIcon()).resize(200, 200).placeholder(R.mipmap.qq_addfriend_search_friend).error(R.mipmap.qq_addfriend_search_friend).centerInside().into(sholder.iv_icon);
} else {
Picasso.with(context).load(url_icon + news_luntan.getUser().getIcon()).resize(200, 200).placeholder(R.mipmap.qq_addfriend_search_friend).error(R.mipmap.qq_addfriend_search_friend).centerInside().into(sholder.iv_icon);
}
}
sholder.tv_name.setText(news_luntan.getUser().getNickname());
sholder.tv_time.setText(news_luntan.getTime());
sholder.tv_content.setText(news_luntan.getContent());
if (news_luntan.getImage().equals("")) {
} else {
sholder.gv.setAdapter(new BaseAdapter() {
@Override
public int getCount() {
return grid_img.length;
}
@Override
public Object getItem(int position) {
return grid_img[position];
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolders holder;
if (convertView == null) {
holder = new ViewHolders();
convertView = LayoutInflater.from(context).inflate(R.layout.layout_imagview, null);
holder.iv = (ImageView) convertView.findViewById(R.id.imageView);
holder.iv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context, ShowImageActivity.class);
intent.putExtra("str[]", grid_img);
intent.putExtra("type", "luntan");
intent.putExtra("number", position);
context.startActivity(intent);
}
});
convertView.setTag(holder);
} else {
holder = (ViewHolders) convertView.getTag();
}
final String urlpath = Ip.ip + "/YfriendService/DoGetLunTan?action=search_image&name=" + grid_img[position];
Picasso.with(context)
.load(urlpath)
.resize(200, 200).centerCrop()
.placeholder(R.mipmap.aio_image_default_round)
.error(R.mipmap.aio_image_default_round)
.into(holder.iv);
return convertView;
}
});
}
break;
case TYPE_PINGLUN:
final PingLun_ViewHolder pholder = (PingLun_ViewHolder) holder;
pholder.tv_lou.setText("第" + position + "楼");
String stime = "";
if (news.get(position).getUser().getUser().contains("http")) {
stime = news.get(position).getPtime();
} else {
Date date = new Date();
long time = date.getTime();
long sytime = time - Long.parseLong(news.get(position).getPtime());
long ltime = sytime / 1000;
if (ltime >= 0 && ltime < 60) {
if (ltime == 0) {
stime = "刚刚";
} else {
stime = ltime + "秒前";
}
} else if (ltime >= 60 && ltime < 3600) {
stime = ltime / 60 + "分钟前";
} else if (ltime >= 3600 && ltime < 3600 * 24) {
stime = ltime / 3600 + "小时前";
} else if (ltime >= 3600 * 24 && ltime < 3600 * 48) {
stime = "昨天";
} else if (ltime >= 3600 * 48 && ltime < 3600 * 72) {
stime = "前天";
} else if (ltime >= 3600 * 72) {
stime = ltime / 86400 + "天前";
} else {
stime = "1212122";
}
}
pholder.tv_time.setText(stime);
pholder.tv_content.setText(news.get(position).getPcontent());
pholder.tv_zan.setText(news.get(position).getPzan() + " ");
if (news.get(position).getPlocation().equals("")) {
pholder.tv_location.setVisibility(View.GONE);
} else {
pholder.tv_location.setVisibility(View.VISIBLE);
pholder.tv_location.setText(news.get(position).getPlocation());
}
if (nickname.equals(news.get(position).getUser().getNickname())) {
pholder.tv_name.setTextColor(context.getResources().getColor(R.color.title));
} else {
pholder.tv_name.setTextColor(context.getResources().getColor(R.color.pinglun_name));
}
pholder.tv_name.setText(news.get(position).getUser().getNickname());
Drawable nav_up = null;
if (news.get(position).getIspzan().equals("1")) {
nav_up = context.getResources().getDrawable(R.mipmap.pic_btn_liked);
pholder.tv_zan.setEnabled(false);
} else {
nav_up = context.getResources().getDrawable(R.mipmap.pic_btn_like);
pholder.tv_zan.setEnabled(true);
}
nav_up.setBounds(0, 0, nav_up.getMinimumWidth(), nav_up.getMinimumHeight());
pholder.tv_zan.setCompoundDrawables(null, null, nav_up, null);
pholder.tv_zan.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (news.get(position).getIspzan().equals("1")) {
} else {
pholder.tv_zan.setEnabled(false);
Drawable nav_upp = context.getResources().getDrawable(R.mipmap.pic_btn_liked);
nav_upp.setBounds(0, 0, nav_upp.getMinimumWidth(), nav_upp.getMinimumHeight());
pholder.tv_zan.setCompoundDrawables(null, null, nav_upp, null);
pholder.tv_zan.setText(Integer.parseInt((news.get(position).getPzan())) + 1 + " ");
update_zan(news.get(position).getPid(), position, pholder.tv_zan);
}
}
});
if (news.get(position).getUser().getIcon().equals("")) {
if (news.get(position).getUser().getSex().equals("男")) {
pholder.iv_icon.setImageResource(R.mipmap.me_icon_man);
} else {
pholder.iv_icon.setImageResource(R.mipmap.me_icon_woman);
}
} else {
if (news.get(position).getUser().getIcon().substring(0, 4).equals("http")) {
Picasso.with(context).load(news.get(position).getUser().getIcon()).resize(200, 200).placeholder(R.mipmap.qq_addfriend_search_friend).error(R.mipmap.qq_addfriend_search_friend).centerInside().into(pholder.iv_icon);
} else {
Picasso.with(context).load(url_icon + news.get(position).getUser().getIcon()).resize(200, 200).placeholder(R.mipmap.qq_addfriend_search_friend).error(R.mipmap.qq_addfriend_search_friend).centerInside().into(pholder.iv_icon);
}
// Picasso.with(context).load(url_icon+news.get(position).getUser().getIcon()).resize(200, 200).placeholder(R.mipmap.qq_addfriend_search_friend).error(R.mipmap.qq_addfriend_search_friend).centerCrop().into(holder.iv_icon);
}
break;
}
}
@Override
public int getItemCount() {
return 1 + news.size();
}
private void update_zan(int pid, final int position, final TextView tv) {
RequestParams params = new RequestParams();
params.put("action", "update_zan");
params.put("pid", pid);
params.put("user", user);
//Toast.makeText(context, pid + "", Toast.LENGTH_SHORT).show();
AsyncHttpClient client = new AsyncHttpClient();
client.post(Ip.ip + "/YfriendService/DoGetLunTan", params, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
news.get(position).setIspzan("1");
news.get(position).setPzan(Integer.parseInt((news.get(position).getPzan())) + 1 + " ");
tv.setEnabled(true);
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
tv.setEnabled(true);
}
});
}
/**
* 状态图片holder类
*/
class ViewHolders {
ImageView iv;
}
/**
* 状态holder类
*/
public class State_ViewHolder extends RecyclerView.ViewHolder {
private CircleImageView iv_icon;
private GridView gv;
private TextView tv_location;
private TextView tv_name;
private TextView tv_time;
private TextView tv_content;
public State_ViewHolder(View convertView) {
super(convertView);
gv = (GridView) convertView.findViewById(R.id.show_luntan_gridview);
tv_location = (TextView) convertView.findViewById(R.id.show_luntan_textView_location);
tv_time = (TextView) convertView.findViewById(R.id.show_luntan_textView_time);
tv_content = (TextView) convertView.findViewById(R.id.show_luntan_textView_content);
iv_icon = (CircleImageView) convertView.findViewById(R.id.show_luntan_imageview_icon);
tv_name = (TextView) convertView.findViewById(R.id.show_luntan_textView_name);
}
}
/**
* 评论holder类
*/
public class PingLun_ViewHolder extends RecyclerView.ViewHolder {
private TextView tv_name;
private TextView tv_location;
private TextView tv_time;
private TextView tv_lou;
private TextView tv_content;
private TextView tv_zan;
private ImageView iv_icon;
public PingLun_ViewHolder(View convertView) {
super(convertView);
iv_icon = (ImageView) convertView.findViewById(R.id.listview_pinglun_item_imageview_icon);
tv_name = (TextView) convertView.findViewById(R.id.listview_pinglun_item_textView_name);
tv_location = (TextView) convertView.findViewById(R.id.listview_pinglun_item_textView_location);
tv_time = (TextView) convertView.findViewById(R.id.listview_pinglun_item_textView_time);
tv_lou = (TextView) convertView.findViewById(R.id.listview_pinglun_item_textView_lou);
tv_content = (TextView) convertView.findViewById(R.id.listview_pinglun_item_textView_content);
tv_zan = (TextView) convertView.findViewById(R.id.listview_pinglun_item_textView_zan);
}
}
}