ListView now displays the first event that isn't finished
[unical.git] / src / ro / ieval / unical / EventListActivity.java
1 package ro.ieval.unical;
2
3 import java.util.Arrays;
4 import java.util.Comparator;
5 import java.util.Date;
6
7 import android.app.Activity;
8 import android.content.Intent;
9 import android.os.Bundle;
10 import android.view.Menu;
11 import android.view.MenuInflater;
12 import android.view.MenuItem;
13 import android.view.View;
14 import android.widget.AdapterView;
15 import android.widget.AdapterView.OnItemClickListener;
16 import android.widget.ListView;
17
18
19 public class EventListActivity extends Activity {
20
21 long dtstart,dtend;
22 //Used to refresh events if the user wants to display only certain events
23 //Sry for bad english
24 //Muie la comisie
25 private void displayEvents() {
26 final Event events[]=Event.getAllEvents(getBaseContext());
27 final ListView lv = (ListView) findViewById(R.id.eventlist);
28
29 Arrays.sort(events,new EventComparator());
30 int idx=-1;//index of the first event to be displayed
31 for(int i=0; i<events.length; ++i)
32 if(idx==-1 && events[i].dtend>new Date().getTime()) idx=i;
33 if(idx==-1) idx=0;
34
35 final EventAdapter adapter = new EventAdapter(this, events);
36 lv.setAdapter(adapter);
37 lv.setSelectionFromTop(idx, 0);
38 lv.setOnItemClickListener(new OnItemClickListener() {
39
40 @Override
41 public void onItemClick(final AdapterView<?> arg0, final View arg1, final int arg2,
42 final long arg3) {
43 DisplayEventActivity.displayEvent(EventListActivity.this,events[arg2]);
44 }
45
46 });
47 }
48
49 private static class EventComparator implements Comparator<Event> {
50 @Override
51 public int compare(final Event lhs, final Event rhs) {
52 if(lhs.dtstart < rhs.dtstart)
53 return -1;
54 if(lhs.dtstart == rhs.dtstart)
55 return 0;
56 return 1;
57 }
58
59 }
60
61 @Override
62 protected void onCreate(final Bundle savedInstanceState) {
63 super.onCreate(savedInstanceState);
64 setContentView(R.layout.event_list);
65
66 displayEvents();
67 }
68
69 @Override
70 public boolean onCreateOptionsMenu(final Menu menu) {
71 final MenuInflater inflater = getMenuInflater();
72 inflater.inflate(R.menu.main, menu);
73 return true;
74 }
75
76 @Override
77 public boolean onOptionsItemSelected(final MenuItem item) {
78 switch (item.getItemId()) {
79 case R.id.NewEvent:
80 final Intent i=new Intent(this,AddEventActivity.class);
81 startActivity(i);
82 return true;
83 default:
84 return false;
85 }
86 }
87
88 }
This page took 0.022074 seconds and 4 git commands to generate.