override fun onViewCreated()

in app/src/main/java/com/amazon/ivs/broadcast/ui/fragments/autoconfiguration/configurationsetup/ConfigurationSetupFragment.kt [32:143]


    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        binding.setupIngestServerValue.text =
            if (configurationViewModel.ingestServerUrl?.isBlank() == true) getString(R.string.not_set) else configurationViewModel.ingestServerUrl
        binding.setupStreamKeyValue.text =
            if (configurationViewModel.streamKey?.isBlank() == true) getString(R.string.not_set) else getString(R.string.concealed_stream_key)
        binding.runConfiguration.isEnabled = checkIfInputsAreSet()

        clearPopUp()
        if (viewModel.rerunConfiguration) {
            binding.testProgress.progress = 0
            startTest()
            viewModel.rerunConfiguration = false
        } else {
            binding.isTestActive = false
        }

        binding.setupNote.createLinks(Pair(getString(R.string.link_amazon_channel), {
            configurationViewModel.webViewUrl = AMAZON_IVS_URL
            openFragment(R.id.navigation_web_view)
        }))

        binding.skipConfiguration.setOnClickListener {
            openFragment(R.id.navigation_main)
        }

        binding.ingestServerContainer.setOnClickListener {
            binding.root.showInputDialog(
                resources.getString(R.string.ingest_server),
                inputHint = resources.getString(R.string.endpoint_url_base),
                inputText = configurationViewModel.ingestServerUrl
            ) { url ->
                configurationViewModel.ingestServerUrl = url
                binding.setupIngestServerValue.text = if (url.isBlank()) getString(R.string.not_set) else url
                binding.runConfiguration.isEnabled = checkIfInputsAreSet()
            }
        }

        binding.streamKeyContainer.setOnClickListener {
            binding.root.showInputDialog(
                resources.getString(R.string.stream_key),
                resources.getString(R.string.stream_key_input_note),
                resources.getString(R.string.stream_key),
                configurationViewModel.streamKey
            ) { streamKey ->
                configurationViewModel.streamKey = streamKey
                binding.setupStreamKeyValue.text = if (streamKey == getString(R.string.not_set)) getString(R.string.not_set) else resources.getString(R.string.concealed_stream_key)
                binding.runConfiguration.isEnabled = checkIfInputsAreSet()
            }
        }

        binding.runConfiguration.setOnClickListener {
            viewModel.isRunnedFromSettingsView = false
            viewModel.rerunConfiguration = true
            startTest()
        }

        binding.cancelConfiguration.setOnClickListener {
            viewModel.stopTest()
            if (viewModel.isRunnedFromSettingsView) {
                openFragment(R.id.navigation_settings)
            } else {
                binding.isTestActive = false
                binding.testProgress.progress = 0
                clearPopUp()
            }
        }

        binding.popupContainer.setOnClickListener {
            clearPopUp()
        }

        viewModel.testProgress.observeConsumable(viewLifecycleOwner) { progress ->
            binding.testProgress.progress = progress
        }

        viewModel.onWarningReceived.observeConsumable(viewLifecycleOwner) {
            if (binding.isTestActive == true) {
                showPopup(
                    PopupModel(
                        getString(R.string.network_issue),
                        getString(R.string.long_test_message),
                        PopupType.WARNING
                    )
                )
            }
        }

        viewModel.testStatus.observeConsumable(viewLifecycleOwner) { status ->
            when (status) {
                BroadcastSessionTest.Status.SUCCESS -> {
                    openFragment(R.id.navigation_configuration_summary)
                    viewModel.stopTimer()
                    clearPopUp()
                }
                BroadcastSessionTest.Status.ERROR -> {
                    binding.isTestActive = false
                    viewModel.stopTimer()
                    showPopup(
                        PopupModel(
                            getString(R.string.error),
                            getString(R.string.connection_error),
                            PopupType.WARNING
                        )
                    )
                }
                BroadcastSessionTest.Status.CONNECTING -> { /* Ignored */ }
                BroadcastSessionTest.Status.TESTING -> { /* Ignored */ }
            }
        }
    }