diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java index 0470e21..a63d94f 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java @@ -62,12 +62,16 @@ private CharSequence mDrawerTitle; private static final int GPS_MIN_TIME = 5000; private static final int GPS_MIN_DIST = 5; + private static final int MIN_WEATHER_RELOAD_TIME = 3600000; + private static final int MIN_POI_RELOAD_TIME = 300000; + private static int MAX_POIS_AROUND = 20; + private static int MAX_DAYS_FORECAST = 3; + public static final int MAX_WIFI_LEVELS = 5; private static ConnectivityManager cm; private static TelephonyManager tm; private static WifiManager wm; private static NetworkInfo activeNetwork; private static int networkStrength; - public static final int MAX_WIFI_LEVELS = 5; public static SimpleDateFormat df_hm; public static SimpleDateFormat df_full; @@ -81,6 +85,9 @@ private PoiHandler poiHandler; private WeatherHandler weatherHandler; + private long lastWeatherInformation; + private long lastPoiInformation; + private static MapView mapView; private IMapController mapController; public static int ZOOM_LEVEL; @@ -131,6 +138,7 @@ poiHandler = new PoiHandler(this, res, mapView); weatherHandler = new WeatherHandler(this); + lastWeatherInformation = lastPoiInformation = 0; foundLocations = new ArrayList<>(); @@ -432,15 +440,19 @@ mLocation = location; if(mLocation == null) return; foundLocations.add(location); - //poiHandler.updatePois(); - List test = poiHandler.getPoisAround(location.getLatitude(), location.getLongitude(), 20); - Log.d(TAG, "Get POIs around: " + location.toString()); - int i=1; - for(Poi p : test) { - Log.d(TAG, "POI #" + (i++) + ": " + p.toString()); - } - weatherHandler.getForecast(location.getLatitude(), location.getLongitude(), 2); + long currentTime = System.currentTimeMillis(); + if(currentTime - lastWeatherInformation >= MIN_WEATHER_RELOAD_TIME) { //1 hour + lastWeatherInformation = currentTime; + weatherHandler.getForecast(location.getLatitude(), location.getLongitude(), MAX_DAYS_FORECAST); + } + if(currentTime - lastPoiInformation >= MIN_POI_RELOAD_TIME) { //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(); diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/pois/Poi.java b/app/src/main/java/de/apps4ics/mountainnavigation/pois/Poi.java index 3922804..24c8674 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/pois/Poi.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/pois/Poi.java @@ -73,6 +73,10 @@ } } + public void display() { + //TODO display POI on map + } + public long getId(){ return _id; }