Removes repeat layout. Format date now works correctly
[unical.git] / src / ro / ieval / unical / AddEventActivity.java
index 4c761d69c2f4730e69d605520ddcf56738cf4e1b..b86dd77c30e6dc4e73a7403c6f3c801a4ed1c764 100644 (file)
@@ -4,6 +4,7 @@ import java.text.SimpleDateFormat;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.GregorianCalendar;
+import java.util.TimeZone;
 
 import android.app.ActionBar;
 import android.app.Activity;
@@ -25,62 +26,14 @@ import android.widget.*;
 
 public final class AddEventActivity extends Activity implements OnDateSetListener, OnTimeSetListener{
 
-    private class OnCheckedChangeListener implements android.widget.CompoundButton.OnCheckedChangeListener{
-        private final LinearLayout layout;
-        public OnCheckedChangeListener(final LinearLayout layout){
-            this.layout=layout;
-        }
-
-        private class OnItemSelectedListener implements android.widget.AdapterView.OnItemSelectedListener{
-            private final View repeatCount;
-            private final View repeatUntil;
-
-            public OnItemSelectedListener(final View repeatCount, final View repeatUntil) {
-                this.repeatCount=repeatCount;
-                this.repeatUntil=repeatUntil;
-            }
-
-            @Override
-            public void onItemSelected(final AdapterView<?> whatever, final View ignored, final int pos, final long id) {
-                switch(pos){
-                    case 0:
-                        repeatCount.setVisibility(View.GONE);
-                        repeatUntil.setVisibility(View.GONE);
-                        break;
-                    case 1:
-                        repeatCount.setVisibility(View.GONE);
-                        repeatUntil.setVisibility(View.VISIBLE);
-                        break;
-                    case 2:
-                        repeatCount.setVisibility(View.VISIBLE);
-                        repeatUntil.setVisibility(View.GONE);
-                        break;
-                    default:
-                }
-            }
-
-            @Override public void onNothingSelected(final AdapterView<?> arg0) { /* do nothing */      }
-        }
-
-        @Override
-        public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
-            if(isChecked) {
-                Utils.setEnabledRecursively(layout, true);
-                final Spinner repeatType = (Spinner) findViewById(R.id.repeat_type);
-                repeatType.setOnItemSelectedListener(new OnItemSelectedListener(findViewById(R.id.repeat_count),findViewById(R.id.repeat_until)));
-            }else {
-                Utils.setEnabledRecursively(layout, false);
-            }
-        }
-    }
-
        private TextView dateTimeTextView;
     public static final String EXTRA_EVENT = "event";
-    private Event event;
+    private static Event event=new Event();
 
     public static void editEvent(final Context c, final Event e) {
         final Intent i = new Intent(c,AddEventActivity.class);
         i.putExtra(AddEventActivity.EXTRA_EVENT,e);
+        event=e;
         c.startActivity(i);
     }
 
@@ -93,34 +46,27 @@ public final class AddEventActivity extends Activity implements OnDateSetListene
                final ActionBar actionBar = getActionBar();
                setContentView(R.layout.add_event);
 
-        if(getIntent().hasExtra(EXTRA_EVENT)) {
-            final LinearLayout layout = (LinearLayout) findViewById(R.id.repeat_layout);
-            final Switch repeatSwitch = (Switch) findViewById(R.id.repeat_switch);
-            Utils.setEnabledRecursively(layout, false);
-
-            repeatSwitch.setOnCheckedChangeListener(new OnCheckedChangeListener(layout));
-
-            EditText title = (EditText) findViewById(R.id.eventtitle);
-            title.setText(event.title);
-
-            TextView tstart = (TextView) findViewById(R.id.time_start);
-            TextView tend = (TextView) findViewById(R.id.time_end);
-            SimpleDateFormat sf=new SimpleDateFormat("HH:mm");
-            Date d=new Date(event.dtstart);
-            tstart.setText(sf.format(d).toString());
-            d.setTime(event.dtend);
-            tend.setText(sf.format(d).toString());
-
-            SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
-            TextView dstart = (TextView)findViewById(R.id.date_start);
-            TextView dend = (TextView)findViewById(R.id.date_end);
-            d.setTime(event.dtstart);
-            dstart.setText(sd.format(d).toString());
-            d.setTime(event.dtend);
-            dend.setText(sd.format(d).toString());
-            EditText description = (EditText) findViewById(R.id.description);
-            description.setText(event.description);
-        }
+               final EditText title = (EditText) findViewById(R.id.eventtitle);
+        title.requestFocus();
+               title.setText(event.title);
+
+               final TextView tstart = (TextView) findViewById(R.id.time_start);
+               final TextView tend = (TextView) findViewById(R.id.time_end);
+               final SimpleDateFormat sf=new SimpleDateFormat("HH:mm");
+               final Date d=new Date(event.dtstart);
+               tstart.setText(sf.format(d).toString());
+               d.setTime(event.dtend);
+               tend.setText(sf.format(d).toString());
+
+               final SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
+               final TextView dstart = (TextView)findViewById(R.id.date_start);
+               final TextView dend = (TextView)findViewById(R.id.date_end);
+               d.setTime(event.dtstart);
+               dstart.setText(sd.format(d).toString());
+               d.setTime(event.dtend);
+               dend.setText(sd.format(d).toString());
+               final EditText description = (EditText) findViewById(R.id.description);
+               description.setText(event.description);
        }
 
        @Override
