// import 'dart:convert'; // import 'dart:io'; // // import 'package:flutter/cupertino.dart'; // import 'package:flutter_webrtc/flutter_webrtc.dart'; // import 'package:http/io_client.dart'; // import 'package:signalr_core/signalr_core.dart'; // // class SignalRUtil { // String hubName; // // String sourceUser; // String destinationUser; // setContributors({@required String caller, @required String receiver}){ // this.sourceUser = caller; // this.destinationUser = receiver; // } // // Function(bool) onConnected; // SignalRUtil({@required this.hubName}); // // // HubConnection connectionHub; // // closeConnection() async{ // if(connectionHub != null) { // connectionHub.off('OnIncomingCallAsync'); // connectionHub.off('OnCallDeclinedAsync'); // connectionHub.off('OnCallAcceptedAsync'); // connectionHub.off('nHangUpAsync'); // connectionHub.off('OnIceCandidateAsync'); // connectionHub.off('OnOfferAsync'); // await connectionHub.stop(); // } // } // // Future openConnection() async { // connectionHub = HubConnectionBuilder() // .withUrl( // hubName, // HttpConnectionOptions( // logMessageContent: true, // client: IOClient(HttpClient()..badCertificateCallback = (x, y, z) => true), // logging: (level, message) => print(message), // )).build(); // // await connectionHub.start(); // await Future.delayed(Duration(seconds: 1)); // // connectionHub.on('ReceiveMessage', (message) { // handleIncomingMessage(message); // }); // // return getConnectionState(); // } // // void handleIncomingMessage(List message) { // print(message.toString()); // } // // void sendMessage(List args) async { // await connectionHub.invoke('SendMessage', args: args); //['Bob', 'Says hi!'] // } // // listen({Function(CallUser) onAcceptCall, Function(CallUser) onHangupCall, Function(String, CallUser) onDeclineCall, Function(String, CallUser) onOffer, Function(String) onCandidate}){ // // connectionHub.on('OnIncomingCallAsync', (arguments) { // print('OnIncomingCallAsync: ${arguments.toString()}'); // }); // // connectionHub.on('OnCallDeclinedAsync', (arguments) { // print('OnCallDeclinedAsync: ${arguments.toString()}'); // onDeclineCall(arguments.first, CallUser.from(arguments.last)); // }); // // connectionHub.on('OnCallAcceptedAsync', (arguments) { // print('OnCallAcceptedAsync: ${arguments.toString()}'); // }); // // connectionHub.on('OnHangUpAsync', (arguments) { // print('nHangUpAsync: ${arguments.toString()}'); // onHangupCall(CallUser.from(arguments.first)); // }); // // connectionHub.on('OnIceCandidateAsync', (arguments) { // print('OnIceCandidateAsync: ${arguments.toString()}'); // onCandidate(arguments.first); // }); // // connectionHub.on('OnOfferAsync', (arguments) { // print('OnOfferAsync: ${arguments.toString()}'); // onOffer(arguments.first, CallUser.from(arguments.last)); // }); // // } // // // CallUserAsync(string currentUserId, string targerUserId) // Future callUser(String from, to) async{ // return await connectionHub.invoke('CallUserAsync', args: [from, to]); // } // // // CallDeclinedAsync(string currentUserId, string targerUserId) // Future declineCall(String from, to) async{ // return await connectionHub.invoke('CallDeclinedAsync', args: [from, to]); // } // // // AnswerCallAsync(string currentUserId, string targetUserId) // Future answerCall(String from, to) async{ // return await connectionHub.invoke('AnswerCallAsync', args: [from, to]); // } // // // IceCandidateAsync(string targetUserId, string candidate) // Future addIceCandidate(String candidate) async{ // final target = destinationUser; // return await connectionHub.invoke('IceCandidateAsync', args: [target, candidate]); // } // // // OfferAsync(string targetUserId,string currentUserId, string targetOffer) // Future offer(String from, to, offer) async{ // return await connectionHub.invoke('OfferAsync', args: [from, to, offer]); // } // // // AnswerOfferAsync(string targetUserId, string CallerOffer) // Future answerOffer(RTCSessionDescription answerSdp, caller, receiver) async{ // final payload = { // 'target': receiver, // 'caller': caller, // 'sdp': answerSdp.toMap(), // }; // return await connectionHub.invoke('AnswerOfferAsync', args: [caller, jsonEncode(payload)]); // } // // // HangUpAsync(string currentUserId, string targetUserId) // Future hangupCall(String from, to) async{ // return await connectionHub.invoke('HangUpAsync', args: [from, to]); // } // // // CallAccepted(string currentUserId,string targetUserId) // Future acceptCall(String from, to) async{ // // return await connectionHub.send(methodName: 'CallAccepted', args: [from, to]); // return await connectionHub.invoke("CallAccepted", args: [ from, to]); // } // // // bool getConnectionState() { // if (connectionHub.state == HubConnectionState.connected) return true; // if (connectionHub.state == HubConnectionState.disconnected) return false; // return false; // } // } // // // class CallUser{ // String Id; // String UserName; // String Email; // String Phone; // String Title; // dynamic UserStatus; // String Image; // int UnreadMessageCount = 0; // // CallUser.from(Map map){ // Id = map['Id']; // UserName = map['UserName']; // Email = map['Email']; // Phone = map['Phone']; // Title = map['Title']; // UserStatus = map['UserStatus']; // Image = map['Image']; // UnreadMessageCount = map['UnreadMessageCount']; // } // }