private static Next onTaskDefinitionCompleted()

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())))));
  }