|
|
@ -4,6 +4,7 @@ import android.app.Activity;
|
|
|
|
import android.content.ContentResolver;
|
|
|
|
import android.content.ContentResolver;
|
|
|
|
import android.content.ContentValues;
|
|
|
|
import android.content.ContentValues;
|
|
|
|
import android.content.Intent;
|
|
|
|
import android.content.Intent;
|
|
|
|
|
|
|
|
import android.database.Cursor;
|
|
|
|
import android.net.Uri;
|
|
|
|
import android.net.Uri;
|
|
|
|
import android.text.TextUtils;
|
|
|
|
import android.text.TextUtils;
|
|
|
|
import android.view.LayoutInflater;
|
|
|
|
import android.view.LayoutInflater;
|
|
|
@ -45,6 +46,7 @@ public class GCalControlSet implements TaskEditControlSet {
|
|
|
|
|
|
|
|
|
|
|
|
private Uri calendarUri = null;
|
|
|
|
private Uri calendarUri = null;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private Task myTask;
|
|
|
|
private final CalendarResult calendars;
|
|
|
|
private final CalendarResult calendars;
|
|
|
|
private final CheckBox addToCalendar;
|
|
|
|
private final CheckBox addToCalendar;
|
|
|
|
private final Spinner calendarSelector;
|
|
|
|
private final Spinner calendarSelector;
|
|
|
@ -72,11 +74,31 @@ public class GCalControlSet implements TaskEditControlSet {
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
viewCalendarEvent.setOnClickListener(new OnClickListener() {
|
|
|
|
viewCalendarEvent.setOnClickListener(new OnClickListener() {
|
|
|
|
|
|
|
|
@SuppressWarnings("nls")
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void onClick(View v) {
|
|
|
|
public void onClick(View v) {
|
|
|
|
if(calendarUri == null)
|
|
|
|
if(calendarUri == null)
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ContentResolver cr = activity.getContentResolver();
|
|
|
|
|
|
|
|
Cursor cursor = cr.query(calendarUri, new String[] { "dtstart", "dtend" },
|
|
|
|
|
|
|
|
null, null, null);
|
|
|
|
|
|
|
|
|
|
|
|
Intent intent = new Intent(Intent.ACTION_EDIT, calendarUri);
|
|
|
|
Intent intent = new Intent(Intent.ACTION_EDIT, calendarUri);
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
if(cursor.getCount() == 0) {
|
|
|
|
|
|
|
|
// event no longer exists, recreate it
|
|
|
|
|
|
|
|
calendarUri = null;
|
|
|
|
|
|
|
|
writeToModel(myTask);
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
cursor.moveToFirst();
|
|
|
|
|
|
|
|
intent.putExtra("beginTime", cursor.getLong(0));
|
|
|
|
|
|
|
|
intent.putExtra("endTime", cursor.getLong(1));
|
|
|
|
|
|
|
|
} finally {
|
|
|
|
|
|
|
|
cursor.close();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
activity.startActivity(intent);
|
|
|
|
activity.startActivity(intent);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
@ -84,6 +106,7 @@ public class GCalControlSet implements TaskEditControlSet {
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void readFromTask(Task task) {
|
|
|
|
public void readFromTask(Task task) {
|
|
|
|
|
|
|
|
this.myTask = task;
|
|
|
|
String uri = task.getValue(Task.CALENDAR_URI);
|
|
|
|
String uri = task.getValue(Task.CALENDAR_URI);
|
|
|
|
if(!TextUtils.isEmpty(uri)) {
|
|
|
|
if(!TextUtils.isEmpty(uri)) {
|
|
|
|
try {
|
|
|
|
try {
|
|
|
@ -118,20 +141,7 @@ public class GCalControlSet implements TaskEditControlSet {
|
|
|
|
values.put("transparency", 0);
|
|
|
|
values.put("transparency", 0);
|
|
|
|
values.put("visibility", 0);
|
|
|
|
values.put("visibility", 0);
|
|
|
|
|
|
|
|
|
|
|
|
long dueDate = task.getValue(Task.DUE_DATE);
|
|
|
|
createStartAndEndDate(task, values);
|
|
|
|
if(task.hasDueDate()) {
|
|
|
|
|
|
|
|
if(task.hasDueTime()) {
|
|
|
|
|
|
|
|
int estimatedTime = task.getValue(Task.ESTIMATED_SECONDS);
|
|
|
|
|
|
|
|
if(estimatedTime <= 0)
|
|
|
|
|
|
|
|
estimatedTime = DEFAULT_CAL_TIME;
|
|
|
|
|
|
|
|
values.put("dtstart", dueDate - estimatedTime);
|
|
|
|
|
|
|
|
values.put("dtend", dueDate);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
values.put("dtstart", dueDate);
|
|
|
|
|
|
|
|
values.put("dtend", dueDate);
|
|
|
|
|
|
|
|
values.put("allDay", "1");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
calendarUri = cr.insert(uri, values);
|
|
|
|
calendarUri = cr.insert(uri, values);
|
|
|
|
task.setValue(Task.CALENDAR_URI, calendarUri.toString());
|
|
|
|
task.setValue(Task.CALENDAR_URI, calendarUri.toString());
|
|
|
@ -147,4 +157,21 @@ public class GCalControlSet implements TaskEditControlSet {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void createStartAndEndDate(Task task, ContentValues values) {
|
|
|
|
|
|
|
|
long dueDate = task.getValue(Task.DUE_DATE);
|
|
|
|
|
|
|
|
if(task.hasDueDate()) {
|
|
|
|
|
|
|
|
if(task.hasDueTime()) {
|
|
|
|
|
|
|
|
int estimatedTime = task.getValue(Task.ESTIMATED_SECONDS);
|
|
|
|
|
|
|
|
if(estimatedTime <= 0)
|
|
|
|
|
|
|
|
estimatedTime = DEFAULT_CAL_TIME;
|
|
|
|
|
|
|
|
values.put("dtstart", dueDate - estimatedTime);
|
|
|
|
|
|
|
|
values.put("dtend", dueDate);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
values.put("dtstart", dueDate);
|
|
|
|
|
|
|
|
values.put("dtend", dueDate);
|
|
|
|
|
|
|
|
values.put("allDay", "1");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|