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())
}