override fun onCreate()

in app/src/main/java/com/amazonaws/ivs/basicbroadcast/activities/MainActivity.kt [56:118]


    override fun onCreate(savedInstanceState: Bundle?) {
        Log.d(TAG, "On Create")
        super.onCreate(savedInstanceState)
        App.component.inject(this)
        Bluetooth.startBluetoothSco(applicationContext)
        binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)

        viewModel.preview.observe(this, {
            Log.d(TAG, "Texture view changed: $it")
            binding.previewView.addView(it)
            imagePreviewView = it
        })

        viewModel.clearPreview.observe(this, { clear ->
            Log.d(TAG, "Texture view cleared")
            if (clear) binding.previewView.removeAllViews()
        })

        viewModel.indicatorColor.observe(this, { color ->
            Log.d(TAG, "Indicator color changed")
            binding.broadcastOptionView.statusIndicator.background.colorFilter = PorterDuffColorFilter(color, PorterDuff.Mode.SRC_IN)
        })

        viewModel.camerasChanged.observe(this, { changed ->
            if (changed) {
                Log.d(TAG, "Available camera size changed")
                cameraAdapter.clear()
                cameraAdapter.addAll(getCameraItems())
            }
        })

        viewModel.microphonesChanged.observe(this, { changed ->
            if (changed) {
                Log.d(TAG, "Available microphone size changed")
                microphoneAdapter.clear()
                microphoneAdapter.addAll(getMicrophoneItems())
            }
        })

        viewModel.errorHappened.observe(this, { error ->
            Log.d(TAG, "Error dialog is shown: ${error.first}, ${error.second}")
            showDialog(error.first, error.second)
        })

        viewModel.disconnectHappened.observe(this, { disconnected ->
            Log.d(TAG, "Disconnect happened")
            if (disconnected) {
                if (viewModel.paused) stopSession() else endSession()
            }
        })

        viewModel.selectDefault.observe(this, { type ->
            Log.d(TAG, "Default device $type changed")
            if (type == Device.Descriptor.DeviceType.MICROPHONE) {
                binding.microphoneSpinner.setSelection(DEFAULT_DEVICE_POSITION)
            } else if (type == Device.Descriptor.DeviceType.CAMERA) {
                binding.cameraSpinner.setSelection(DEFAULT_DEVICE_POSITION)
            }
        })

        initUi()
    }