feat(video_calls): added more logs for sentry

This commit is contained in:
misha
2026-06-16 21:11:45 +03:00
parent 367753d409
commit 895443e747
3 changed files with 81 additions and 11 deletions

View File

@@ -136,6 +136,7 @@ class VideoCallCallKitCoordinator {
Future<void> _onCallKitEvent(CallEvent? event) async {
if (event == null) return;
unawaited(_captureCallKitEventToSentry(event));
switch (event) {
case CallEventActionDidUpdateDevicePushTokenVoip():
@@ -157,6 +158,42 @@ class VideoCallCallKitCoordinator {
}
}
Future<void> _captureCallKitEventToSentry(CallEvent event) async {
if (!Platform.isIOS) return;
final context = <String, Object?>{
'eventName': event.eventName,
'eventType': event.runtimeType.toString(),
};
switch (event) {
case CallEventActionCallIncoming(:final callKitParams):
context.addAll({
'id': callKitParams.id,
'handle': callKitParams.handle,
'nameCaller': callKitParams.nameCaller,
'isAccepted': callKitParams.isAccepted,
'extra': callKitParams.extra?.toString(),
});
case CallEventActionCallAccept(:final id):
case CallEventActionCallCallback(:final id):
case CallEventActionCallDecline(:final id):
case CallEventActionCallEnded(:final id):
case CallEventActionCallTimeout(:final id):
context['id'] = id;
default:
break;
}
await Sentry.captureMessage(
'iOS CallKit event: ${event.runtimeType}',
level: SentryLevel.info,
withScope: (scope) {
scope.setTag('origin', 'iOS CallKit');
scope.setTag('callkit_event', event.runtimeType.toString());
scope.setContexts('callkit_event', context);
},
);
}
void _cacheCallKitParams(CallKitParams params) {
_callKitParamsById[params.id] = params;
_activeCallKitId = params.id;