Класс NetworkBoundResource без комнаты в JAVA - PullRequest
0 голосов
/ 14 октября 2019

Я подаю заявку (используя шаблон 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, потому что есть только один источник.

...