Move add alarm to task edit view model

pull/1952/head
Alex Baker 3 years ago
parent 738c345275
commit 3163150e8f

@ -80,11 +80,11 @@ class ReminderControlSet : TaskEditControlFragment() {
val id = viewModel.task.id val id = viewModel.task.id
when (selected) { when (selected) {
getString(R.string.when_started) -> getString(R.string.when_started) ->
addAlarmRow(whenStarted(id)) viewModel.addAlarm(whenStarted(id))
getString(R.string.when_due) -> getString(R.string.when_due) ->
addAlarmRow(whenDue(id)) viewModel.addAlarm(whenDue(id))
getString(R.string.when_overdue) -> getString(R.string.when_overdue) ->
addAlarmRow(whenOverdue(id)) viewModel.addAlarm(whenOverdue(id))
getString(R.string.randomly) -> getString(R.string.randomly) ->
vm.showRandomDialog(visible = true) vm.showRandomDialog(visible = true)
getString(R.string.pick_a_date_and_time) -> getString(R.string.pick_a_date_and_time) ->
@ -132,7 +132,7 @@ class ReminderControlSet : TaskEditControlFragment() {
}, },
ringMode = ringMode, ringMode = ringMode,
newAlarm = this@ReminderControlSet::addAlarm, newAlarm = this@ReminderControlSet::addAlarm,
addAlarm = this@ReminderControlSet::addAlarmRow, addAlarm = viewModel::addAlarm,
openRingType = this@ReminderControlSet::onClickRingType, openRingType = this@ReminderControlSet::onClickRingType,
deleteAlarm = { deleteAlarm = {
viewModel.selectedAlarms.value = viewModel.selectedAlarms.value.minus(it) viewModel.selectedAlarms.value = viewModel.selectedAlarms.value.minus(it)
@ -148,21 +148,13 @@ class ReminderControlSet : TaskEditControlFragment() {
if (requestCode == REQUEST_NEW_ALARM) { if (requestCode == REQUEST_NEW_ALARM) {
if (resultCode == Activity.RESULT_OK) { if (resultCode == Activity.RESULT_OK) {
val timestamp = data!!.getLongExtra(MyTimePickerDialog.EXTRA_TIMESTAMP, 0L) val timestamp = data!!.getLongExtra(MyTimePickerDialog.EXTRA_TIMESTAMP, 0L)
addAlarmRow(Alarm(0, timestamp, TYPE_DATE_TIME)) viewModel.addAlarm(Alarm(0, timestamp, TYPE_DATE_TIME))
} }
} else { } else {
super.onActivityResult(requestCode, resultCode, data) super.onActivityResult(requestCode, resultCode, data)
} }
} }
private fun addAlarmRow(alarm: Alarm) {
with (viewModel.selectedAlarms) {
if (value.none { it.same(alarm) }) {
value = value.plus(alarm)
}
}
}
private fun addNewAlarm() { private fun addNewAlarm() {
val intent = Intent(activity, DateAndTimePickerActivity::class.java) val intent = Intent(activity, DateAndTimePickerActivity::class.java)
.putExtra( .putExtra(

@ -380,6 +380,14 @@ class TaskEditViewModel @Inject constructor(
} }
} }
fun addAlarm(alarm: Alarm) {
with (selectedAlarms) {
if (value.none { it.same(alarm) }) {
value = value.plus(alarm)
}
}
}
companion object { companion object {
fun String?.stripCarriageReturns(): String? = this?.replace("\\r\\n?".toRegex(), "\n") fun String?.stripCarriageReturns(): String? = this?.replace("\\r\\n?".toRegex(), "\n")
} }

Loading…
Cancel
Save