@@ -144,12 +90,14 @@ public final class AddEventActivity extends Activity implements OnDateSetListene
         cv.put(CalendarContract.Calendars.OWNER_ACCOUNT, "unical");
         cv.put(CalendarContract.Calendars.VISIBLE, 1);
         cv.put(CalendarContract.Calendars.SYNC_EVENTS, 1);
+        cv.put(CalendarContract.Calendars.CALENDAR_TIME_ZONE, TimeZone.getDefault().getID());
         calUri = calUri.buildUpon()
                 .appendQueryParameter(CalendarContract.CALLER_IS_SYNCADAPTER, "true")
                 .appendQueryParameter(CalendarContract.Calendars.ACCOUNT_NAME, "unical")
                 .appendQueryParameter(CalendarContract.Calendars.ACCOUNT_TYPE, CalendarContract.ACCOUNT_TYPE_LOCAL)
                 .build();
 
+        this.getContentResolver().delete(calUri, CalendarContract.Calendars.ACCOUNT_NAME + " = 'unical'", new String[0]);
         this.getContentResolver().insert(calUri, cv);
         Event.calendarCreated=true;
     }
@@ -161,24 +109,31 @@ public final class AddEventActivity extends Activity implements OnDateSetListene
                                finish();
                                return true;
             case R.id.save:
-
-                Event ev=new Event();
-                ev.title=((EditText)findViewById(R.id.eventtitle)).getText().toString();
+                boolean edit=false;
+                if(event.title!=null) edit=true;
+                event.title=((EditText)findViewById(R.id.eventtitle)).getText().toString();
                 String start=((TextView)findViewById(R.id.date_start)).getText().toString()+ " " +((TextView)findViewById(R.id.time_start)).getText().toString();
                 String end=((TextView)findViewById(R.id.date_end)).getText().toString()+ " "+((TextView)findViewById(R.id.time_end)).getText().toString();
 
                 try {
                     Date s=new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(start);
                     Date e=new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(end);
-                    ev.dtstart=s.getTime();
-                    ev.dtend=s.getTime();
+                    event.dtstart=s.getTime();
+                    event.dtend=e.getTime();
                 } catch (ParseException e) {
                     e.printStackTrace();
                 }
 
-                ev.description=((EditText) findViewById(R.id.description)).getText().toString();
+                event.description=((EditText) findViewById(R.id.description)).getText().toString();
 
-                if(!Event.calendarCreated) createCalendar();
+                if(!Event.calendarCreated)createCalendar();
+                if(event.calendarID!=Event.getUnicalId(this)) {
+                    edit=false;
+                    event.delete(this);
+                }
+                event.calendarID=Event.getUnicalId(this);
+                if(!edit) event.insert(this);
+                else event.edit(this);
 
                 Toast toast = Toast.makeText(getApplicationContext(),"Event saved!",Toast.LENGTH_LONG);
                 toast.show();
@@ -191,7 +146,7 @@ public final class AddEventActivity extends Activity implements OnDateSetListene
 
     public void showDateTimePickerDialog(final View v) {
                dateTimeTextView=(TextView) v;
-               if(v.getId()==R.id.date_start || v.getId()==R.id.date_end || v.getId() == R.id.repeat_until){
+               if(v.getId()==R.id.date_start || v.getId()==R.id.date_end ){
                        final String[] parts = dateTimeTextView.getText().toString().split("-");
                        final DatePickerFragment fragment = new DatePickerFragment();
                        final Bundle args = new Bundle();
@@ -215,7 +170,7 @@ public final class AddEventActivity extends Activity implements OnDateSetListene
        public void onTimeSet(final TimePicker picker, final int hour, final int minute) {
                dateTimeTextView.setText(String.format("%02d:%02d",hour,minute));
                if(dateTimeTextView.getId() == R.id.time_start)
-                       ((TextView)findViewById(R.id.time_end)).setText(String.format("%2d:%2d",hour,minute));
+                       ((TextView)findViewById(R.id.time_end)).setText(String.format("%02d:%02d",hour,minute));
        }
 
        @Override
This page took 0.013413 seconds and 4 git commands to generate.