package pro.dbro.glance.adapters; import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.parse.ParseObject; import com.parse.ParseQuery; import com.parse.ParseQueryAdapter; import java.net.MalformedURLException; import java.net.URL; import java.util.Calendar; import java.util.Date; import pro.dbro.glance.R; public class ArticleAdapter extends ParseQueryAdapter<ParseObject> { public static enum ArticleFilter { RECENT, ALL } public ArticleAdapter(Context context) { super(context, new ParseQueryAdapter.QueryFactory<ParseObject>() { public ParseQuery<ParseObject> create() { ParseQuery query = new ParseQuery("Article"); return query; } }); } public ArticleAdapter(final Context context, final ArticleFilter filterType) { super(context, new ParseQueryAdapter.QueryFactory<ParseObject>() { public ParseQuery<ParseObject> create() { ParseQuery query = null; switch(filterType) { case ALL: query = new ParseQuery("Article"); query.orderByDescending("createdAt"); return query; case RECENT: default: query = new ParseQuery("Article"); Date now = new Date(); Calendar cal = Calendar.getInstance(); cal.setTime(now); cal.add(Calendar.DAY_OF_MONTH, -2); Date oneDayAgo = cal.getTime(); query.whereGreaterThan("createdAt", oneDayAgo); query.orderByDescending("reads"); return query; } } }); } @Override public View getItemView(ParseObject object, View convertView, ViewGroup parent) { if (convertView == null) { convertView = View.inflate(getContext(), R.layout.tracked_article_list_item, null); } TextView handle = (TextView) convertView.findViewById(R.id.title); handle.setText(object.getString("title")); TextView text = (TextView) convertView.findViewById(R.id.url); convertView.setTag(object.getString("url")); try { text.setText(new URL(object.getString("url")).getHost()); } catch (MalformedURLException e) { text.setText(object.getString("url")); } TextView reads = (TextView) convertView.findViewById(R.id.reads); reads.setText(String.valueOf(object.getInt("reads"))); reads.setLines(1); convertView.setOnClickListener(AdapterUtils.getArticleClickListener(convertView.getContext())); return convertView; } }