                     if globalVideoSetting.isVideoEnabled() && !globalVideoSetting.isSelfViewShow {
                         strongSelf.toggleSendingVideo(strongSelf.sendingVideoSwitch)
                     }
+                    if self?.currentCall?.remoteSendingScreenShare ?? false {
+                        strongSelf.currentCall?.screenShareRenderView = self?.screenShareView
+                        strongSelf.showScreenShareView(true)
+                    }
                 }
                 
             }
             
-        
+            
             /* Callback when this *call* is disconnected (hangup, cancelled, get declined or other self device pickup the call). */
             call.onDisconnected = {[weak self] disconnectionType in
                 if let strongSelf = self {

    var currentCall: Call?
    
    // MARK: - Life cycle
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        switch videoCallRole {
        case .CallReceiver(let remoteAddress):
            self.didAnswerIncomingCall()
            self.setupAvatarView(remoteAddress)
            self.sparkPersonWithEmailString(emailStr: remoteAddress)
        case .CallPoster(let remoteAddress):
            self.didDialWithRemoteAddress(remoteAddress)
            self.setupAvatarView(remoteAddress)
            self.sparkPersonWithEmailString(emailStr: remoteAddress)
        case .RoomCallPoster(let roomId, let roomName):
            self.didDialWithRemoteAddress(roomId)
            self.setupAvatarView(roomName)
        }
    }
    
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        self.updateUIStatus()
        /* SparkSDK: register callback functions for "Callstate" changing */
        self.sparkCallStatesProcess()

        if !globalVideoSetting.isLoudSpeaker {
            self.loudSpeakerSwitch.isOn = false
        }
        /*
         Answers this call.
         This can only be invoked when this call is incoming and in rining status.
         Otherwise error will occur and onError callback will be dispatched.
         */
        self.currentCall?.answer(option: mediaOption) { [weak self] error in
            if let strongSelf = self {
