diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java index 6552c7a..6725606 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java @@ -439,27 +439,27 @@ @Override public void onLocationChanged(Location location) { - Location oldLocation = new Location(mLocation); + if(mLocation != null) { + Location oldLocation = new Location(mLocation); + long currentTime = System.currentTimeMillis(); + float distance = mLocation.distanceTo(oldLocation); + + if(currentTime - lastWeatherInformation >= MIN_WEATHER_RELOAD_TIME || distance >= MIN_WEATHER_RELOAD_DIST) { + lastWeatherInformation = currentTime; + weatherHandler.getForecast(location.getLatitude(), location.getLongitude(), MAX_DAYS_FORECAST); + } + if(currentTime - lastPoiInformation >= MIN_POI_RELOAD_TIME || distance >= MIN_POI_RELOAD_DIST) { //5 minutes + lastPoiInformation = currentTime; + ArrayList pois = new ArrayList<>(poiHandler.getPoisAround(location.getLatitude(), location.getLongitude(), MAX_POIS_AROUND)); + for(Poi p : pois) { + p.display(); + } + } + } mLocation = location; if(mLocation == null) return; foundLocations.add(location); - long currentTime = System.currentTimeMillis(); - - float distance = mLocation.distanceTo(oldLocation); - - if(currentTime - lastWeatherInformation >= MIN_WEATHER_RELOAD_TIME || distance >= MIN_WEATHER_RELOAD_DIST) { - lastWeatherInformation = currentTime; - weatherHandler.getForecast(location.getLatitude(), location.getLongitude(), MAX_DAYS_FORECAST); - } - if(currentTime - lastPoiInformation >= MIN_POI_RELOAD_TIME || distance >= MIN_POI_RELOAD_DIST) { //5 minutes - lastPoiInformation = currentTime; - ArrayList pois = new ArrayList<>(poiHandler.getPoisAround(location.getLatitude(), location.getLongitude(), MAX_POIS_AROUND)); - for(Poi p : pois) { - p.display(); - } - } - double lat = location.getLatitude(); double lon = location.getLongitude(); GeoPoint gp = new GeoPoint(lat, lon);