Clean up EventListActivity
[unical.git] / src / ro / ieval / unical / EventListActivity.java
1 package ro.ieval.unical;
2
3 import android.app.ListActivity;
4 import android.content.Context;
5 import android.content.Intent;
6 import android.os.Bundle;
7 import android.view.LayoutInflater;
8 import android.view.Menu;
9 import android.view.MenuInflater;
10 import android.view.MenuItem;
11 import android.view.View;
12 import android.view.ViewGroup;
13 import android.widget.AdapterView.OnItemClickListener;
14 import android.widget.AdapterView;
15 import android.widget.ArrayAdapter;
16 import android.widget.ListView;
17 import android.widget.TextView;
18 import java.util.Arrays;
19 import java.util.Comparator;
20 import java.util.Date;
21
22 public final class EventListActivity extends ListActivity {
23 private static class EventComparator implements Comparator<Event> {
24 @Override
25 public int compare(final Event lhs, final Event rhs) {
26 if(lhs.dtstart < rhs.dtstart)
27 return -1;
28 if(lhs.dtstart == rhs.dtstart)
29 return 0;
30 return 1;
31 }
32
33 }
34
35 private class EventAdapter extends ArrayAdapter<Event> {
36 public EventAdapter() {//NOPMD
37 super(EventListActivity.this, R.layout.event_row_layout);
38 }
39
40 @Override
41 public View getView(final int position, final View convertView, final ViewGroup parent) {
42 final LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
43 final View rowView = inflater.inflate(R.layout.event_row_layout, parent, false);
44 final TextView title = (TextView) rowView.findViewById(R.id.smalleventtitle);
45 final TextView dstart = (TextView) rowView.findViewById(R.id.smalldatestart);
46 final TextView dend = (TextView) rowView.findViewById(R.id.smalldateend);
47 final View header = rowView.findViewById(R.id.rowHeader);
48 header.setBackgroundColor(events[position].eventColour);
49 title.setText(events[position].title);
50 dstart.setText(new Date(events[position].dtstart).toString());
51 dend.setText(new Date(events[position].dtend).toString());
52
53 return rowView;
54 }
55 }
56
57 private Event[] events;
58
59 @Override
60 public void onListItemClick(final ListView view, final View v, final int pos, final long id) {
61 DisplayEventActivity.displayEvent(this, events[pos]);
62 }
63
64 private void displayEvents() {
65 events = Event.getAllEvents(this);
66
67 Arrays.sort(events, new EventComparator());
68 int idx=-1;//index of the first event to be displayed
69 for(int i=0; i<events.length; ++i)
70 if(idx==-1 && events[i].dtend>new Date().getTime()) idx=i;
71 if(idx==-1) idx=0;
72
73 setListAdapter(new EventAdapter());
74 getListView().setSelectionFromTop(idx, 0);
75 }
76
77 @Override
78 protected void onCreate(final Bundle savedInstanceState) {
79 super.onCreate(savedInstanceState);
80 displayEvents();
81 }
82
83 @Override
84 public boolean onCreateOptionsMenu(final Menu menu) {
85 final MenuInflater inflater = getMenuInflater();
86 inflater.inflate(R.menu.event_list, menu);
87 return true;
88 }
89
90 @Override
91 public boolean onOptionsItemSelected(final MenuItem item) {
92 switch (item.getItemId()) {
93 case R.id.add_event:
94 startActivity(new Intent(this,AddEventActivity.class));
95 return true;
96 case R.id.refresh:
97 displayEvents();
98 return true;
99 default:
100 return false;
101 }
102 }
103
104 }
This page took 0.022094 seconds and 4 git commands to generate.