| 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 | } |