package ro.ieval.unical;
+import java.text.ParseException;
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;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.Fragment;
import android.app.TimePickerDialog.OnTimeSetListener;
+import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
+import android.graphics.Color;
+import android.net.Uri;
import android.os.Bundle;
+import android.provider.CalendarContract;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
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);
}
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 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));
+
+ final EditText title = (EditText) findViewById(R.id.eventtitle);
+ 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
return true;
}
+ public void createCalendar() {
+ Uri calUri,result;
+ ContentValues cv;
+ calUri = CalendarContract.Calendars.CONTENT_URI;
+ cv = new ContentValues();
+ cv.put(CalendarContract.Calendars.ACCOUNT_NAME,"unical");
+ cv.put(CalendarContract.Calendars.ACCOUNT_TYPE,CalendarContract.ACCOUNT_TYPE_LOCAL);
+ cv.put(CalendarContract.Calendars.NAME,"unical");
+ cv.put(CalendarContract.Calendars.CALENDAR_DISPLAY_NAME, "Unical");
+ cv.put(CalendarContract.Calendars.CALENDAR_COLOR, Color.BLACK);
+ cv.put(CalendarContract.Calendars.CALENDAR_ACCESS_LEVEL, CalendarContract.Calendars.CAL_ACCESS_OWNER);
+ 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;
+ }
+
@Override
public boolean onOptionsItemSelected(final MenuItem item) {
switch (item.getItemId()) {
finish();
return true;
case R.id.save:
- System.out.println("MuieLaComisie\n"+event.title);
+ 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);
+ event.dtstart=s.getTime();
+ event.dtend=s.getTime();
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+
+ event.description=((EditText) findViewById(R.id.description)).getText().toString();
+
+ 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();
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