Implementation
@override
Stream<NativeAction> get actions => _actions ??= FlutterCallkitIncoming.onEvent
.map<NativeAction?>((event) => switch (event) {
CallEventActionCallAccept(:final callKitParams) => _action(NativeActionType.accept, callKitParams),
CallEventActionCallDecline(:final callKitParams) => _action(NativeActionType.decline, callKitParams),
CallEventActionCallEnded(:final callKitParams) => _action(NativeActionType.ended, callKitParams),
CallEventActionCallTimeout(:final id) => NativeAction(NativeActionType.timeout, id),
_ => null,
})
.where((a) => a != null)
.cast<NativeAction>()
.asBroadcastStream();