Я подаю заявку (используя шаблон MVVM) , в которой я не хочу до сохранять данные в комнате и хочу только API звоните каждый раз используя Retrofit. Я застрял с NetwrokBoundResource class note, способным реализовать код, который выполняет вызов API и просто возвращает результат в мой класс Repository. Я пытался понять это networkboundresource-helper-class-без комнаты , но все ответы в Kotlin .
Я сам написал некоторый код, но не знаю, верный он или нет.
Вот мой класс NetworkBoundResources
public abstract class NetworkBoundResources<RequestType> {
private MediatorLiveData<Resource<RequestType>> result;
@MainThread
NetworkBoundResources(){
if (result == null) {
result = new MediatorLiveData<>();
}
//result.setValue(Resource.loading(null));
fetchFromNetwork();
}
@MainThread
private void fetchFromNetwork() {
createCall().enqueue(new Callback<RequestType>() {
@Override
public void onResponse(@NonNull Call<RequestType> call,@NonNull Response<RequestType> response) {
result.setValue(Resource.success(response.body()));
}
@Override
public void onFailure(@NonNull Call<RequestType> call,@NonNull Throwable t) {
// result.setValue(Resource.error());
}
});
}
public abstract Call<RequestType> createCall();
public LiveData<Resource<RequestType>> getAsLiveData(){
return result;
}
}
ЗдесьЯ запутался с MediatorLiveData , как я могу использовать addSource () и removeSource () , потому что я не использую dbSource или я должен использоватьMutableLiveDate, потому что есть только один источник.