package com.mzoneapp.zjjmb.adapter;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.SharedPreferences;
import android.content.res.Resources;
import android.os.Handler;
import android.os.Message;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.github.ignition.core.adapters.EndlessListAdapter;
import com.github.ignition.core.widgets.RemoteImageView;
import com.mzoneapp.zjjmb.R;
import com.mzoneapp.zjjmb.api.Article;
public class ArticleAdapter extends EndlessListAdapter<Article> {
private static final String LOG_TAG = ArticleAdapter.class.getName();
private final LayoutInflater inflater;
private long lastUpdate = -1;
private Activity activity;
private Resources rs;
private SharedPreferences settings;
public ArticleAdapter(Activity activity,AbsListView listView) {
super(activity, listView, R.layout.loading_item);
this.activity = activity;
rs = activity.getResources();
settings = activity.getSharedPreferences("articel_read_ids", 0);
inflater = LayoutInflater.from(activity);
}
private List<Article> headlines;
private boolean endReached = false;
private final Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
// if (msg.what >= 0) {
// if (headlines != null) {
// lastUpdate = System.currentTimeMillis();
// remove(null);
// for (Headline s : headlines) {
// if (getPosition(s) < 0) {
// add(s);
// }
// }
// if (!endReached) {
// add(null);
// }
// }
// // TODO:callback
//
// } else {
// // TODO:error
// }
}
};
public void addMoreHeadlines(final String url, final int count) {
new Thread(new Runnable() {
@Override
public void run() {
if (getMoreHeadlines(url, count)) {
handler.sendEmptyMessage(0);
} else {
handler.sendEmptyMessage(-1);
}
}
}).start();
}
private boolean getMoreHeadlines(String url, int count) {
// TODO
return true;
}
@SuppressLint("ResourceAsColor")
@Override
protected View doGetView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = inflater.inflate(R.layout.list_item_headline, parent,
false);
}
Article article = getItem(position);
RemoteImageView image = (RemoteImageView) convertView.findViewById(R.id.image);
LinearLayout layout = (LinearLayout)convertView.findViewById(R.id.layout_image);
if(article.images != null){
layout.setVisibility(View.VISIBLE);
if(!image.isLoaded()){
image.setImageUrl(article.images[0]);
image.loadImage();
}
}else{
layout.setVisibility(View.GONE);
}
TextView title = (TextView) convertView.findViewById(R.id.title);
TextView desc = (TextView) convertView.findViewById(R.id.desc);
TextView date = (TextView) convertView.findViewById(R.id.dateText);
title.setText(article.title);
// desc.setText(headline.desc);
desc.setText(article.desc);
String id = article.id;
boolean flag = settings.getBoolean(id, false);
title.setTextColor(rs.getColor(R.color.color_list_title));
if(flag){
// 已读
title.setTextColor(rs.getColor(R.color.list_title_text_selector_read));
}else{
// 最新
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
long l = (new Date().getTime()) - df.parse(article.issuedate).getTime();
if(l/1000/24/3600 < 10){
title.setTextColor(rs.getColor(R.color.list_title_text_selector_new));
}
} catch (ParseException e) {
e.printStackTrace();
}
}
date.setText(article.issuedate.split(" ")[0]);
return convertView;
}
}