import 'dart:convert'; import 'dart:io' show Platform; import 'package:doctor_app_flutter/config/config.dart'; import 'package:doctor_app_flutter/models/livecare/session_status_model.dart'; import 'package:flutter/services.dart'; class VideoChannel{ /// channel name static const _channel = const MethodChannel("Dr.cloudSolution/videoCall"); static openVideoCallScreen( {kApiKey, kSessionId, kToken, callDuration, warningDuration,int? vcId,String? tokenID,String? generalId,int? doctorId, Function()? onCallEnd , Function(SessionStatusModel sessionStatusModel)? onCallNotRespond ,Function(String error)? onFailure}) async { var result; try { result = await _channel.invokeMethod( 'openVideoCall', { "kApiKey": kApiKey, "kSessionId": kSessionId, "kToken": kToken, "appLang": "en", "baseUrl": BASE_URL, "VC_ID": vcId, "TokenID": tokenID, "generalId": generalId, "DoctorId": doctorId , }, ); if(result['callResponse'] == 'CallEnd') { onCallEnd!(); } else { SessionStatusModel sessionStatusModel = SessionStatusModel.fromJson(Platform.isIOS ?result['sessionStatus'] :json.decode(result['sessionStatus'])); onCallNotRespond!(sessionStatusModel); } } catch (e) { onFailure!(e.toString()); } } }