initialize method

Future<void> initialize()

Implementation

Future<void> initialize() async {
  if (_isInitialized) return;

  if (_initCompleter != null) {
    await _initCompleter!.future;
    return;
  }

  _initCompleter = Completer<void>();

  try {
    await _loadPackageInfo();
    await _loadDeviceId();
    _isInitialized = true;
    _logger?.debug(
      this,
      'AppInfoProvider initialized: appName=$_appName, appVersion=$_appVersion, packageName=$_packageName, deviceId=$_deviceId',
    );
  } catch (e, st) {
    _logger?.error(
      this,
      'Failed to initialize AppInfoProvider',
      error: e,
      stackTrace: st,
    );
  } finally {
    _initCompleter!.complete();
  }
}