У меня следующий класс Wrapper
class ApiWrapper<I, O>(
val response: LiveData<Resource<O>>,
val call: (I?) -> Unit
) {
val loading = map(response) { it.status == RequestState.LOADING }
}
И у меня есть следующее выражение для привязки данных
<com.google.android.material.button.MaterialButton
android:id="@+id/signInBtn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:enabled="@{!vm.login.loading}"
android:onClick="@{()->vm.login.call(vm.auth)}"
android:text="@string/sign_in"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"/>
login
переменная во ViewModel содержит объект-оболочку из хранилища (игнорируя детали для краткости).
Теперь, когда я бегу, я получаю это исключение
[привязка данных] {"msg": "не удается найти вызов метода (com.fishlee.auth.Auth) в классе com.fishlee.etc.api.ApiWrapper \ u003ccom.fishlee.auth.Auth, com.fishlee.auth .AuthState \ u003e "
Почему привязка данных не может найти метод в классе оболочки?
У меня есть обходной путь, который заключается в создании метода внутри ViewModel
и вызове метода вызова упаковщика оттуда. Но мне бы очень хотелось вызывать его напрямую из выражения привязки данных, в чем и заключался весь смысл класса ApiWrapper. Как мне добиться этого с привязкой данных с помощью Kotlin? Любая помощь будет принята с благодарностью !!