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 */ }
}
}
}