diff --git a/src/main/java/com/todoroo/astrid/data/Task.java b/src/main/java/com/todoroo/astrid/data/Task.java index 72a479cf8..592c025f5 100644 --- a/src/main/java/com/todoroo/astrid/data/Task.java +++ b/src/main/java/com/todoroo/astrid/data/Task.java @@ -18,12 +18,14 @@ import com.todoroo.andlib.data.Table; import com.todoroo.andlib.data.TodorooCursor; import com.todoroo.andlib.utility.DateUtilities; +import org.joda.time.DateTime; import org.tasks.BuildConfig; import org.tasks.R; import java.util.Date; import static org.tasks.date.DateTimeUtils.newDate; +import static org.tasks.date.DateTimeUtils.newDateTime; /** * Data Model which represents a task users need to accomplish. @@ -314,15 +316,16 @@ public class Task extends RemoteModel { return date; } - Date dueDate = newDate(date / 1000L * 1000L); // get rid of millis + DateTime dueDate = newDateTime(date).withMillisOfSecond(0); if(setting != URGENCY_SPECIFIC_DAY_TIME) { - dueDate.setHours(12); - dueDate.setMinutes(0); - dueDate.setSeconds(0); // Seconds == 0 means no due time + dueDate = dueDate + .withHourOfDay(12) + .withMinuteOfHour(0) + .withSecondOfMinute(0); // Seconds == 0 means no due time } else { - dueDate.setSeconds(1); // Seconds > 0 means due time exists + dueDate = dueDate.withSecondOfMinute(1); // Seconds > 0 means due time exists } - return dueDate.getTime(); + return dueDate.getMillis(); } /** diff --git a/src/main/java/org/tasks/ui/DeadlineControlSet.java b/src/main/java/org/tasks/ui/DeadlineControlSet.java index 372ab0b20..f1838e5f2 100644 --- a/src/main/java/org/tasks/ui/DeadlineControlSet.java +++ b/src/main/java/org/tasks/ui/DeadlineControlSet.java @@ -423,18 +423,13 @@ public class DeadlineControlSet extends TaskEditControlSetBase { @Override protected void writeToModelAfterInitialized(Task task) { - DateTime dateTime = newDateTime(date); - if (time >= 0) { - dateTime = dateTime - .withMillisOfDay(time) - .withSecondOfMinute(1) - .withMillisOfSecond(0); - } - long millis = dateTime.getMillis(); - if (millis != task.getDueDate()) { + long dueDate = time >= 0 + ? Task.createDueDate(Task.URGENCY_SPECIFIC_DAY_TIME, newDateTime(date).withMillisOfDay(time).getMillis()) + : Task.createDueDate(Task.URGENCY_SPECIFIC_DAY, date); + if (dueDate != task.getDueDate()) { task.setReminderSnooze(0L); } - task.setDueDate(millis); + task.setDueDate(dueDate); } @Override