private static Next onCompletedTasksCleared()

in todoapp/app/src/main/java/com/example/android/architecture/blueprints/todoapp/tasks/domain/TasksListLogic.java [123:141]


  private static Next<TasksListModel, TasksListEffect> onCompletedTasksCleared(
      TasksListModel model) {
    ImmutableList<Task> allTasks = checkNotNull(model.tasks());
    List<Task> completedTasks =
        Observable.fromIterable(allTasks)
            .filter(t -> t.details().completed())
            .toList()
            .blockingGet();

    if (completedTasks.isEmpty()) return noChange();

    ArrayList<Task> newTasks = new ArrayList<>(allTasks);
    newTasks.removeAll(completedTasks);
    return next(
        model.withTasks(ImmutableList.copyOf(newTasks)),
        effects(
            deleteTasks(ImmutableList.copyOf(completedTasks)),
            showFeedback(FeedbackType.CLEARED_COMPLETED)));
  }