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