Fix for opening existing calendar event not quite working, also bug with random reminders

pull/14/head
Tim Su 14 years ago
parent 1af6202dcd
commit dab5eeade0

@ -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");
}
}
}
} }

@ -23,7 +23,8 @@
<Spinner <Spinner
android:id="@+id/calendars" android:id="@+id/calendars"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" /> android:layout_height="wrap_content"
android:visibility="gone" />
<Button <Button
android:id="@+id/view_calendar_event" android:id="@+id/view_calendar_event"

@ -27,8 +27,8 @@ import java.util.List;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.DatePickerDialog; import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.TabActivity; import android.app.TabActivity;
import android.app.DatePickerDialog.OnDateSetListener;
import android.content.BroadcastReceiver; import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
@ -42,7 +42,6 @@ import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.ViewGroup.LayoutParams; import android.view.ViewGroup.LayoutParams;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter; import android.widget.ArrayAdapter;
import android.widget.CheckBox; import android.widget.CheckBox;
import android.widget.CompoundButton; import android.widget.CompoundButton;
@ -56,6 +55,7 @@ import android.widget.TabHost;
import android.widget.TimePicker; import android.widget.TimePicker;
import android.widget.Toast; import android.widget.Toast;
import android.widget.ToggleButton; import android.widget.ToggleButton;
import android.widget.AdapterView.OnItemSelectedListener;
import com.flurry.android.FlurryAgent; import com.flurry.android.FlurryAgent;
import com.timsu.astrid.R; import com.timsu.astrid.R;
@ -1119,7 +1119,7 @@ public final class TaskEditActivity extends TabActivity {
boolean shouldDisable = time <= 0; boolean shouldDisable = time <= 0;
if(time <= 0) { if(time <= 0) {
time = DateUtilities.ONE_WEEK; time = DateUtilities.ONE_HOUR * 730;
} }
int i; int i;

@ -20,7 +20,7 @@ public class Preferences {
Editor editor = prefs.edit(); Editor editor = prefs.edit();
Resources r = context.getResources(); Resources r = context.getResources();
setIfUnset(prefs, editor, r, R.string.p_default_urgency_key, 4); setIfUnset(prefs, editor, r, R.string.p_default_urgency_key, 0);
setIfUnset(prefs, editor, r, R.string.p_default_importance_key, 2); setIfUnset(prefs, editor, r, R.string.p_default_importance_key, 2);
setIfUnset(prefs, editor, r, R.string.p_default_hideUntil_key, 0); setIfUnset(prefs, editor, r, R.string.p_default_hideUntil_key, 0);
setIfUnset(prefs, editor, r, R.string.p_fontSize, 22); setIfUnset(prefs, editor, r, R.string.p_fontSize, 22);

Loading…
Cancel
Save