code: @NonNull
      public IntentServiceTokenController attachIntentServiceTokenController(
              @NonNull Activity activity,
              @NonNull Button button) {
          if (mIntentServiceTokenController == null) {
              mIntentServiceTokenController = new IntentServiceTokenController(
                      activity,
                      button,
                      mCardInputWidget,
                      mErrorDialogHandler,
                      mListViewController,
                      mProgressDialogController);
          }
          return mIntentServiceTokenController;
      }
docs: Attach a listener that creates a token using an {@link android.app.IntentService} and the
  synchronous {@link com.stripe.android.Stripe#createTokenSynchronous(Card, String)} method.
  
  Only gets attached once, unless you call {@link #clearReferences()}.
  
  @param button a button that, when clicked, gets a token.
  @return a reference to the {@link IntentServiceTokenController}