//
// H M G P l a t f o r m B r i d g e . s w i f t
// R u n n e r
//
// C r e a t e d b y Z i K a m b r a n i o n 1 4 / 1 2 / 2 0 2 0 .
//
import UIKit
import NetworkExtension
import SystemConfiguration . CaptiveNetwork
fileprivate var openTok : OpenTok ?
class OpenTokPlatformBridge : NSObject {
private var methodChannel : FlutterMethodChannel ? = nil
private var mainViewController : MainFlutterVC !
private static var shared_ : OpenTokPlatformBridge ?
class func initialize ( flutterViewController : MainFlutterVC , registrar : FlutterPluginRegistrar ? ) {
shared_ = OpenTokPlatformBridge ( )
shared_ ? . mainViewController = flutterViewController
shared_ ? . openChannel ( )
openTok = OpenTok ( mainViewController : flutterViewController , registrar : registrar )
}
func shared ( ) -> OpenTokPlatformBridge {
assert ( ( OpenTokPlatformBridge . shared_ != nil ) , " OpenTokPlatformBridge is not initialized, call initialize(mainViewController:MainFlutterVC) function first. " )
return OpenTokPlatformBridge . shared_ !
}
private func openChannel ( ) {
methodChannel = FlutterMethodChannel ( name : " OpenTok-Platform-Bridge " , binaryMessenger : mainViewController . binaryMessenger )
methodChannel ? . setMethodCallHandler { ( call , result ) in
print ( " Called function \( call . method ) " )
switch ( call . method ) {
case " initSession " :
openTok ? . initSession ( call : call , result : result )
case " swapCamera " :
openTok ? . swapCamera ( call : call , result : result )
case " toggleAudio " :
openTok ? . toggleAudio ( call : call , result : result )
case " toggleVideo " :
openTok ? . toggleVideo ( call : call , result : result )
case " hangupCall " :
openTok ? . hangupCall ( call : call , result : result )
default :
result ( FlutterMethodNotImplemented )
}
print ( " " )
}
}
}