in AmazonChimeSDKDemo/AmazonChimeSDKDemo/VideoTileCell.swift [38:103]
func updateCell(id: String, name: String, isSelf: Bool, videoTileState: VideoTileState?, tag: Int) {
let isVideoActive = videoTileState != nil
let isVideoPausedByUser = isVideoActive && videoTileState?.pauseState == .pausedByUserRequest
attendeeId = id
attendeeName.text = name
backgroundColor = .systemGray
isHidden = false
// Self video cell not active
if isSelf, !isVideoActive {
onTileButton.isHidden = true
updateVideoPriorityButton.isHidden = true
updateVideoResolutionButton.isHidden = true
videoDisabledImage.image = UIImage(named: "meeting-video")?.withRenderingMode(.alwaysTemplate)
videoDisabledImage.tintColor = .white
videoDisabledImage.isHidden = false
return
}
videoDisabledImage.isHidden = true
videoRenderView.isHidden = false
videoRenderView.accessibilityIdentifier = "\(name) VideoTile"
onTileButton.tintColor = .white
onTileButton.isHidden = false
onTileButton.tag = tag
onTileButton.addTarget(self, action: #selector(onTileButtonClicked), for: .touchUpInside)
onTileButton.isSelected = isVideoPausedByUser
videoFiltersButton.isHidden = true
updateVideoPriorityButton.isHidden = false
updateVideoResolutionButton.isHidden = false
if isSelf {
onTileButton.setImage(UIImage(named: "switch-camera")?.withRenderingMode(.alwaysTemplate),
for: .normal)
updateVideoPriorityButton.isHidden = true
updateVideoResolutionButton.isHidden = true
// If AmazonChimeSDKMachineLearning is not available then hide the video filter button.
if BackgroundFilterProcessor.isAvailable() {
videoFiltersButton.isHidden = false
} else {
self.viewController?.view.makeToast("AmazonChimeSDKMachineLearning is not available. " +
"See README for more information.")
}
videoFiltersButton.setImage(UIImage(named: "more")?.withRenderingMode(.alwaysTemplate), for: .normal)
videoFiltersButton.tintColor = .white
videoFiltersButton.addTarget(self, action: #selector(showVideoFiltersMenu), for: .touchUpInside)
} else {
onTileButton.setImage(UIImage(named: "pause-video")?.withRenderingMode(.alwaysTemplate),
for: .normal)
onTileButton.setImage(UIImage(named: "resume-video")?.withRenderingMode(.alwaysTemplate),
for: .selected)
let shouldShowPoorConnection = videoTileState?.pauseState == .pausedForPoorConnection
renderPoorConnection(isHidden: !shouldShowPoorConnection)
updateVideoPriorityButton.setImage(UIImage(named: "more")?.withRenderingMode(.alwaysTemplate), for: .normal)
updateVideoPriorityButton.tintColor = .white
updateVideoPriorityButton.addTarget(self, action: #selector(showUpdateVideoSubscriptionsMenu), for: .touchUpInside)
updateVideoResolutionButton.setImage(UIImage(named: "up")?.withRenderingMode(.alwaysTemplate), for: .normal)
updateVideoResolutionButton.tintColor = .white
updateVideoResolutionButton.addTarget(self, action: #selector(showUpdateVideoResolutionMenu), for: .touchUpInside)
}
}