1 package ro
.ieval
.unical
;
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
.text
.DateFormat
;
19 import java
.util
.Arrays
;
20 import java
.util
.Comparator
;
21 import java
.util
.Date
;
23 public final class EventListActivity
extends ListActivity
{
24 private static class EventComparator
implements Comparator
<Event
> {
26 public int compare(final Event lhs
, final Event rhs
) {
27 if(lhs
.dtstart
< rhs
.dtstart
)
29 if(lhs
.dtstart
== rhs
.dtstart
)
36 private class EventAdapter
extends ArrayAdapter
<Event
> {
37 public EventAdapter() {//NOPMD
38 super(EventListActivity
.this, R
.layout
.event_row_layout
, events
);
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
);
49 final DateFormat format
= DateFormat
.getDateTimeInstance();
50 header
.setBackgroundColor(events
[position
].eventColour
);
51 title
.setText(events
[position
].title
);
52 dstart
.setText(format
.format(new Date(events
[position
].dtstart
)));
53 dend
.setText(format
.format(new Date(events
[position
].dtend
)));
59 private Event
[] events
;
62 public void onListItemClick(final ListView view
, final View v
, final int pos
, final long id
) {
63 DisplayEventActivity
.displayEvent(this, events
[pos
]._id
);
66 private void displayEvents() {
67 events
= Event
.getAllEvents(this);
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
;
75 setListAdapter(new EventAdapter());
76 getListView().setSelectionFromTop(idx
, 0);
80 protected void onStart() {
86 protected void onCreate(final Bundle savedInstanceState
) {
87 super.onCreate(savedInstanceState
);
92 public boolean onCreateOptionsMenu(final Menu menu
) {
93 final MenuInflater inflater
= getMenuInflater();
94 inflater
.inflate(R
.menu
.event_list
, menu
);
99 public boolean onOptionsItemSelected(final MenuItem item
) {
100 switch (item
.getItemId()) {
102 startActivity(new Intent(this,AddEventActivity
.class));