Read version from backup xml, only apply due date adjustment in this case

pull/14/head
Tim Su 14 years ago
parent e2796db23b
commit df6e08840d

@ -44,6 +44,7 @@ import com.todoroo.astrid.legacy.LegacyRepeatInfo.LegacyRepeatInterval;
import com.todoroo.astrid.legacy.LegacyTaskModel;
import com.todoroo.astrid.service.MetadataService;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.service.UpgradeService;
import com.todoroo.astrid.tags.TagService;
public class TasksXmlImporter {
@ -197,12 +198,21 @@ public class TasksXmlImporter {
private static final String FORMAT2 = "2"; //$NON-NLS-1$
private class Format2TaskImporter {
private int version;
private final XmlPullParser xpp;
private final Task currentTask = new Task();
private final Metadata metadata = new Metadata();
public Format2TaskImporter(XmlPullParser xpp) throws XmlPullParserException, IOException {
this.xpp = xpp;
try {
this.version = Integer.parseInt(xpp.getAttributeValue(null, BackupConstants.ASTRID_ATTR_VERSION));
} catch (NumberFormatException e) {
// can't read version, assume max version
this.version = Integer.MAX_VALUE;
}
while (xpp.next() != XmlPullParser.END_DOCUMENT) {
String tag = xpp.getName();
if (tag == null || xpp.getEventType() == XmlPullParser.END_TAG)
@ -260,7 +270,8 @@ public class TasksXmlImporter {
// else, make a new task model and add away.
deserializeModel(currentTask, Task.PROPERTIES);
adjustDueDateScheme(currentTask);
if(version < UpgradeService.V4_0_6)
adjustDueDateScheme(currentTask);
currentTask.setId(Task.NO_ID);
// Save the task to the database.
@ -270,12 +281,15 @@ public class TasksXmlImporter {
private void adjustDueDateScheme(Task model) {
long dueDate = model.getValue(Task.DUE_DATE);
if (dueDate > 0) {
Date date = new Date(dueDate);
if (date.getHours() == 23 && date.getMinutes() == 59 && date.getSeconds() == 59) {
date.setHours(12);
date.setMinutes(0);
date.setSeconds(0);
} else {
date.setSeconds(1);
}
model.setValue(Task.DUE_DATE, date.getTime());
}

Loading…
Cancel
Save