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.ContentValues;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.text.TextUtils;
import android.view.LayoutInflater;
@ -45,6 +46,7 @@ public class GCalControlSet implements TaskEditControlSet {
private Uri calendarUri = null;
private Task myTask;
private final CalendarResult calendars;
private final CheckBox addToCalendar;
private final Spinner calendarSelector;
@ -72,11 +74,31 @@ public class GCalControlSet implements TaskEditControlSet {
});
viewCalendarEvent.setOnClickListener(new OnClickListener() {
@SuppressWarnings("nls")
@Override
public void onClick(View v) {
if(calendarUri == null)
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);
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);
}
});
@ -84,6 +106,7 @@ public class GCalControlSet implements TaskEditControlSet {
@Override
public void readFromTask(Task task) {
this.myTask = task;
String uri = task.getValue(Task.CALENDAR_URI);
if(!TextUtils.isEmpty(uri)) {
try {
@ -118,20 +141,7 @@ public class GCalControlSet implements TaskEditControlSet {
values.put("transparency", 0);
values.put("visibility", 0);
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");
}
}
createStartAndEndDate(task, values);
calendarUri = cr.insert(uri, values);
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
android:id="@+id/calendars"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
android:layout_height="wrap_content"
android:visibility="gone" />
<Button
android:id="@+id/view_calendar_event"

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

@ -20,7 +20,7 @@ public class Preferences {
Editor editor = prefs.edit();
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_hideUntil_key, 0);
setIfUnset(prefs, editor, r, R.string.p_fontSize, 22);

Loading…
Cancel
Save