+ private class EventAdapter extends ArrayAdapter<Event> {
+ public EventAdapter() {//NOPMD
+ super(EventListActivity.this, R.layout.event_row_layout, events);
+ }
+
+ @Override
+ public View getView(final int position, final View convertView, final ViewGroup parent) {
+ final LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+ final View rowView = inflater.inflate(R.layout.event_row_layout, parent, false);
+ final TextView title = (TextView) rowView.findViewById(R.id.smalleventtitle);
+ final TextView dstart = (TextView) rowView.findViewById(R.id.smalldatestart);
+ final TextView dend = (TextView) rowView.findViewById(R.id.smalldateend);
+ final View header = rowView.findViewById(R.id.rowHeader);
+ header.setBackgroundColor(events[position].eventColour);
+ title.setText(events[position].title);
+ dstart.setText(new Date(events[position].dtstart).toString());
+ dend.setText(new Date(events[position].dtend).toString());
+
+ return rowView;
+ }
+ }
+
+ private Event[] events;
+
+ @Override
+ public void onListItemClick(final ListView view, final View v, final int pos, final long id) {
+ DisplayEventActivity.displayEvent(this, events[pos]._id);
+ }
+
+ private void displayEvents() {
+ events = Event.getAllEvents(this);
+
+ Arrays.sort(events, new EventComparator());
+ int idx=-1;//index of the first event to be displayed
+ for(int i=0; i<events.length; ++i)
+ if(idx==-1 && events[i].dtend>new Date().getTime()) idx=i;
+ if(idx==-1) idx=0;
+
+ setListAdapter(new EventAdapter());
+ getListView().setSelectionFromTop(idx, 0);
+ }
+
+ @Override
+ protected void onStart() {
+ super.onStart();
+ displayEvents();
+ }
+