Skip to content

Instantly share code, notes, and snippets.

@Viska97
Last active March 7, 2019 17:42
Show Gist options
  • Save Viska97/5359d8e59554a4a920995497c59b0758 to your computer and use it in GitHub Desktop.
Save Viska97/5359d8e59554a4a920995497c59b0758 to your computer and use it in GitHub Desktop.
PagedList.BoundaryCallback with coroutines
class TestBoundaryCallback(
private val pageSize: Int,
private val dataSource: BackendDataSource,
private val database : AppDatabase
) : PagedList.BoundaryCallback<?>(){
var networkState = MutableLiveData<Int>()
private var isRequestInProgress = false
override fun onZeroItemsLoaded() {
loadSomething()
}
override fun onItemAtEndLoaded(itemAtEnd: Pack) {
loadSomething()
}
fun reload() {
loadSomething()
}
private fun loadSomething() {
if (isRequestInProgress) return
isRequestInProgress = true
GlobalScope.launch(Dispatchers.IO) {
//here code to load it and save to database
//val result = dataSource.load(pageSize)
//database.somethingDao().insert(result.data)
isRequestInProgress = false
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment