build method
Implementation
Future<OsmosSDK> build() async {
if (_clientId == null) {
throw OsmosException(
errorCode: OsmosErrorCodes.missingParameter,
details: 'Client ID is required',
);
}
// Use global instance config as fallback if available
final globalConfig = OsmosSDK._sdkInstance?._config;
final config = OsmosConfig(
clientId: _clientId!,
debug: _debugSet ? _debug : (globalConfig?.debug ?? false),
shareAdvertisingId: _shareAdvertisingIdSet ? _shareAdvertisingId : (globalConfig?.shareAdvertisingId ?? true),
displayAdsHost:
_displayAdsHost ?? globalConfig?.displayAdsHost ?? Constants.defaultDisplayAdsHost,
productAdsHost:
_productAdsHost ?? globalConfig?.productAdsHost ?? Constants.defaultProductAdsHost,
eventTrackingHost:
_eventTrackingHost ?? globalConfig?.eventTrackingHost ?? Constants.defaultEventTrackingHost,
enableBatchProcessing: _enableBatchProcessingSet ? _enableBatchProcessing : (globalConfig?.enableBatchProcessing ?? false),
maxEventsPerBatch: _maxEventsPerBatch ?? globalConfig?.maxEventsPerBatch ?? Constants.maxEventsPerBatch,
maxTimeInterval: _maxTimeInterval ?? globalConfig?.maxTimeInterval ?? Constants.maxTimeInterval,
maxRetryCount: _maxRetryCount ?? globalConfig?.maxRetryCount ?? Constants.maxRetryCount
);
await MethodHandler.invokeNativeMethod('build', arguments: config.toMap());
return OsmosSDK._(config);
}