Better DisplayEventActivity
[unical.git] / src / ro / ieval / unical / DisplayEventActivity.java
1 package ro.ieval.unical;
2
3 import java.text.DateFormat;
4 import java.text.SimpleDateFormat;
5 import java.util.Date;
6 import java.util.Locale;
7
8 import android.app.Activity;
9 import android.content.Context;
10 import android.content.Intent;
11 import android.os.Bundle;
12 import android.view.LayoutInflater;
13 import android.view.Menu;
14 import android.view.MenuInflater;
15 import android.view.MenuItem;
16 import android.view.View;
17 import android.view.ViewGroup;
18 import android.widget.ArrayAdapter;
19 import android.widget.Button;
20 import android.widget.ListView;
21 import android.widget.TextView;
22
23 public class DisplayEventActivity extends Activity {
24 private final class DeleteListener implements View.OnClickListener {
25 private final long time;
26 DeleteListener(final long time){
27 this.time=time;
28 }
29
30 @Override public void onClick(final View v){
31 Utils.deleteAlarm((Application) getApplication(), time);
32 setAdapter();
33 }
34 }
35
36 public static final String EXTRA_EVENT = "event";
37 private Event event;
38 private final DeleteEventDialog d=new DeleteEventDialog();
39
40 private void setAdapter(){
41 final ListView alarms = (ListView) findViewById(R.id.alarm_list);
42 alarms.setAdapter(new ArrayAdapter<Long>(this, R.layout.alarm_row_layout, Utils.getAlarmsByEvent((Application) getApplication(), event._id)){
43 @Override public View getView(final int position, final View convertView, final ViewGroup parent) {
44 final LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
45 final View rowView = inflater.inflate(R.layout.alarm_row_layout, parent, false);
46 final TextView date = (TextView) rowView.findViewById(R.id.alarm_datetime);
47 final Button delete = (Button) rowView.findViewById(R.id.alarm_delete);
48 delete.setOnClickListener(new DeleteListener(getItem(position)));
49 date.setText(DateFormat.getDateTimeInstance().format(getItem(position)));
50
51 return rowView;
52 }
53 });
54 }
55
56 public static void displayEvent(final Context context, final long id){
57 final Intent i=new Intent(context,DisplayEventActivity.class);
58 i.putExtra(DisplayEventActivity.EXTRA_EVENT, id);
59 context.startActivity(i);
60 }
61
62 @Override
63 protected void onStart() {
64 super.onStart();
65 event=getIntent().hasExtra(EXTRA_EVENT) ? Event.getEventById(this, getIntent().getLongExtra(EXTRA_EVENT, 0)) : new Event();
66 setContentView(R.layout.event_view);
67 setTitle(event.title);
68
69 final TextView startDay= (TextView) findViewById(R.id.startday);
70 final TextView endDay= (TextView) findViewById(R.id.endday);
71 final TextView startDate= (TextView) findViewById(R.id.startdate);
72 final TextView endDate= (TextView) findViewById(R.id.enddate);
73 final TextView startTime= (TextView) findViewById(R.id.starttime);
74 final TextView endTime= (TextView) findViewById(R.id.endtime);
75 final TextView description= (TextView) findViewById(R.id.event_view_description);;
76
77 final Date start=new Date(event.dtstart);
78 final Date end=new Date(event.dtend);
79 final DateFormat dateFormat = DateFormat.getDateInstance();
80 final DateFormat timeFormat = DateFormat.getTimeInstance();
81 final DateFormat dayOfWeekFormat = new SimpleDateFormat("EEEEEEE", Locale.UK);
82
83 startDay.setText(dayOfWeekFormat.format(start));
84 startDate.setText(dateFormat.format(start));
85 if(!dateFormat.format(start).equals(dateFormat.format(end))) {
86 endDay.setText(dayOfWeekFormat.format(end));
87 endDate.setText(dateFormat.format(end));
88 }
89
90 startTime.setText(timeFormat.format(start));
91 if(!start.equals(end))
92 endTime.setText(timeFormat.format(end));
93
94 description.setText(event.description);
95 setAdapter();
96 }
97
98 @Override
99 public boolean onCreateOptionsMenu(final Menu menu) {
100 final MenuInflater inflater = getMenuInflater();
101 inflater.inflate(R.menu.event, menu);
102 return true;
103 }
104
105 @Override
106 public boolean onOptionsItemSelected(final MenuItem item) {
107 // Handle item selection
108 switch (item. getItemId()) {
109 case R.id.deleteevent:
110 final Bundle b=new Bundle();
111 b.putParcelable("Event",event);
112 d.setArguments(b);
113 d.show(getFragmentManager(), "Delete");
114
115 return true;
116 case R.id.eventlist:
117 final Intent it=new Intent(this, EventListActivity.class);
118 startActivity(it);
119 return true;
120 case R.id.edit_event:
121 AddEventActivity.editEvent(this, event);
122 return true;
123 case R.id.add_alarm:
124 final Intent intent = new Intent(this, AddAlarmActivity.class);
125 intent.putExtra(AddAlarmActivity.EXTRA_EVENT, event._id);
126 startActivity(intent);
127 return true;
128 default:
129 return false;
130 }
131 }
132 }
This page took 0.026043 seconds and 4 git commands to generate.