package moe.chionlab.wechatmomentstat.gui;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Locale;
import moe.chionlab.wechatmomentstat.Model.SnsInfo;
import moe.chionlab.wechatmomentstat.R;
/**
* Created by chiontang on 3/26/16.
*/
public class SnsInfoAdapter extends ArrayAdapter<SnsInfo> {
protected ArrayList<SnsInfo> snsList = null;
public SnsInfoAdapter(Context context, int resource, ArrayList<SnsInfo> snsList) {
super(context, resource, snsList);
this.snsList = snsList;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View view = convertView;
final ViewHolder viewHolder;
SnsInfo snsInfo = snsList.get(position);
if (view == null) {
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.sns_item, null);
final CheckBox selectedCheckBox = (CheckBox) view.findViewById(R.id.sns_item_username);
TextView snsContentTextView = (TextView) view.findViewById(R.id.sns_item_text_content);
TextView snsTimeTextView = (TextView) view.findViewById(R.id.sns_item_time);
LinearLayout photoContainer = (LinearLayout) view.findViewById(R.id.sns_item_photo_layout);
viewHolder = new ViewHolder();
viewHolder.selectedCheckBox = selectedCheckBox;
viewHolder.snsContentTextView = snsContentTextView;
viewHolder.snsTimeTextView = snsTimeTextView;
viewHolder.photoContainer = photoContainer;
for (int i=0;i<10;i++) {
ImageView snsImageView = new ImageView(getContext());
viewHolder.imageViewList.add(snsImageView);
}
view.setTag(viewHolder);
} else {
viewHolder = (ViewHolder)view.getTag();
}
viewHolder.selectedCheckBox.setText(snsInfo.authorName);
viewHolder.selectedCheckBox.setChecked(snsInfo.selected);
viewHolder.snsContentTextView.setText(snsInfo.content);
viewHolder.snsTimeTextView.setText(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss", Locale.getDefault()).format(new Date(snsInfo.timestamp * 1000)));
viewHolder.selectedCheckBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SnsInfo snsInfo = snsList.get(position);
snsInfo.selected = viewHolder.selectedCheckBox.isChecked();
}
});
viewHolder.photoContainer.removeAllViews();
for (int i=0;i<snsInfo.mediaList.size();i++) {
ImageView snsImageView = null;
try {
snsImageView = viewHolder.imageViewList.get(i);
} catch (IndexOutOfBoundsException exception) {
snsImageView = new ImageView(getContext());
viewHolder.imageViewList.add(snsImageView);
}
try {
String imageUrl = snsInfo.mediaList.get(i);
if (imageUrl.startsWith("http://mmsns.qpic.cn/mmsns")) {
viewHolder.photoContainer.addView(snsImageView);
snsImageView.setImageBitmap(null);
ImageLoader imageLoader = ImageLoader.getInstance();
imageLoader.displayImage(imageUrl, snsImageView);
LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) snsImageView.getLayoutParams();
layoutParams.setMargins(0, 0, 10, 0);
layoutParams.height = 200;
layoutParams.width = 200;
snsImageView.setLayoutParams(layoutParams);
}
} catch (Exception e) {
Log.e("wechatmomentstat", "exception", e);
}
}
return view;
}
static protected class ViewHolder {
CheckBox selectedCheckBox;
TextView snsContentTextView;
TextView snsTimeTextView;
LinearLayout photoContainer;
ArrayList<ImageView> imageViewList = new ArrayList<ImageView>();
}
}