diff --git a/api/src/com/todoroo/andlib/data/AbstractModel.java b/api/src/com/todoroo/andlib/data/AbstractModel.java index a17aa8b23..c833ec3f9 100644 --- a/api/src/com/todoroo/andlib/data/AbstractModel.java +++ b/api/src/com/todoroo/andlib/data/AbstractModel.java @@ -142,7 +142,11 @@ public abstract class AbstractModel implements Parcelable { setValues = null; for (Property property : cursor.getProperties()) { - saver.save(property, values, cursor.get(property)); + try { + saver.save(property, values, cursor.get(property)); + } catch (IllegalArgumentException e) { + // underlying cursor may have changed, suppress + } } } diff --git a/astrid/AndroidManifest.xml b/astrid/AndroidManifest.xml index 7df382662..f7f352f1b 100644 --- a/astrid/AndroidManifest.xml +++ b/astrid/AndroidManifest.xml @@ -1,7 +1,7 @@ diff --git a/astrid/plugin-src/com/todoroo/astrid/backup/TasksXmlExporter.java b/astrid/plugin-src/com/todoroo/astrid/backup/TasksXmlExporter.java index 857defcbd..646cc78f9 100644 --- a/astrid/plugin-src/com/todoroo/astrid/backup/TasksXmlExporter.java +++ b/astrid/plugin-src/com/todoroo/astrid/backup/TasksXmlExporter.java @@ -177,7 +177,7 @@ public class TasksXmlExporter { } } - private void serializeMetadata(Task task) throws IOException { + private synchronized void serializeMetadata(Task task) throws IOException { TodorooCursor cursor = metadataService.query(Query.select( Metadata.PROPERTIES).where(MetadataCriteria.byTask(task.getId()))); try { diff --git a/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksMetadata.java b/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksMetadata.java index 1ec4853af..2cdd3a74d 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksMetadata.java +++ b/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksMetadata.java @@ -5,8 +5,8 @@ import com.todoroo.andlib.data.Property.IntegerProperty; import com.todoroo.andlib.data.Property.LongProperty; import com.todoroo.andlib.data.Property.StringProperty; import com.todoroo.andlib.utility.DateUtilities; -import com.todoroo.astrid.data.Metadata; import com.todoroo.andlib.utility.Preferences; +import com.todoroo.astrid.data.Metadata; /** * Metadata entries for a GTasks Task @@ -49,7 +49,7 @@ public class GtasksMetadata { String defaultList = Preferences.getStringValue(GtasksPreferenceService.PREF_DEFAULT_LIST); if(defaultList == null) - throw new NullPointerException("No default list has been set."); //$NON-NLS-1$ + defaultList = ""; //$NON-NLS-1$ metadata.setValue(LIST_ID, defaultList); metadata.setValue(PARENT_TASK, (long)VALUE_UNSET); diff --git a/astrid/src/com/todoroo/astrid/service/TaskService.java b/astrid/src/com/todoroo/astrid/service/TaskService.java index 1ef6bfc0a..d4bb69700 100644 --- a/astrid/src/com/todoroo/astrid/service/TaskService.java +++ b/astrid/src/com/todoroo/astrid/service/TaskService.java @@ -101,6 +101,8 @@ public class TaskService { */ public Task clone(Task task) { Task newTask = fetchById(task.getId(), Task.PROPERTIES); + if(newTask == null) + return new Task(); newTask.clearValue(Task.ID); taskDao.createNew(newTask); TodorooCursor cursor = metadataDao.query( diff --git a/astrid/src/com/todoroo/astrid/ui/CalendarView.java b/astrid/src/com/todoroo/astrid/ui/CalendarView.java index 3f513b938..ec0018707 100644 --- a/astrid/src/com/todoroo/astrid/ui/CalendarView.java +++ b/astrid/src/com/todoroo/astrid/ui/CalendarView.java @@ -374,7 +374,7 @@ public class CalendarView extends View { currentHighlightDay = calendar.get(Calendar.DATE); this.invalidate(); // Handle left-right arrow click -- end - } else { + } else if(dayLeftArr != null) { // Check if clicked on date for (int i=0; i dayLeftArr[i] && x < dayLeftArr[i]+boxWidth) && (y > dayTopArr[i] && y < dayTopArr[i] + boxHeight)) {