|
|
|
|
@ -35,8 +35,6 @@ class MainAppViewController: FlutterViewController{
|
|
|
|
|
switch call.method {
|
|
|
|
|
case "openVideoCall":
|
|
|
|
|
self.startVideoCall(result: result, call: call)
|
|
|
|
|
case "showVideo":
|
|
|
|
|
self.showVideo()
|
|
|
|
|
default:
|
|
|
|
|
result(FlutterMethodNotImplemented)
|
|
|
|
|
}
|
|
|
|
|
@ -72,8 +70,10 @@ extension MainAppViewController : ICallProtocol{
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private func showVideo(){
|
|
|
|
|
videoCallContainer.isHidden = false
|
|
|
|
|
private func showVideo(show:Bool){
|
|
|
|
|
UIView.transition(with: view, duration: 0.5, options: .transitionCrossDissolve, animations: {
|
|
|
|
|
self.videoCallContainer.isHidden = !show
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private func startVideoCall(result: @escaping FlutterResult, call:FlutterMethodCall) {
|
|
|
|
|
@ -82,17 +82,16 @@ extension MainAppViewController : ICallProtocol{
|
|
|
|
|
if let arguments = call.arguments as? NSDictionary{
|
|
|
|
|
showVideoCallView(true)
|
|
|
|
|
|
|
|
|
|
videoCallViewController.onMinimize = { min in
|
|
|
|
|
self.minimizeVideoCall(min)
|
|
|
|
|
videoCallViewController.onFloat = { min in
|
|
|
|
|
self.floatVideoCallView(min)
|
|
|
|
|
}
|
|
|
|
|
videoCallViewController.onHide = {
|
|
|
|
|
self.videoCallContainer.isHidden = true
|
|
|
|
|
self.videoCallChannel?.invokeMethod("onHide", arguments: nil)
|
|
|
|
|
videoCallViewController.onCallConnect = {
|
|
|
|
|
self.videoCallChannel?.invokeMethod("onCallConnected",arguments: nil)
|
|
|
|
|
}
|
|
|
|
|
videoCallViewController.onVideoDuration = { duration in
|
|
|
|
|
self.videoCallChannel?.invokeMethod("onVideoDuration", arguments: duration)
|
|
|
|
|
videoCallViewController.onCallDisconnect = {
|
|
|
|
|
self.showVideoCallView(false)
|
|
|
|
|
self.videoCallChannel?.invokeMethod("onCallDisconnected",arguments: nil)
|
|
|
|
|
}
|
|
|
|
|
videoCallViewController.onClose = videoCallClosed
|
|
|
|
|
videoCallViewController.callBack = self
|
|
|
|
|
videoCallViewController.start(params: VideoCallRequestParameters(dictionary: arguments))
|
|
|
|
|
}
|
|
|
|
|
@ -100,7 +99,7 @@ extension MainAppViewController : ICallProtocol{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private func minimizeVideoCall(_ value:Bool){
|
|
|
|
|
private func floatVideoCallView(_ value:Bool){
|
|
|
|
|
videoCallContainer.enable(value)
|
|
|
|
|
|
|
|
|
|
UIView.animate(withDuration: 0.5) {
|
|
|
|
|
@ -119,20 +118,11 @@ extension MainAppViewController : ICallProtocol{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private func showVideoCallView(_ value:Bool){
|
|
|
|
|
videoCallContainer.alpha = value ? 0.0 : 1
|
|
|
|
|
self.videoCallContainer.isHidden = !value
|
|
|
|
|
|
|
|
|
|
UIView.animate(withDuration: 0.5) {
|
|
|
|
|
self.videoCallContainer.alpha = value ? 1.0 : 0.0
|
|
|
|
|
} completion: { complete in
|
|
|
|
|
self.videoCallContainer.isHidden = !value
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private func videoCallClosed(){
|
|
|
|
|
showVideoCallView(false)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func sessionDone(res: Any) {
|
|
|
|
|
videoCallFlutterResult?(res)
|
|
|
|
|
}
|
|
|
|
|
@ -144,7 +134,6 @@ extension MainAppViewController : ICallProtocol{
|
|
|
|
|
|
|
|
|
|
func setVideoViewConstrints(){
|
|
|
|
|
let screen = UIScreen.main.bounds
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
videoCallContainer.translatesAutoresizingMaskIntoConstraints = false
|
|
|
|
|
|
|
|
|
|
|