Я не проверял ваш код, но я думаю, что ваша проблема в функции getNorthTrams () в viewmodel.
При первом получении данных трамваи не инициализируются, ваш вызов API происходит и только на onCompleted, вы устанавливаете isNorthUpdating.value = false.Этот код работает.
Но когда вы обновляете данные, трамваи уже инициализированы.Таким образом, нет никакого аргумента для isNorthUpdating.value = false, что приводит к тому, что диалоговое окно прогресса не закрывается.
Так что я думаю, что вы должны обработать другой случай в вашей модели представления.
fun getNorthTrams(): MutableLiveData<TramModel> {
isNorthUpdating.value = true
if (!::trams.isInitialized) {
trams = MutableLiveData()
callTokenAPI()
}else{
//do your thing for refresh
isNorthUpdating.value = false
}
return trams
}
ТакжеВ вызове API, если возникает ошибка, вы должны установить для isNorthUpdating значение false и показать какое-либо сообщение об ошибке.В противном случае диалоговое окно выполнения всегда будет отображаться, даже если в вызове API произошла какая-либо ошибка.