diff --git a/app/src/main/java/com/todoroo/astrid/ui/StartDateControlSet.kt b/app/src/main/java/com/todoroo/astrid/ui/StartDateControlSet.kt index 725bbab49..4189dc4af 100644 --- a/app/src/main/java/com/todoroo/astrid/ui/StartDateControlSet.kt +++ b/app/src/main/java/com/todoroo/astrid/ui/StartDateControlSet.kt @@ -73,10 +73,11 @@ class StartDateControlSet : TaskEditControlFragment() { REQUEST_START_DATE, vm.selectedDay.value, vm.selectedTime.value, - preferences.getBoolean( + autoClose = preferences.getBoolean( R.string.p_auto_dismiss_datetime_edit_screen, false - ) + ), + showDueDate = !viewModel.viewState.value.list.account.isOpenTasks, ) .show(fragmentManager, FRAG_TAG_DATE_PICKER) } diff --git a/app/src/main/java/org/tasks/compose/pickers/DatePickerShortcuts.kt b/app/src/main/java/org/tasks/compose/pickers/DatePickerShortcuts.kt index c933b0506..1b74c8751 100644 --- a/app/src/main/java/org/tasks/compose/pickers/DatePickerShortcuts.kt +++ b/app/src/main/java/org/tasks/compose/pickers/DatePickerShortcuts.kt @@ -96,6 +96,7 @@ fun StartDateShortcuts( selected: Long, selectedDay: (Long) -> Unit, selectedDayTime: (Long, Int) -> Unit, + showDueDate: Boolean, clearDate: () -> Unit, ) { var custom by remember { mutableLongStateOf(0) } @@ -128,12 +129,14 @@ fun StartDateShortcuts( onClick = { selectedDay(custom) }, ) } - ShortcutButton( - icon = Icons.Outlined.Today, - text = stringResource(R.string.due_date), - selected = selected == DUE_DATE, - onClick = { selectedDay(DUE_DATE) }, - ) + if (showDueDate) { + ShortcutButton( + icon = Icons.Outlined.Today, + text = stringResource(R.string.due_date), + selected = selected == DUE_DATE, + onClick = { selectedDay(DUE_DATE) }, + ) + } ShortcutButton( icon = Icons.Outlined.Schedule, text = stringResource(R.string.due_time), diff --git a/app/src/main/java/org/tasks/dialogs/StartDatePicker.kt b/app/src/main/java/org/tasks/dialogs/StartDatePicker.kt index 5bc63800d..cf6e030da 100644 --- a/app/src/main/java/org/tasks/dialogs/StartDatePicker.kt +++ b/app/src/main/java/org/tasks/dialogs/StartDatePicker.kt @@ -44,10 +44,14 @@ class StartDatePicker : BaseDateTimePicker() { private var selectedDay by mutableLongStateOf(NO_DAY) private var selectedTime by mutableIntStateOf(NO_TIME) private val today = newDateTime().startOfDay() + private val showDueDate by lazy { + arguments?.getBoolean(EXTRA_SHOW_DUE_DATE) ?: true + } companion object { const val EXTRA_DAY = "extra_day" const val EXTRA_TIME = "extra_time" + const val EXTRA_SHOW_DUE_DATE = "extra_show_due_date" const val NO_DAY = 0L const val NO_TIME = 0 const val DUE_DATE = -1L @@ -55,11 +59,19 @@ class StartDatePicker : BaseDateTimePicker() { const val WEEK_BEFORE_DUE = -3L const val DUE_TIME = -4L - fun newDateTimePicker(target: Fragment, rc: Int, day: Long, time: Int, autoClose: Boolean): StartDatePicker { + fun newDateTimePicker( + target: Fragment, + rc: Int, + day: Long, + time: Int, + autoClose: Boolean, + showDueDate: Boolean, + ): StartDatePicker { val bundle = Bundle() bundle.putLong(EXTRA_DAY, day) bundle.putInt(EXTRA_TIME, time) bundle.putBoolean(EXTRA_AUTO_CLOSE, autoClose) + bundle.putBoolean(EXTRA_SHOW_DUE_DATE, showDueDate) val fragment = StartDatePicker() fragment.arguments = bundle fragment.setTargetFragment(target, rc) @@ -105,6 +117,7 @@ class StartDatePicker : BaseDateTimePicker() { selected = selectedDay, selectedDay = { returnDate(it) }, selectedDayTime = { day, time -> returnDate(day, time) }, + showDueDate = showDueDate, clearDate = { returnDate(day = 0, time = 0) }, ) },