diff --git a/api/src/com/todoroo/astrid/data/Task.java b/api/src/com/todoroo/astrid/data/Task.java index a8df87e6a..4335b9bf8 100644 --- a/api/src/com/todoroo/astrid/data/Task.java +++ b/api/src/com/todoroo/astrid/data/Task.java @@ -428,7 +428,7 @@ public final class Task extends RemoteModel { return date; Date hideUntil = new Date(date / 1000L * 1000L); // get rid of millis - if(setting != HIDE_UNTIL_SPECIFIC_DAY_TIME) { + if(setting != HIDE_UNTIL_SPECIFIC_DAY_TIME && !(setting == HIDE_UNTIL_DUE && this.hasDueTime())) { hideUntil.setHours(0); hideUntil.setMinutes(0); hideUntil.setSeconds(0); diff --git a/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java b/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java index a4156b4cc..38fe99a3c 100755 --- a/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java @@ -377,7 +377,8 @@ public final class TaskEditActivity extends TabActivity { R.id.reminder_due, R.id.reminder_overdue, R.id.reminder_alarm)); controls.add(new RandomReminderControlSet(TaskEditActivity.this, R.id.reminder_random, R.id.reminder_random_interval)); - controls.add(new HideUntilControlSet(TaskEditActivity.this, R.id.hideUntil)); + HideUntilControlSet hideUntilControls = new HideUntilControlSet(TaskEditActivity.this, R.id.hideUntil); + controls.add(hideUntilControls); controls.add(peopleControlSet = new EditPeopleControlSet( TaskEditActivity.this, REQUEST_LOG_IN)); @@ -385,6 +386,9 @@ public final class TaskEditActivity extends TabActivity { synchronized(controls) { for(TaskEditControlSet controlSet : controls) controlSet.readFromTask(model); + if (isNewTask) { + hideUntilControls.setDefaults(); + } } } diff --git a/astrid/src/com/todoroo/astrid/ui/HideUntilControlSet.java b/astrid/src/com/todoroo/astrid/ui/HideUntilControlSet.java index 50dc0cedf..4060bb7da 100644 --- a/astrid/src/com/todoroo/astrid/ui/HideUntilControlSet.java +++ b/astrid/src/com/todoroo/astrid/ui/HideUntilControlSet.java @@ -15,6 +15,7 @@ import android.widget.TimePicker; import com.timsu.astrid.R; import com.todoroo.andlib.utility.DateUtilities; +import com.todoroo.andlib.utility.Preferences; import com.todoroo.astrid.activity.TaskEditActivity.TaskEditControlSet; import com.todoroo.astrid.data.Task; import com.todoroo.astrid.ui.DeadlineTimePickerDialog.OnDeadlineTimeSetListener; @@ -203,20 +204,30 @@ public class HideUntilControlSet implements TaskEditControlSet, // --- setting up values + public void setDefaults() { + int setting = Preferences.getIntegerFromString(R.string.p_default_hideUntil_key, + Task.HIDE_UNTIL_NONE); + spinner.setSelection(setting); + } + @Override public void readFromTask(Task task) { long date = task.getValue(Task.HIDE_UNTIL); Date dueDay = new Date(task.getValue(Task.DUE_DATE)/1000L*1000L); + dueDay.setHours(0); dueDay.setMinutes(0); dueDay.setSeconds(0); + // For the hide until due case, we need the time component + long dueTime = task.hasDueTime() ? task.getValue(Task.DUE_DATE)/1000L*1000L : dueDay.getTime(); + int selection = 0; if(date == 0) { selection = 0; date = 0; - } else if(date == dueDay.getTime()) { + } else if(date == dueTime) { selection = 1; date = 0; } else if(date + DateUtilities.ONE_DAY == dueDay.getTime()) {