Я изучаю, как работают компоненты архитектуры Android.Для этого я пытаюсь создать приложение погоды.Я хочу получить местоположение с устройства и после этого выбрать погоду в этом месте.
Для этого я использую два объекта LiveData, один для местоположения и другой для погоды.После получения обновления местоположения я устанавливаю другого наблюдателя погоды внутри наблюдателя LiveData местоположения.Вот код для того же самого:
LiveData<LocationData> locationDataLiveData = LocationService.getLocation(MainActivity.this);
locationDataLiveData.observe(this, location -> {
if (location != null) {
WeatherViewModelFactory factory = new WeatherViewModelFactory(location.getLatitude(),
location.getLongitude());
WeatherViewModel viewModel = ViewModelProviders.of(mainActivity, factory).get(WeatherViewModel.class);
viewModel.loadCurrentWeather().observe(MainActivity.this, currentWeather -> {
temp.setText(currentWeather.getCountry() + " " + currentWeather.getTemp());
});
}
});
Все работает как положено, но это правильный способ сделать это?Можно ли иметь вложенные наблюдаемые объекты или есть лучший способ?