Add, show and remove alarms
[unical.git] / src / ro / ieval / unical / DisplayEventActivity.java
index 967a556b5cf03c69303f343466f660086c5f5f83..0bff03217f7a9a15003b59b921548608e960063c 100644 (file)
@@ -8,26 +8,62 @@ 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();
 
-       public static void displayEvent(final Context context, final Event event){
+       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 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);
+               setTitle(event.title);
 
                final TextView startDay= (TextView) findViewById(R.id.startday);
                final TextView endDay= (TextView) findViewById(R.id.endday);
@@ -35,23 +71,24 @@ public class DisplayEventActivity extends Activity {
                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 TextView description= (TextView) findViewById(R.id.event_view_description);;
 
-               final Date start=new Date(e.dtstart);
-               final Date end=new Date(e.dtend);
-               final SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy", Locale.UK);
+               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)!=dateFormat.format(end)) {
+               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(e.description);
+               description.setText(event.description);
+               setAdapter();
        }
 
        @Override
@@ -65,20 +102,27 @@ public class DisplayEventActivity extends Activity {
        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;
+               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.012391 seconds and 4 git commands to generate.