in todoapp/app/src/main/java/com/example/android/architecture/blueprints/todoapp/addedittask/domain/AddEditTaskLogic.java [49:68]
private static Next<AddEditTaskModel, AddEditTaskEffect> onTaskDefinitionCompleted(
AddEditTaskModel model, TaskDefinitionCompleted definitionCompleted) {
String title = definitionCompleted.title().trim();
String description = definitionCompleted.description().trim();
if (isNullOrEmpty(title) && isNullOrEmpty(description)) {
return dispatch(effects(notifyEmptyTaskNotAllowed()));
}
TaskDetails details = model.details().toBuilder().title(title).description(description).build();
AddEditTaskModel newModel = model.withDetails(details);
return newModel
.mode()
.map(
create -> next(newModel, effects(createTask(newModel.details()))),
update ->
next(newModel, effects(saveTask(Task.create(update.id(), newModel.details())))));
}