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