Add, show and remove alarms
[unical.git] / src / ro / ieval / unical / DisplayEventActivity.java
index 8055ec131fa3040bc9cc76c31888c9f2eee68607..0bff03217f7a9a15003b59b921548608e960063c 100644 (file)
@@ -2,82 +2,127 @@ package ro.ieval.unical;
 
 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<Long>(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(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.UK).format(getItem(position)));
+
+                                       return rowView;
+                               }
+                       });
+       }
 
-       public static void displayEvent(final Context context, final Event event){
+       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 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.UK);
+               final SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss", Locale.UK);
+               final SimpleDateFormat dayOfWeekFormat = new SimpleDateFormat("EEEEEEE", Locale.UK);
+
+               startDay.setText(dayOfWeekFormat.format(start));
+               if(!dateFormat.format(start).equals(dateFormat.format(end))) {
+                       endDay.setText(dayOfWeekFormat.format(end));
+                       endDate.setText(dateFormat.format(end));
+               }
+               startDate.setText(dateFormat.format(start));
+               startTime.setText(timeFormat.format(start));
+               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.eventlist:
+                       final Intent it=new Intent(this, EventListActivity.class);
+                       startActivity(it);
+                       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;
+               }
        }
 }
This page took 0.013244 seconds and 4 git commands to generate.