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;
  final rewardedAdBloc = FastRewardedAdBloc.instance;
  final appInfoBloc = FastAppInfoBloc.instance;
  final appInfo = appInfoBloc.currentState;
  final adInfo = adInfoBloc.currentState.adInfo;

  rewardedAdBloc.addEvent(FastRewardedAdBlocEvent.init(
    FastRewardedAdBlocEventPayload(
      country: appInfo.deviceCountryCode,
      adInfo: adInfo,
    ),
  ));

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

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

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

  _logger.debug('Initialized');
}