diff --git a/astrid/plugin-src/com/todoroo/astrid/backup/BackupDateUtilities.java b/astrid/plugin-src/com/todoroo/astrid/backup/BackupDateUtilities.java index 2bd8de801..86c511de1 100644 --- a/astrid/plugin-src/com/todoroo/astrid/backup/BackupDateUtilities.java +++ b/astrid/plugin-src/com/todoroo/astrid/backup/BackupDateUtilities.java @@ -64,6 +64,20 @@ public class BackupDateUtilities { } } + public static Date getTaskDueDateFromIso8601String(String s) { + System.err.println("Importing date string: " + s); + Date date = getDateFromIso8601String(s); + System.err.println("Got date: " + date); + if (date != null) { + if (date.getHours() == 23 && date.getMinutes() == 59 && date.getSeconds() == 59) { + date.setHours(12); + date.setMinutes(0); + date.setSeconds(0); + } + } + return date; + } + /** * Get current date and time as a string. Used for naming backup files. */ diff --git a/astrid/plugin-src/com/todoroo/astrid/backup/TasksXmlImporter.java b/astrid/plugin-src/com/todoroo/astrid/backup/TasksXmlImporter.java index b805d1617..71a672ac3 100644 --- a/astrid/plugin-src/com/todoroo/astrid/backup/TasksXmlImporter.java +++ b/astrid/plugin-src/com/todoroo/astrid/backup/TasksXmlImporter.java @@ -260,6 +260,7 @@ public class TasksXmlImporter { // else, make a new task model and add away. deserializeModel(currentTask, Task.PROPERTIES); + adjustDueDateScheme(currentTask); currentTask.setId(Task.NO_ID); // Save the task to the database. @@ -267,6 +268,19 @@ public class TasksXmlImporter { importCount++; } + 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); + } + model.setValue(Task.DUE_DATE, date.getTime()); + } + } + private void parseMetadata() { if(!currentTask.isSaved()) return; @@ -521,7 +535,7 @@ public class TasksXmlImporter { preferredDate); } task.setValue(Task.DUE_DATE, - BackupDateUtilities.getDateFromIso8601String(value).getTime()); + BackupDateUtilities.getTaskDueDateFromIso8601String(value).getTime()); } else if(field.equals(LegacyTaskModel.PREFERRED_DUE_DATE)) { String definite = xpp.getAttributeValue(null, LegacyTaskModel.DEFINITE_DUE_DATE); @@ -529,7 +543,7 @@ public class TasksXmlImporter { ; // handled above else task.setValue(Task.DUE_DATE, - BackupDateUtilities.getDateFromIso8601String(value).getTime()); + BackupDateUtilities.getTaskDueDateFromIso8601String(value).getTime()); } else if(field.equals(LegacyTaskModel.HIDDEN_UNTIL)) { task.setValue(Task.HIDE_UNTIL,