package com.fanxin.app.fx.others;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import com.alibaba.fastjson.JSONObject;
import com.fanxin.app.Constant;
import com.fanxin.app.R;
import com.fanxin.app.fx.others.LoadUserAvatar.ImageDownloadedCallBack;
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Bitmap;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
@SuppressLint("SdCardPath")
public class LastLoginAdapter extends BaseAdapter {
List<JSONObject> list;
Context context;
private LoadUserAvatar avatarLoader;
String time;
@SuppressLint("SdCardPath")
public LastLoginAdapter(List<JSONObject> list, Context context, String time) {
this.context = context;
this.list = list;
this.time = time;
avatarLoader = new LoadUserAvatar(context, "/sdcard/fanxin/");
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
public void setTime(String time) {
this.time = time;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
holder = new ViewHolder();
convertView = LayoutInflater.from(context).inflate(
R.layout.item_lasterloginuser, null);
holder.img_face = (ImageView) convertView
.findViewById(R.id.iv_avatar);
holder.tv_name = (TextView) convertView.findViewById(R.id.tv_name);
holder.tv_time = (TextView) convertView.findViewById(R.id.tv_time);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
resetViewHolder(holder);
}
JSONObject json = list.get(position);
String last_time = json.getString("time");
String name = json.getString("nick");
String avatar = json.getString("avatar");
holder.tv_name.setText(name);
if (last_time.equals("0") || last_time == "0") {
holder.tv_time.setText("很久以前");
} else {
holder.tv_time.setText(getTime(time, last_time));
}
showUserAvatar(holder.img_face, avatar);
return convertView;
}
private void showUserAvatar(ImageView iamgeView, String avatar) {
final String url_avatar = Constant.URL_Avatar + avatar;
iamgeView.setTag(url_avatar);
if (url_avatar != null && !url_avatar.equals("")) {
Bitmap bitmap = avatarLoader.loadImage(iamgeView, url_avatar,
new ImageDownloadedCallBack() {
public void onImageDownloaded(ImageView imageView,
Bitmap bitmap) {
if (imageView.getTag() == url_avatar) {
imageView.setImageBitmap(bitmap);
}
}
});
if (bitmap != null)
iamgeView.setImageBitmap(bitmap);
}
}
@SuppressLint("SimpleDateFormat")
private String getTime(String get_time, String last_time) {
String backStr = "";
String dateStart = last_time;
String dateStop = get_time;
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d1 = null;
Date d2 = null;
try {
d1 = format.parse(dateStart);
d2 = format.parse(dateStop);
// 毫秒ms
long diff = d2.getTime() - d1.getTime();
long diffMinutes = diff / (60 * 1000) % 60;
long diffHours = diff / (60 * 60 * 1000) % 24;
long diffDays = diff / (24 * 60 * 60 * 1000);
if (diffDays != 0) {
if (diffDays < 30) {
backStr = String.valueOf(diffDays) + "天前";
} else {
backStr = "很久以前";
}
} else if (diffHours != 0) {
backStr = String.valueOf(diffHours) + "小时前";
} else if (diffMinutes != 0) {
backStr = String.valueOf(diffMinutes) + "分钟前";
} else {
backStr = "刚刚";
}
} catch (Exception e) {
e.printStackTrace();
}
return backStr;
}
class ViewHolder {
ImageView img_face;
TextView tv_time;
TextView tv_name;
}
protected void resetViewHolder(ViewHolder p_ViewHolder) {
p_ViewHolder.tv_time.setText(null);
p_ViewHolder.img_face.setImageResource(R.drawable.default_useravatar);
p_ViewHolder.tv_name.setText(null);
}
}