Skip to content

Instantly share code, notes, and snippets.

@AkshayChordiya
Created February 25, 2018 05:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AkshayChordiya/1bdb4a288e8b1702b4d3889576daff5a to your computer and use it in GitHub Desktop.
Save AkshayChordiya/1bdb4a288e8b1702b4d3889576daff5a to your computer and use it in GitHub Desktop.
Sample FeedRepository using NetworkBoundResouce class
class FeedRepository @Inject constructor(
private val feedService: FeedService,
private val feedDao: FeedDao,
private val appExecutors: AppExecutors = AppExecutors()
) {
fun getFeeds(): LiveData<Resource<List<Feed>?>> = object : NetworkBoundResource<List<Feed>, List<Feed>>(appExecutors) {
override fun saveCallResult(item: List<Feed>) {
feedDao.insertAll(item)
}
override fun shouldFetch(data: List<Feed>?): Boolean = data == null || data.isEmpty()
override fun loadFromDb(): LiveData<List<Feed>> = feedDao.getFeeds()
override fun createCall(): LiveData<ApiResponse<List<Feed>>> = feedService.getFeeds()
}.asLiveData()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment