X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=src%2Fro%2Fieval%2Funical%2FDisplayEventActivity.java;h=31e0626f907b16ca709431ace770f82dca1bdc54;hb=5f71502fa3d0e4a942dbb776a697a5f84d1c72dc;hp=8055ec131fa3040bc9cc76c31888c9f2eee68607;hpb=99658f577dd666fd3b558d5346a5aadb0d9d3a06;p=unical.git diff --git a/src/ro/ieval/unical/DisplayEventActivity.java b/src/ro/ieval/unical/DisplayEventActivity.java index 8055ec1..31e0626 100644 --- a/src/ro/ieval/unical/DisplayEventActivity.java +++ b/src/ro/ieval/unical/DisplayEventActivity.java @@ -1,83 +1,128 @@ package ro.ieval.unical; +import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; -import java.util.GregorianCalendar; +import java.util.Locale; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; +import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.Button; +import android.widget.ListView; import android.widget.TextView; public class DisplayEventActivity extends Activity { + private final class DeleteListener implements View.OnClickListener { + private final long time; + DeleteListener(final long time){ + this.time=time; + } + + @Override public void onClick(final View v){ + Utils.deleteAlarm((Application) getApplication(), time); + setAdapter(); + } + } + public static final String EXTRA_EVENT = "event"; + private Event event; + private final DeleteEventDialog d=new DeleteEventDialog(); + + private void setAdapter(){ + final ListView alarms = (ListView) findViewById(R.id.alarm_list); + alarms.setAdapter(new ArrayAdapter(this, R.layout.alarm_row_layout, Utils.getAlarmsByEvent((Application) getApplication(), event._id)){ + @Override public View getView(final int position, final View convertView, final ViewGroup parent) { + final LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); + final View rowView = inflater.inflate(R.layout.alarm_row_layout, parent, false); + final TextView date = (TextView) rowView.findViewById(R.id.alarm_datetime); + final Button delete = (Button) rowView.findViewById(R.id.alarm_delete); + delete.setOnClickListener(new DeleteListener(getItem(position))); + date.setText(DateFormat.getDateTimeInstance().format(getItem(position))); - public static void displayEvent(final Context context, final Event event){ + return rowView; + } + }); + } + + public static void displayEvent(final Context context, final long id){ final Intent i=new Intent(context,DisplayEventActivity.class); - i.putExtra(DisplayEventActivity.EXTRA_EVENT, event); + i.putExtra(DisplayEventActivity.EXTRA_EVENT, id); context.startActivity(i); } @Override - protected void onCreate(final Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - final Event e=getIntent().getParcelableExtra(EXTRA_EVENT); + protected void onStart() { + super.onStart(); + event=getIntent().hasExtra(EXTRA_EVENT) ? Event.getEventById(this, getIntent().getLongExtra(EXTRA_EVENT, 0)) : new Event(); setContentView(R.layout.event_view); - setTitle(e.title); - - final TextView startday= (TextView) findViewById(R.id.startday); - final TextView endday= (TextView) findViewById(R.id.endday); - final TextView startdate= (TextView) findViewById(R.id.startdate); - final TextView enddate= (TextView) findViewById(R.id.enddate); - final TextView starttime= (TextView) findViewById(R.id.starttime); - final TextView endtime= (TextView) findViewById(R.id.endtime); - - GregorianCalendar cstart = new GregorianCalendar(); - cstart.setTime(new Date(e.dtstart)); - GregorianCalendar cend = new GregorianCalendar(); - cend.setTime(new Date(e.dtend)); - SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy"); - SimpleDateFormat stf = new SimpleDateFormat("kk:mm:ss"); - - startday.setText(CalendarUtils.DayToString(this,cstart)); - if(CalendarUtils.DayToString(this,cstart)!=CalendarUtils.DayToString(this, cend)) - endday.setText(CalendarUtils.DayToString(this, cend)); - startdate.setText(sdf.format(cstart.getTime())); - if(sdf.format(cstart.getTime())!=sdf.format(cend.getTime())) - enddate.setText(sdf.format(cend.getTime())); - starttime.setText(stf.format(cstart.getTime())); - endtime.setText(stf.format(cend.getTime())); + setTitle(event.title); + + final TextView startDay= (TextView) findViewById(R.id.startday); + final TextView endDay= (TextView) findViewById(R.id.endday); + final TextView startDate= (TextView) findViewById(R.id.startdate); + final TextView endDate= (TextView) findViewById(R.id.enddate); + final TextView startTime= (TextView) findViewById(R.id.starttime); + final TextView endTime= (TextView) findViewById(R.id.endtime); + final TextView description= (TextView) findViewById(R.id.event_view_description);; + + final Date start=new Date(event.dtstart); + final Date end=new Date(event.dtend); + final DateFormat dateFormat = DateFormat.getDateInstance(); + final DateFormat timeFormat = DateFormat.getTimeInstance(); + final DateFormat dayOfWeekFormat = new SimpleDateFormat("EEEEEEE", Locale.UK); + + startDay.setText(dayOfWeekFormat.format(start)); + startDate.setText(dateFormat.format(start)); + if(!dateFormat.format(start).equals(dateFormat.format(end))) { + endDay.setText(dayOfWeekFormat.format(end)); + endDate.setText(dateFormat.format(end)); + } + + startTime.setText(timeFormat.format(start)); + if(!start.equals(end)) + endTime.setText(timeFormat.format(end)); + + description.setText(event.description); + setAdapter(); } - + @Override public boolean onCreateOptionsMenu(final Menu menu) { final MenuInflater inflater = getMenuInflater(); - inflater.inflate(R.menu.event, menu); + inflater.inflate(R.menu.event, menu); return true; } - + @Override public boolean onOptionsItemSelected(final MenuItem item) { - // Handle item selection - switch (item. getItemId()) { - case R.id.NewEvent: - final Intent i=new Intent(this,AddEventActivity.class); - startActivity(i); - return true; - case R.id.deleteevent: - final DeleteEventDialog d=new DeleteEventDialog(); - d.show(getFragmentManager(), "Delete"); - return true; - case R.id.eventlist: - final Intent it=new Intent(this,EventListActivity.class); - startActivity(it); - return true; - default: - return true; - } + // Handle item selection + switch (item. getItemId()) { + case R.id.deleteevent: + final Bundle b=new Bundle(); + b.putParcelable("Event",event); + d.setArguments(b); + d.show(getFragmentManager(), "Delete"); + + return true; + case R.id.edit_event: + AddEventActivity.editEvent(this, event); + return true; + case R.id.add_alarm: + final Intent intent = new Intent(this, AddAlarmActivity.class); + intent.putExtra(AddAlarmActivity.EXTRA_EVENT, event._id); + startActivity(intent); + return true; + default: + return false; + } } }