Search in sources :

Example 1 with HourlyForecast

use of ua.dp.michaellang.weather.data.entity.Forecast.HourlyForecast in project WeatherApp by Cilestal.

the class WeatherRepositoryImpl method getCurrentCitiesWeather.

@Override
public Observable<Pair<String, HourlyForecast>> getCurrentCitiesWeather(Iterable<String> locationKeys, @Nullable String language, @Nullable Boolean details) {
    // записываем все Observable в List
    List<Observable<Pair<String, HourlyForecast>>> lst = new ArrayList<>();
    for (final String locationKey : locationKeys) {
        // сохраняем результат в виде ключ-значение
        Observable<Pair<String, HourlyForecast>> observable = mService.getOneHourForecast(locationKey, language, details).map(response -> {
            HourlyForecast hourlyForecast = response.body().get(0);
            return new Pair<>(locationKey, hourlyForecast);
        });
        lst.add(observable);
    }
    return Observable.merge(lst);
}
Also used : HourlyForecast(ua.dp.michaellang.weather.data.entity.Forecast.HourlyForecast) ArrayList(java.util.ArrayList) Observable(io.reactivex.Observable) Pair(android.support.v4.util.Pair)

Aggregations

Pair (android.support.v4.util.Pair)1 Observable (io.reactivex.Observable)1 ArrayList (java.util.ArrayList)1 HourlyForecast (ua.dp.michaellang.weather.data.entity.Forecast.HourlyForecast)1