override fun onViewCreated()

in app/src/main/java/com/amazon/ivs/broadcast/ui/fragments/settings/settingsfragment/SettingsFragment.kt [32:183]


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

        binding.orientationValue.text = configurationViewModel.orientationId.getOrientation().value
        binding.developerModeSwitch.isChecked = configurationViewModel.developerMode
        binding.ingestServerUrlValue.text = if (configurationViewModel.ingestServerUrl.isNullOrBlank())
            getString(R.string.not_set) else configurationViewModel.ingestServerUrl
        binding.streamKeyValue.text = if (configurationViewModel.streamKey.isNullOrEmpty())
            getString(R.string.not_set) else getString(R.string.concealed_stream_key)
        binding.playbackUrlValue.text = if (configurationViewModel.playbackUrl.isNullOrEmpty())
            getString(R.string.not_set) else configurationViewModel.playbackUrl

        configurationViewModel.defaultCameraId = preferences.defaultCameraId
        configurationViewModel.defaultDeviceItem?.let { camera ->
            binding.defaultCameraValue.text = getString(
                R.string.camera_option_template,
                camera.type,
                camera.deviceId,
                camera.direction
            )
        }

        binding.bitrateValue.text = toFormattedKbps(
            configurationViewModel.targetBitrate,
            if (configurationViewModel.autoAdjustBitrate) R.string.bitrate_template_auto else R.string.kbps_template,
        )

        binding.resolutionAndFramerateValue.text = with(configurationViewModel.resolution) {
            if (configurationViewModel.useCustomResolution) {
                getString(R.string.custom_resolution_template, width.toInt(), height.toInt())
            } else {
                getString(
                    R.string.quality_template,
                    shortestSide.toInt(),
                    configurationViewModel.framerate
                )
            }
        }

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

        binding.resolutionAndFramerate.setOnClickListener {
            openFragment(R.id.navigation_stream_graphic_properties)
        }

        binding.orientation.setOnClickListener {
            openFragment(R.id.navigation_stream_graphic_properties)
        }

        binding.bitrate.setOnClickListener {
            openFragment(R.id.navigation_stream_bitrate_properties)
        }

        binding.popupContainer.setOnClickListener {
            clearPopUp()
        }

        binding.autoConfig.setOnClickListener {
            autoConfigurationViewModel.isRunnedFromSettingsView = true
            autoConfigurationViewModel.rerunConfiguration = true

            if (binding.ingestServerUrlValue.text != getString(R.string.not_set)
                && binding.streamKeyValue.text != getString(R.string.not_set)
            ) {
                openFragment(R.id.navigation_configuration_setup)
            } else {
                showPopup(
                    PopupModel(
                        getString(R.string.error),
                        getString(R.string.incomplete_stream_credentials_message),
                        PopupType.ERROR
                    )
                )
            }
        }

        binding.developerModeSwitch.setOnCheckedChangeListener { _, isChecked ->
            configurationViewModel.developerMode = isChecked
        }

        binding.settingsDeveloperModeContainer.setOnClickListener {
            binding.developerModeSwitch.isChecked = !binding.developerModeSwitch.isChecked
        }

        binding.ingestServerContainer.setOnClickListener {
            binding.root.showInputDialog(
                getString(R.string.ingest_server),
                inputHint = getString(R.string.endpoint_url_base),
                inputText = binding.ingestServerUrlValue.text.toString(),
            ) { serverUrl ->
                binding.ingestServerUrlValue.text = if (serverUrl.isBlank()) {
                    resources.getString(R.string.not_set)
                } else {
                    configurationViewModel.ingestServerUrl = serverUrl
                    serverUrl
                }
            }
        }

        binding.playbackUrlContainer.setOnClickListener {
            binding.root.showInputDialog(
                getString(R.string.playback_url),
                inputHint = getString(R.string.playback_url_hint),
                inputText = binding.playbackUrlValue.text.toString(),
            ) { playbackUrl ->
                binding.playbackUrlValue.text = if (playbackUrl.isBlank()) {
                    resources.getString(R.string.not_set)
                } else {
                    configurationViewModel.playbackUrl = getString(R.string.playback_url_template, playbackUrl)
                    playbackUrl
                }
            }
        }

        binding.streamKeyContainer.setOnClickListener {
            binding.root.showInputDialog(
                getString(R.string.stream_key),
                getString(R.string.stream_key_input_note),
                getString(R.string.stream_key),
                configurationViewModel.streamKey,
            ) { streamKey ->
                if (streamKey.isBlank()) {
                    binding.streamKeyValue.text = getString(R.string.not_set)
                } else {
                    binding.streamKeyValue.text = getString(R.string.concealed_stream_key)
                    configurationViewModel.streamKey = streamKey
                }

            }
        }

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

        binding.defaultCameraContainer.setOnClickListener {
            binding.root.showCameraDialog(getString(R.string.orientation), configurationViewModel.camerasList) { option ->
                Timber.d("Default camera selected: $option")
                binding.defaultCameraValue.text = getString(
                    R.string.camera_option_template,
                    option.type,
                    option.deviceId,
                    option.direction
                )
                configurationViewModel.defaultCameraId = option.deviceId
                configurationViewModel.defaultCameraPosition = option.direction
            }
        }
    }