fun start()

in azure-communication-ui/calling/src/main/java/com/azure/android/communication/ui/calling/presentation/fragment/calling/hold/OnHoldOverlayView.kt [56:99]


    fun start(
        viewLifecycleOwner: LifecycleOwner,
        viewModel: OnHoldOverlayViewModel,
    ) {
        this.viewModel = viewModel

        setupUi()
        viewLifecycleOwner.lifecycleScope.launch {
            viewModel.getDisplayHoldOverlayFlow().collect {
                val lastVisibility = visibility
                visibility = if (it) VISIBLE else GONE
                if (isAndroidTV(context)) {
                    if (visibility == VISIBLE && lastVisibility != visibility) {
                        resumeButton.requestFocus()
                    }
                }
            }
        }

        ViewCompat.setAccessibilityDelegate(
            this,
            object : AccessibilityDelegateCompat() {
                override fun onInitializeAccessibilityNodeInfo(
                    host: View,
                    info: AccessibilityNodeInfoCompat,
                ) {
                    super.onInitializeAccessibilityNodeInfo(host, info)
                    info.removeAction(AccessibilityNodeInfoCompat.AccessibilityActionCompat.ACTION_CLICK)
                    info.isClickable = false
                }
            }
        )

        initSnackBar()
        viewLifecycleOwner.lifecycleScope.launch {
            viewModel.getDisplayMicUsedToastStateFlow().collect {
                if (!it) {
                    snackBar.dismiss()
                } else {
                    displayMicInUseSnackbar()
                }
            }
        }
    }