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) return;

  final bloc = FastConnectivityStatusBloc.instance;
  late Object result;

  _logger.debug('Initializing...');
  bloc.addEvent(FastConnectivityStatusBlocEvent.init());

  result = await RaceStream([
    bloc.onError,
    bloc.onData.where((state) => state.isInitialized),
  ]).first;

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

  if (!result.isConnected || !result.isServiceAvailable) {
    _logger.error('No internet connection or service unavailable');
    throw result;
  }

  _logger.debug('Initialized');
}