trackEvent method
Track a telemetry event (via analytics event type)
Implementation
Future<void> trackEvent({
required int eventType,
Map<String, dynamic>? data,
}) async {
if (!_isInitialized || _managerPtr == null) return;
try {
final lib = PlatformLoader.loadCommons();
final trackAnalytics = lib.lookupFunction<
Int32 Function(
Pointer<Void>, Int32, Pointer<RacAnalyticsEventDataStruct>),
int Function(
Pointer<Void>, int, Pointer<RacAnalyticsEventDataStruct>)>(
'rac_telemetry_manager_track_analytics');
// Build event data struct
final eventData = calloc<RacAnalyticsEventDataStruct>();
_populateEventData(eventData, data);
try {
final result = trackAnalytics(_managerPtr!, eventType, eventData);
if (result != RacResultCode.success) {
_logger.debug('Track event failed', metadata: {'code': result});
}
} finally {
_freeEventData(eventData);
calloc.free(eventData);
}
} catch (e) {
_logger.debug('trackEvent error: $e');
}
}