android livedata сброc наблюдения

Допустим имеется 2 кнопки 1. открывает Fragment (Файловый проводник) 2. загружает файл, если загрузился state = LOADED_FILE

Мы загрузили файл, state = Loaded_file. Затем мы открываем фрагмент и сразу возвращаемся на первичное окно. И пробрасывается снова статус Loaded file, который меняет некоторый UI.

Как можно избавиться от этой проблемы? Вариант есть после изменения состояние на UPLOAD_FILE, сразу ставить ему state на null, чтобы сбросить.

Есть другие варианты?

Сейчас сбрасываю так

viewModel.state.observe(viewLifecycleOwner, Observer {
            Log.d("Состояние", it.name)
            when(it){
                CheckCheckState.LOADING_FILE -> {
                    tl_check_url.isEnabled = false
                    btn_load_check.text = "Загрузка чека...."
                    btn_load_check.isEnabled = false
                    btn_load_check_url.isEnabled = false
                }

                CheckCheckState.LOADING_FILE_URL -> {
                    tl_check_url.isEnabled = false
                    btn_load_check_url.text = "Загрузка чека...."
                    btn_load_check.isEnabled = false
                    btn_load_check_url.isEnabled = false
                }

                CheckCheckState.INTERNET_ERROR -> {
                    view?.let{
                        Snackbar.make(view!!, "Интернет не доступен", Snackbar.LENGTH_SHORT).show()
                        tl_check_url.isEnabled = true
                        btn_load_check.text = "Загрузить чек"
                        btn_load_check_url.text = "Загрузить чек по ссылке"
                        btn_load_check.isEnabled = true
                        btn_load_check_url.isEnabled = true
                    }
                }

                CheckCheckState.FATAL_ERROR -> {
                    view?.let{
                        Snackbar.make(view!!, viewModel.errorMessage, Snackbar.LENGTH_SHORT).show()
                        tl_check_url.isEnabled = true
                        btn_load_check.text = "Загрузить чек"
                        btn_load_check_url.text = "Загрузить чек по ссылке"
                        btn_load_check.isEnabled = true
                        btn_load_check_url.isEnabled = true
                        viewModel.errorMessage = ""
                    }
                }

                CheckCheckState.ERROR -> {
                    view?.let{
                        Snackbar.make(view!!, viewModel.errorMessage, Snackbar.LENGTH_SHORT).show()
                        tl_check_url.isEnabled = true
                        btn_load_check.text = "Загрузить чек"
                        btn_load_check_url.text = "Загрузить чек по ссылке"
                        btn_load_check.isEnabled = true
                        btn_load_check_url.isEnabled = true
                        viewModel.errorMessage = ""
                    }
                }

                CheckCheckState.LOADED_FILE -> {
                    view?.let{
                        Snackbar.make(view!!, "Файл загружен", Snackbar.LENGTH_SHORT).show()
                        tl_check_url.isEnabled = true
                        btn_load_check.text = "Загрузить чек"
                        btn_load_check_url.text = "Загрузить чек по ссылке"
                        btn_load_check.isEnabled = true
                        btn_load_check_url.isEnabled = true
                        viewModel.errorMessage = ""
                    }
                }
                CheckCheckState.LOADED_URL -> {
                    view?.let{
                        Snackbar.make(view!!, "Файл загружен по ссылке", Snackbar.LENGTH_SHORT).show()
                        tl_check_url.isEnabled = true
                        btn_load_check.text = "Загрузить чек"
                        btn_load_check_url.text = "Загрузить чек по ссылке"
                        btn_load_check.isEnabled = true
                        btn_load_check_url.isEnabled = true
                        viewModel.errorMessage = ""
                    }
                }

            }
            viewModel.setState(null)
        })

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