Better DisplayEventActivity
[unical.git] / src / ro / ieval / unical / DisplayEventActivity.java
CommitLineData
222ca38d
PT
1package ro.ieval.unical;
2
f6f4503f 3import java.text.DateFormat;
99658f57 4import java.text.SimpleDateFormat;
222ca38d 5import java.util.Date;
8a08d036 6import java.util.Locale;
222ca38d
PT
7
8import android.app.Activity;
5cf4714f 9import android.content.Context;
46e6c000 10import android.content.Intent;
222ca38d 11import android.os.Bundle;
539deec9 12import android.view.LayoutInflater;
222ca38d
PT
13import android.view.Menu;
14import android.view.MenuInflater;
46e6c000 15import android.view.MenuItem;
539deec9
MG
16import android.view.View;
17import android.view.ViewGroup;
18import android.widget.ArrayAdapter;
19import android.widget.Button;
20import android.widget.ListView;
222ca38d
PT
21import android.widget.TextView;
22
5cf4714f 23public class DisplayEventActivity extends Activity {
539deec9
MG
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
39f0cac1 36 public static final String EXTRA_EVENT = "event";
f580909c 37 private Event event;
dc52b261 38 private final DeleteEventDialog d=new DeleteEventDialog();
39f0cac1 39
539deec9
MG
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)));
f6f4503f 49 date.setText(DateFormat.getDateTimeInstance().format(getItem(position)));
539deec9
MG
50
51 return rowView;
52 }
53 });
54 }
55
86ad3786 56 public static void displayEvent(final Context context, final long id){
5cf4714f 57 final Intent i=new Intent(context,DisplayEventActivity.class);
86ad3786 58 i.putExtra(DisplayEventActivity.EXTRA_EVENT, id);
5cf4714f
MG
59 context.startActivity(i);
60 }
61
222ca38d 62 @Override
86ad3786
MG
63 protected void onStart() {
64 super.onStart();
65 event=getIntent().hasExtra(EXTRA_EVENT) ? Event.getEventById(this, getIntent().getLongExtra(EXTRA_EVENT, 0)) : new Event();
5cf4714f 66 setContentView(R.layout.event_view);
f580909c 67 setTitle(event.title);
070d3ab2 68
8a08d036
MG
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);
539deec9 75 final TextView description= (TextView) findViewById(R.id.event_view_description);;
070d3ab2 76
f580909c
MG
77 final Date start=new Date(event.dtstart);
78 final Date end=new Date(event.dtend);
f6f4503f
MG
79 final DateFormat dateFormat = DateFormat.getDateInstance();
80 final DateFormat timeFormat = DateFormat.getTimeInstance();
81 final DateFormat dayOfWeekFormat = new SimpleDateFormat("EEEEEEE", Locale.UK);
070d3ab2 82
8a08d036 83 startDay.setText(dayOfWeekFormat.format(start));
00b0fd8e 84 startDate.setText(dateFormat.format(start));
ad349897 85 if(!dateFormat.format(start).equals(dateFormat.format(end))) {
8a08d036 86 endDay.setText(dayOfWeekFormat.format(end));
8a08d036 87 endDate.setText(dateFormat.format(end));
dec0e894 88 }
00b0fd8e 89
8a08d036 90 startTime.setText(timeFormat.format(start));
00b0fd8e
MG
91 if(!start.equals(end))
92 endTime.setText(timeFormat.format(end));
93
f580909c 94 description.setText(event.description);
539deec9 95 setAdapter();
222ca38d 96 }
070d3ab2 97
222ca38d 98 @Override
5cf4714f
MG
99 public boolean onCreateOptionsMenu(final Menu menu) {
100 final MenuInflater inflater = getMenuInflater();
8a08d036 101 inflater.inflate(R.menu.event, menu);
222ca38d
PT
102 return true;
103 }
070d3ab2 104
46e6c000 105 @Override
5cf4714f 106 public boolean onOptionsItemSelected(final MenuItem item) {
8a08d036
MG
107 // Handle item selection
108 switch (item. getItemId()) {
55084aed 109 case R.id.deleteevent:
dc52b261
P
110 final Bundle b=new Bundle();
111 b.putParcelable("Event",event);
112 d.setArguments(b);
55084aed 113 d.show(getFragmentManager(), "Delete");
dc52b261 114
55084aed
MG
115 return true;
116 case R.id.eventlist:
539deec9 117 final Intent it=new Intent(this, EventListActivity.class);
55084aed
MG
118 startActivity(it);
119 return true;
120 case R.id.edit_event:
539deec9 121 AddEventActivity.editEvent(this, event);
55084aed
MG
122 return true;
123 case R.id.add_alarm:
539deec9
MG
124 final Intent intent = new Intent(this, AddAlarmActivity.class);
125 intent.putExtra(AddAlarmActivity.EXTRA_EVENT, event._id);
126 startActivity(intent);
55084aed
MG
127 return true;
128 default:
539deec9 129 return false;
8a08d036 130 }
46e6c000 131 }
222ca38d 132}
This page took 0.028287 seconds and 4 git commands to generate.