Slide 48
Slide 48 text
例)ViewModel & LiveData を使う
class MainViewModel : ViewModel() {
private val service = createGitHubService(username, token)
data class Status(val isLoading: Boolean, val data: List?, val throwable: Throwable?)
private val _status = MutableLiveData()
val status: LiveData = _status
init {
load()
}
fun load() {
_status.value = Status(true, null, null)
service.reposOf("google").enqueue(object : Callback> {
override fun onResponse(call: Call>, response: Response>) {
_status.value = if (response.isSuccessful) {
Status(false, response.body()!!, null)
} else {
Status(false, null, IllegalStateException())
}
}
override fun onFailure(call: Call>, t: Throwable) {
_status.value = Status(false, null, t)
}
})
}
}