code: @NonNull
      private static Observable<Boolean> activatedClicksObservable(Button button) {
          return Observable.using(
                  () -> {
                      button.setEnabled(true);
                      return button;
                  },
                  aView -> RxView.clicks(aView).map(aVoid -> Boolean.TRUE),
                  aView -> aView.setEnabled(false)
          )
                  .subscribeOn(AndroidSchedulers.mainThread()) // RxView expects to be subscribed on the Main Thread
                  .unsubscribeOn(AndroidSchedulers.mainThread());
      }
docs: Function that returns an observable that emits {@link Boolean#TRUE} every time the button is being clicked. It enables the button
  whenever the returned Observable is being subscribed and disables it when un-subscribed. Takes care of making interactions with
  the button on the proper thread.
  
  @param button the button to wrap into an Observable
  @return the observable