Если ViewModel нужен контекст приложения, например, чтобы найти системную службу, он может расширить класс AndroidViewModel и иметь конструктор, который получает приложение в конструкторе, поскольку класс приложения расширяет контекст.
MyViewModel.kt
class MyViewModel(application: Application): AndroidViewModel(application){
private val _showIcon = MutableLiveData<Drawable>
val showIcon: LiveData<Drawable>
get() = _showIcon
fun applyChanged(){
if(condition){
_showIcon.value = AppCompatResources.getDrawable(getApplication(),R.drawable.icon1)
}else{
_showIcon.value = null
}
}
}
main_activity.xml
android:drawableTop="@{viewModel.showIcon}"