in todoapp/app/src/main/java/com/example/android/architecture/blueprints/todoapp/taskdetail/effecthandlers/TaskDetailEffectHandlers.java [53:69]
public static ObservableTransformer<TaskDetailEffect, TaskDetailEvent> createEffectHandlers(
TaskDetailViewActions view, Context context, Action dismiss, Consumer<Task> launchEditor) {
TasksRemoteDataSource remoteSource = TasksRemoteDataSource.getInstance();
TasksLocalDataSource localSource =
TasksLocalDataSource.getInstance(context, SchedulerProvider.getInstance());
return RxMobius.<TaskDetailEffect, TaskDetailEvent>subtypeEffectHandler()
.addFunction(DeleteTask.class, deleteTaskHandler(remoteSource, localSource))
.addFunction(SaveTask.class, saveTaskHandler(remoteSource, localSource))
.addAction(NotifyTaskMarkedComplete.class, view::showTaskMarkedComplete, mainThread())
.addAction(NotifyTaskMarkedActive.class, view::showTaskMarkedActive, mainThread())
.addAction(NotifyTaskDeletionFailed.class, view::showTaskDeletionFailed, mainThread())
.addAction(NotifyTaskSaveFailed.class, view::showTaskSavingFailed, mainThread())
.addConsumer(OpenTaskEditor.class, openTaskEditorHandler(launchEditor), mainThread())
.addAction(Exit.class, dismiss, mainThread())
.build();
}