MVVM, получить контекст в репозитории, передать значения - PullRequest
0 голосов
/ 10 июня 2019

Я изучаю MVVM и пытаюсь получить контекст в моем хранилище и передать значение из MainActivity в класс хранилища.

Я знаю, что вы можете получитьконтекст в ViewModel через приложение:

public MyViewModel(Application application) {
        super(application);

        ...
    }

myApi = RetrofitService.getClient(getApplication()).create(ApiInterface.class);

Но как это работает для класса репозитория и как я могу передать значение String (utc) из MainActivity в класс репозитория?

Iесть следующий пример кода для моего класса репозитория:

private String utc:

public RetroDataRepository() {

public MutableLiveData<TimezoneModel> getTimeZones() {

        final MutableLiveData<TimezoneModel> timezones = new MutableLiveData<>();
        apiInterface = RetrofitService.getClient(context????).create(ApiInterface.class);
        Call<ResponseBody> call = apiInterface.getTimeZone(utc);
        call.enqueue(new Callback<ResponseBody>() {

            @Override
            public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {

                String time;
                String utc;
                String region;
                String currentTime;
                String timezoneTitle;

                if(response.body()!=null) {
                    // store TimeZone data to a list
                    Document document = Jsoup.parse(response.body().toString());

                    ....
                }

                isLoading.setValue(false);
            }

            @Override
            public void onFailure(Call<ResponseBody> call, Throwable t) {

                Log.e(TAG, "onFailure: ", t);
                isLoading.setValue(false);
                error.setValue(true);
            }
        });

        return timezones;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...