package net.wigle.wigleandroid;
import android.annotation.SuppressLint;
import android.content.Context;
import android.text.Html;
import android.text.method.LinkMovementMethod;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import net.wigle.wigleandroid.model.NewsItem;
/**
* the array adapter for a list of uploads.
*/
public final class NewsListAdapter extends AbstractListAdapter<NewsItem> {
public NewsListAdapter(final Context context, final int rowLayout ) {
super( context, rowLayout );
}
@SuppressLint("SetTextI18n")
@Override
public View getView(final int position, final View convertView, final ViewGroup parent) {
View row;
if ( null == convertView ) {
row = mInflater.inflate( R.layout.newsrow, parent, false );
}
else {
row = convertView;
}
NewsItem newsItem;
try {
newsItem = getItem(position);
}
catch ( final IndexOutOfBoundsException ex ) {
// yes, this happened to someone
MainActivity.info("index out of bounds: " + position + " ex: " + ex);
return row;
}
TextView tv = (TextView) row.findViewById( R.id.subject );
tv.setText(newsItem.getSubject());
tv = (TextView) row.findViewById( R.id.poster_date );
tv.setText(newsItem.getPoster() + " - " + newsItem.getDateTime());
tv = (TextView) row.findViewById( R.id.post );
tv.setText(newsItem.getPost());
tv = (TextView) row.findViewById( R.id.link );
tv.setText(Html.fromHtml("<a href=\""+newsItem.getLink()+"\">"+newsItem.getLink()+"</a>"));
tv.setMovementMethod(LinkMovementMethod.getInstance());
return row;
}
}