package ro.ieval.unical;
import java.util.Arrays;
+import java.util.Comparator;
import java.util.Date;
-import java.util.GregorianCalendar;
import android.app.Activity;
import android.content.Intent;
-import android.graphics.Color;
import android.os.Bundle;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
import android.view.View;
-import android.view.View.OnClickListener;
-import android.widget.Button;
-import android.widget.LinearLayout;
+import android.widget.AdapterView;
+import android.widget.AdapterView.OnItemClickListener;
+import android.widget.ListView;
public class EventListActivity extends Activity {
- GregorianCalendar gc;
-
+
+ //Used to refresh events if the user wants to display only certain events
+ //Sry for bad english
+ //Muie la comisie
+ private void displayEvents() {
+ final Event events[]=Event.getAllEvents(getBaseContext());
+ final ListView lv = (ListView) findViewById(R.id.eventlist);
+
+ Arrays.sort(events,new EventComparator());
+ int idx=-1;//index of the first event to be displayed
+ for(int i=0; i<events.length; ++i)
+ if(idx==-1 && events[i].dtend>new Date().getTime()) idx=i;
+ if(idx==-1) idx=0;
+
+ final EventAdapter adapter = new EventAdapter(this, events);
+ lv.setAdapter(adapter);
+ lv.setSelectionFromTop(idx, 0);
+ lv.setOnItemClickListener(new OnItemClickListener() {
+
+ @Override
+ public void onItemClick(final AdapterView<?> arg0, final View arg1, final int arg2,
+ final long arg3) {
+ DisplayEventActivity.displayEvent(EventListActivity.this,events[arg2]);
+ }
+
+ });
+ }
+
+ private static class EventComparator implements Comparator<Event> {
+ @Override
+ public int compare(final Event lhs, final Event rhs) {
+ if(lhs.dtstart < rhs.dtstart)
+ return -1;
+ if(lhs.dtstart == rhs.dtstart)
+ return 0;
+ return 1;
+ }
+
+ }
+
@Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
+ protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.event_list);
-
- Date d=new Date();
- d.getTime();
- gc=new GregorianCalendar();
- gc.setTime(d);
-
- Event r[]=Event.getAllEvents(getBaseContext());
- LinearLayout ll = (LinearLayout)findViewById(R.id.eventslayout);
- Arrays.sort(r,new EventComparator());
- EventButton[] b=new EventButton[10000];
- for(int i=0; i<r.length; ++i) {
- b[i]=new EventButton(getBaseContext(),r[i]);
- b[i].setText(r[i].title);
-
- b[i].setTextColor(Color.BLACK);
- b[i].setOnClickListener(new OnClickListener() {
-
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- EventButton b=(EventButton) v;
- DisplayEventActivity.displayEvent(EventListActivity.this,b.e);
- //Intent i=new Intent(getBaseContext(),DisplayEventActivity.class);
- //i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- //startActivity(i);
- }
- });
- ll.addView(b[i]);
+
+ displayEvents();
+ }
+
+ @Override
+ public boolean onCreateOptionsMenu(final Menu menu) {
+ final MenuInflater inflater = getMenuInflater();
+ inflater.inflate(R.menu.main, menu);
+ return true;
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(final MenuItem item) {
+ switch (item.getItemId()) {
+ case R.id.add_event:
+ final Intent i=new Intent(this,AddEventActivity.class);
+ startActivity(i);
+ return true;
+ default:
+ return false;
}
}
-
+
}