Merge branch 'charlesmchen/webrtc/reworkVideoControls' into feature/webrtc

pull/1/head
Matthew Chen 8 years ago
commit 410d5fbf7f

@ -73,7 +73,7 @@ class CallViewController: UIViewController, CallObserver, CallServiceObserver, R
var remoteVideoConstraints: [NSLayoutConstraint] = [] var remoteVideoConstraints: [NSLayoutConstraint] = []
var localVideoConstraints: [NSLayoutConstraint] = [] var localVideoConstraints: [NSLayoutConstraint] = []
var areRemoteVideoControlsHidden = false { var shouldRemoteVideoControlsBeHidden = false {
didSet { didSet {
updateCallUI(callState: call.state) updateCallUI(callState: call.state)
} }
@ -164,7 +164,7 @@ class CallViewController: UIViewController, CallObserver, CallServiceObserver, R
func didTouchRootView(sender: UIGestureRecognizer) { func didTouchRootView(sender: UIGestureRecognizer) {
if !remoteVideoView.isHidden { if !remoteVideoView.isHidden {
areRemoteVideoControlsHidden = !areRemoteVideoControlsHidden shouldRemoteVideoControlsBeHidden = !shouldRemoteVideoControlsBeHidden
} }
} }
@ -458,6 +458,7 @@ class CallViewController: UIViewController, CallObserver, CallServiceObserver, R
} }
self.localVideoConstraints = constraints self.localVideoConstraints = constraints
updateCallUI(callState: call.state)
} }
// MARK: - Methods // MARK: - Methods
@ -546,15 +547,20 @@ class CallViewController: UIViewController, CallObserver, CallServiceObserver, R
ongoingCallView.isUserInteractionEnabled = !isRinging ongoingCallView.isUserInteractionEnabled = !isRinging
// Rework control state if remote video is available. // Rework control state if remote video is available.
contactAvatarView.isHidden = !remoteVideoView.isHidden let hasRemoteVideo = !remoteVideoView.isHidden
speakerPhoneButton.isHidden = !remoteVideoView.isHidden contactAvatarView.isHidden = hasRemoteVideo
audioModeMuteButton.isHidden = !remoteVideoView.isHidden
videoModeMuteButton.isHidden = remoteVideoView.isHidden // Rework control state if local video is available.
audioModeVideoButton.isHidden = !remoteVideoView.isHidden let hasLocalVideo = !localVideoView.isHidden
videoModeVideoButton.isHidden = remoteVideoView.isHidden for subview in [speakerPhoneButton, audioModeMuteButton, audioModeVideoButton] {
subview?.isHidden = hasLocalVideo
}
for subview in [videoModeMuteButton, videoModeVideoButton] {
subview?.isHidden = !hasLocalVideo
}
// Also hide other controls if user has tapped to hide them. // Also hide other controls if user has tapped to hide them.
if areRemoteVideoControlsHidden && !remoteVideoView.isHidden { if shouldRemoteVideoControlsBeHidden && !remoteVideoView.isHidden {
contactNameLabel.isHidden = true contactNameLabel.isHidden = true
callStatusLabel.isHidden = true callStatusLabel.isHidden = true
ongoingCallView.isHidden = true ongoingCallView.isHidden = true
@ -736,7 +742,7 @@ class CallViewController: UIViewController, CallObserver, CallServiceObserver, R
remoteVideoView.renderFrame(nil) remoteVideoView.renderFrame(nil)
self.remoteVideoTrack = remoteVideoTrack self.remoteVideoTrack = remoteVideoTrack
self.remoteVideoTrack?.add(remoteVideoView) self.remoteVideoTrack?.add(remoteVideoView)
areRemoteVideoControlsHidden = false shouldRemoteVideoControlsBeHidden = false
if remoteVideoTrack == nil { if remoteVideoTrack == nil {
remoteVideoSize = CGSize.zero remoteVideoSize = CGSize.zero

Loading…
Cancel
Save