func updateCell()

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)
        }
    }