initialize method
Initialize the AtatusSdk with the provided configuration.
Implementation
// ATCHG - Change params name from DDConfiguration to AtatusConfiguration
Future<void> initialize(
AtatusConfiguration configuration,
TrackingConsent trackingConsent,
) async {
if (_initialized) {
internalLogger
.warn('[ATATUS] initialize() called more than once — ignoring.');
return;
}
_configuration = configuration;
_trackingConsent = trackingConsent;
// First set our SDK verbosity. We can assume WidgetsFlutterBinding has been initialized at this point
await _platform.setSdkVerbosity(internalLogger.sdkVerbosity);
// ATCHG - Change config keys to AtatusConfigKey
configuration.additionalConfig[AtatusConfigKey.source] = 'flutter';
configuration.additionalConfig[AtatusConfigKey.sdkVersion] = sdkVersion;
_setFirstPartyHosts(configuration.firstPartyHostsWithTracingHeaders);
// ATCHG - Pre-initialization agent heartbeat check
final allowed = await _platform.checkAgentHeartbeat(
configuration,
internalLogger: internalLogger,
);
final initialConsent = allowed ? trackingConsent : TrackingConsent.pending;
if (!allowed) {
_agentDisabled = true;
}
// ATCHG - End
await _platform.initialize(
configuration,
initialConsent,
logCallback: _platformLog,
internalLogger: internalLogger,
);
if (configuration.loggingConfiguration != null) {
if (configuration.loggingConfiguration!.serverUrl == null) {
final endpointBase = configuration.serverUrl ??
configuration.site.baseUrlFor(AtatusHostKind.logs);
configuration.loggingConfiguration!.serverUrl =
_buildEndpoint(endpointBase, '/v1/android/logs');
}
_logs = await AtatusLogging.enable(
this,
configuration.loggingConfiguration!,
);
}
if (configuration.rumConfiguration != null) {
if (configuration.rumConfiguration!.serverUrl == null) {
final endpointBase =
configuration.serverUrl ?? configuration.site.endpoint;
configuration.rumConfiguration!.serverUrl =
_buildEndpoint(endpointBase, '/v1/android/rum');
}
_rum = await AtatusRum.enable(this, configuration.rumConfiguration!);
}
_initializePlugins(configuration.additionalPlugins);
_initialized = true;
// ATCHG - Start periodic heartbeat checker
_startPeriodicHeartbeatCheck(configuration);
}