void waitForConfiguration(final ConfigurationListener listener) {
    if (getConfiguration() == null
        && !ConfigurationManager.isFetchingConfiguration()
        && mAuthorization != null) {
      fetchConfiguration();
    }

    postOrQueueCallback(
        new QueuedCallback() {
          @Override
          public boolean shouldRun() {
            return getConfiguration() != null;
          }

          @Override
          public void run() {
            listener.onConfigurationFetched(getConfiguration());
          }
        });
  }