public Connection connect()

in todoapp/app/src/main/java/com/example/android/architecture/blueprints/todoapp/taskdetail/view/TaskDetailViews.java [102:134]


  public Connection<TaskDetailViewData> connect(Consumer<TaskDetailEvent> output) {
    mFab.setOnClickListener(__ -> output.accept(TaskDetailEvent.editTaskRequested()));

    mDetailCompleteStatus.setOnCheckedChangeListener(
        (buttonView, isChecked) -> {
          if (isChecked) {
            output.accept(completeTaskRequested());
          } else {
            output.accept(activateTaskRequested());
          }
        });

    Disposable disposable =
        mMenuEvents
            .retry()
            .subscribe(
                output::accept,
                t -> Log.e(TaskDetailViews.class.getSimpleName(), "Menu events seem to fail", t));

    return new Connection<TaskDetailViewData>() {
      @Override
      public void accept(TaskDetailViewData value) {
        render(value);
      }

      @Override
      public void dispose() {
        disposable.dispose();
        mFab.setOnClickListener(null);
        mDetailCompleteStatus.setOnCheckedChangeListener(null);
      }
    };
  }