GoogleSignInPlugin constructor

GoogleSignInPlugin({
  1. @visibleForTesting bool debugOverrideLoader = false,
  2. @visibleForTesting GisSdkClient? debugOverrideGisSdkClient,
  3. @visibleForTesting StreamController<GoogleSignInUserData?>? debugOverrideUserDataController,
})

Constructs the plugin immediately and begins initializing it in the background.

For tests, the plugin can skip its loading process with debugOverrideLoader, and the implementation of the underlying GIS SDK client through debugOverrideGisSdkClient.

Implementation

GoogleSignInPlugin({
  @visibleForTesting bool debugOverrideLoader = false,
  @visibleForTesting GisSdkClient? debugOverrideGisSdkClient,
  @visibleForTesting
  StreamController<GoogleSignInUserData?>? debugOverrideUserDataController,
})  : _gisSdkClient = debugOverrideGisSdkClient,
      _userDataController = debugOverrideUserDataController ??
          StreamController<GoogleSignInUserData?>.broadcast() {
  autoDetectedClientId = web.document
      .querySelector(clientIdMetaSelector)
      ?.getAttribute(clientIdAttributeName);

  _registerButtonFactory();

  if (debugOverrideLoader) {
    _jsSdkLoadedFuture = Future<bool>.value(true);
  } else {
    _jsSdkLoadedFuture = loader.loadWebSdk();
  }
}