initialize method

  1. @override
Future<void> initialize(
  1. BuildContext context, {
  2. IFastErrorReporter? errorReporter,
})
override

Implementation

@override
Future<void> initialize(
  BuildContext context, {
  IFastErrorReporter? errorReporter,
}) async {
  if (isWeb || isMacOS) return;

  _logger.debug('Initializing...');

  final adInfoBloc = FastAdInfoBloc.instance;
  FastAdInfo adInfo = adInfoBloc.currentState.adInfo;

  if (delegate != null) {
    adInfo = await delegate!.onGetAdInformationModel(context);
  }

  adInfo.debug(debugLabel: 'AdInfo');

  adInfoBloc.addEvent(FastAdInfoBlocEvent.init(adInfo: adInfo));

  await adInfoBloc.onData.firstWhere((state) => state.isInitialized);

  final response = await RaceStream([
    adInfoBloc.onError,
    adInfoBloc.onData.where((FastAdInfoBlocState state) {
      return state.isInitialized;
    }),
  ]).first;

  if (response is! FastAdInfoBlocState) {
    _logger.error('Failed to initialize: $response');
    throw response;
  }

  _logger.debug('Initialized');
}