use of in.bugzy.data.model.Priority in project bugzy by cpunq.
the class Repository method getPriorities.
public LiveData<Resource<List<Priority>>> getPriorities(boolean mustFetch) {
if (mFetchPrioritiesLiveData != null) {
if (mFetchPrioritiesLiveData.getValue().status == Status.LOADING && !mustFetch) {
// If the content is in loading state and the request doesn't require us to fetch again
return mPrioritiesPublicLiveData;
}
mPrioritiesPublicLiveData.removeSource(mFetchPrioritiesLiveData);
mFetchPrioritiesLiveData = null;
}
mFetchPrioritiesLiveData = new NetworkBoundResource<List<Priority>, Response<ListPrioritiesData>>(mAppExecutors) {
@Override
protected void saveCallResult(@NonNull Response<ListPrioritiesData> item) {
db.beginTransaction();
try {
mMiscDao.insertPriorities(item.getData().getPriorities());
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
}
@Override
protected boolean shouldFetch(@Nullable List<Priority> data) {
if (data == null || data.size() == 0) {
return true;
}
if (mustFetch) {
return true;
}
return false;
}
@NonNull
@Override
protected LiveData<List<Priority>> loadFromDb() {
return mMiscDao.loadPriorities();
}
@NonNull
@Override
protected LiveData<ApiResponse<Response<ListPrioritiesData>>> createCall() {
return mApiService.getPriorities(new Request("listPriorities"));
}
}.asLiveData();
mPrioritiesPublicLiveData.addSource(mFetchPrioritiesLiveData, value -> {
mPrioritiesPublicLiveData.setValue(value);
});
return mPrioritiesPublicLiveData;
}
Aggregations