Как инициализировать MockServer() okHttp в репозитории?

Server.kt (это фиктивный сервер, который возвращает список пользователей) https://github.com/shalbert94/androidinterview/blob/master/server/src/main/java/com/jobrapp/server/Server.kt

По какой-то причине val server = Server() вызывается в моем репозитории (https://github.com/shalbert94/androidinterview/blob/master/app/src/main/java/com/jobrapp/androidinterview/MockServerRepository.kt) выдает: Unable to start activity ComponentInfo{com.jobrapp.androidinterview/com.jobrapp.androidinterview.MainActivity}: android.os.NetworkOnMainThreadException

Проблема, по-видимому, связана с вызовом метода start() MockWebServer(), который вызывается в блоке init Server. Как я могу инициализировать Server в своем репозитории, не вызывая исключение NetworkOnMainThreadException?


person Shalbert    schedule 17.10.2018    source источник


Ответы (1)


Спасибо, сопрограммы Kotlin!

fun getUsers(liveData: MutableLiveData<List<User>>) = launch {
        val server = async{ Server() }

        server.await().getUsers().enqueue(object: Callback<List<User>> {...})
    }
person Shalbert    schedule 17.10.2018