diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/handlers/WeatherHandler.java b/app/src/main/java/de/apps4ics/mountainnavigation/handlers/WeatherHandler.java index b547d35..547e458 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/handlers/WeatherHandler.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/handlers/WeatherHandler.java @@ -79,6 +79,7 @@ private static float MIN_WINDY_SPEED; private final static long DAY_IN_MS = 5184000000l; //1000*60*60*24 + private final static int FORECASTS_PER_DAY = 6; //every 3 hours private static Activity activity; private static FragmentManager fragmentManager; @@ -177,11 +178,12 @@ } public void getForecastHour(double lat, double lon, int days, OnWeatherRetrieved callback) { + days *= FORECASTS_PER_DAY; if(MainActivity.hasInternet()) getForecastOnlineHour(lat, lon, days, callback); else getForecastCachedHour(lat, lon, days, 0, callback); } - public void getForecastOnlineHour(double lat, double lon, final int days, final OnWeatherRetrieved callback) { + private void getForecastOnlineHour(double lat, double lon, final int days, final OnWeatherRetrieved callback) { weatherConfig.numDays = days; weatherClient.updateWeatherConfig(weatherConfig); weatherClient.getHourForecastWeather(new WeatherRequest(lon, lat), new WeatherClient.HourForecastWeatherEventListener() { @@ -205,11 +207,11 @@ String title = String.format("Weather for %s in %s", weathers[0].location.getCity(), weathers[0].location.getCountry()); String msg = String.format("%1$.1f%2$s (%3$.1f%4$s/%5$.1f%6$s)\nSunrise: %7$s\nSunset: %8$s\nWeatherCode: %9$d\nWeatherId: %10$d", - forecasts[0].forecastTemp.day, + hourForecasts[0].weather.temperature.getTemp(), forecast.getUnit().tempUnit, - forecasts[0].forecastTemp.min, + hourForecasts[0].weather.temperature.getMinTemp(), forecast.getUnit().tempUnit, - forecasts[0].forecastTemp.max, + hourForecasts[0].weather.temperature.getMaxTemp(), forecast.getUnit().tempUnit, MainActivity.df_hm.format(new Date(weathers[0].location.getSunrise() * 1000)), MainActivity.df_hm.format(new Date(weathers[0].location.getSunset() * 1000)), @@ -217,8 +219,6 @@ weathers[0].currentCondition.getWeatherId()); Log.d(MainActivity.TAG, title + ": " + msg); callback.postRetrieve(weatherList); - //displayHints(weatherList.get(0)); - //displaySevereWeather(weatherList.get(0)); } @Override @@ -236,7 +236,7 @@ } //TODO CORE get hour forecast from cache - public void getForecastCachedHour(double lat, double lon, int days, int offset, OnWeatherRetrieved callback) { + private void getForecastCachedHour(double lat, double lon, int days, int offset, OnWeatherRetrieved callback) { long timestamp = System.currentTimeMillis(); List weathers = new ArrayList<>(); for(int i=0; i weathers = new ArrayList<>(); for(int i=0; i