Refresh DisplayEventActivity in onStart
[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
MG
17import android.widget.TextView;
18import java.util.Arrays;
19import java.util.Comparator;
20import java.util.Date;
0b5b93a4 21
6f8cabdd 22public final class EventListActivity extends ListActivity {
9dcd994f
MG
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
6f8cabdd
MG
35 private class EventAdapter extends ArrayAdapter<Event> {
36 public EventAdapter() {//NOPMD
575ec5f9 37 super(EventListActivity.this, R.layout.event_row_layout, events);
6f8cabdd
MG
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) {
86ad3786 61 DisplayEventActivity.displayEvent(this, events[pos]._id);
6f8cabdd
MG
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
dc52b261
P
77 @Override
78 protected void onStart() {
79 super.onStart();
80 displayEvents();
81 }
82
0b5b93a4 83 @Override
9dcd994f 84 protected void onCreate(final Bundle savedInstanceState) {
0b5b93a4 85 super.onCreate(savedInstanceState);
ecee6932
PT
86 displayEvents();
87 }
070d3ab2 88
ecee6932
PT
89 @Override
90 public boolean onCreateOptionsMenu(final Menu menu) {
91 final MenuInflater inflater = getMenuInflater();
c35783fd 92 inflater.inflate(R.menu.event_list, menu);
ecee6932
PT
93 return true;
94 }
070d3ab2 95
ecee6932
PT
96 @Override
97 public boolean onOptionsItemSelected(final MenuItem item) {
8a08d036 98 switch (item.getItemId()) {
6d7e08bf 99 case R.id.add_event:
6f8cabdd 100 startActivity(new Intent(this,AddEventActivity.class));
8a08d036 101 return true;
c35783fd
PT
102 case R.id.refresh:
103 displayEvents();
104 return true;
8a08d036
MG
105 default:
106 return false;
107 }
0b5b93a4 108 }
070d3ab2 109
0b5b93a4 110}
This page took 0.022564 seconds and 4 git commands to generate.