package com.openxc.enabler; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Locale; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import com.openxc.messages.VehicleMessage; public abstract class VehicleMessageAdapter extends BaseAdapter { protected List<VehicleMessage> mValues = new ArrayList<>(); private static SimpleDateFormat sDateFormatter = new SimpleDateFormat( "HH:mm:ss.S", Locale.US); public void add(VehicleMessage message) { ThreadPreconditions.checkOnMainThread(); // No need to sort as the list will maintain assertion order, which will // be the same as sorting by timestamp. mValues.add(0, message); notifyDataSetChanged(); } protected static String formatTimestamp(VehicleMessage message) { if(message.isTimestamped()) { return sDateFormatter.format(message.getDate()); } return ""; } @Override public int getCount() { return mValues.size(); } @Override public VehicleMessage getItem(int position) { return mValues.get(position); } @Override public long getItemId(int position) { return position; } public abstract View getView(int position, View convertView, ViewGroup parent); }