Android kotlin. Error in navigation when the application theme is changed programmatically in the fragment

I get a navigation error when I change the application theme programmatically. There are 3 buttons in the fragment, each of which is responsible for changing the theme. When you click on any of them, the app crashes with an error:

Unable to start activity ComponentInfo{com.nameapp.droid/com.nameapp.droid.ui.main.MainActivity}: java.lang.IllegalStateException: Restoring the Navigation back stack failed: destination com.nameapp.droid:id/main_navigation_graph cannot be found from the current destination null

My code:

private fun initViews() {
    with(binding) {
        when (AppCompatDelegate.getDefaultNightMode()) {
            AppCompatDelegate.MODE_NIGHT_NO -> {
                light.isChecked = true
            }
            AppCompatDelegate.MODE_NIGHT_YES -> {
                dark.isChecked = true
            }
            else -> {
                system.isChecked = true
            }
        }
        dark.setOnCheckedChangeListener { buttonView, isChecked ->
            if (isChecked) {
                light.isChecked = false
                system.isChecked = false
                update()
            } else {
                if (!light.isChecked && !dark.isChecked) {
                    system.isChecked = true
                }
            }
        }
        light.setOnCheckedChangeListener { buttonView, isChecked ->
            if (isChecked) {
                system.isChecked = false
                dark.isChecked = false
                update()
            } else {
                if (!light.isChecked && !dark.isChecked) {
                    system.isChecked = true
                }
            }
        }
        system.setOnCheckedChangeListener { buttonView, isChecked ->
            if (isChecked) {
                light.isChecked = false
                dark.isChecked = false
                update()
            } else {
                if (!light.isChecked && !dark.isChecked) {
                    system.isChecked = true
                }
            }
        }
    }
}

private fun update() {
        AppCompatDelegate.setDefaultNightMode(
            when (true) {
                binding.dark.isChecked -> {
                    AppCompatDelegate.MODE_NIGHT_YES
                }
                binding.light.isChecked -> {
                    AppCompatDelegate.MODE_NIGHT_NO
                }
                else -> {
                    AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM
                }
            }
        )

        viewModel.updateTheme(AppCompatDelegate.getDefaultNightMode())
}

Ответы (0 шт):