Я изучаю 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;