altoslib: Pass all map loader params to set_load_params
authorKeith Packard <keithp@keithp.com>
Thu, 28 May 2015 08:01:23 +0000 (01:01 -0700)
committerKeith Packard <keithp@keithp.com>
Thu, 28 May 2015 08:01:23 +0000 (01:01 -0700)
Add zoom and map type to the param list so we don't call set_zoom and
set_maptype separately, which only causes lots of extra image loads to
get started unnecessarily.

Signed-off-by: Keith Packard <keithp@keithp.com>
altoslib/AltosMap.java
altoslib/AltosMapLoader.java

index d39c330201a0d01446388f64f3ec623ed0ea871e..85f95eef9cfdf3af49cae55224b6d1b165dd9ae5 100644 (file)
@@ -248,7 +248,9 @@ public class AltosMap implements AltosMapTileListener, AltosMapStoreListener {
 
        public void add_mark(double lat, double lon, int state) {
                synchronized(marks) {
-                       marks.add(map_interface.new_mark(lat, lon, state));
+                       AltosMapMark mark = map_interface.new_mark(lat, lon, state);
+                       if (mark != null)
+                               marks.add(mark);
                }
                repaint();
        }
@@ -303,11 +305,15 @@ public class AltosMap implements AltosMapTileListener, AltosMapStoreListener {
                }
        }
 
-       public void set_load_params(double lat, double lon, int radius, AltosMapTileListener listener) {
+       public void set_load_params(int new_zoom, int new_type, double lat, double lon, int radius, AltosMapTileListener listener) {
+               if (AltosMap.min_zoom <= new_zoom && new_zoom <= AltosMap.max_zoom)
+                       zoom = new_zoom;
+               maptype = new_type;
                load_centre = new AltosLatLon(lat, lon);
                load_radius = radius;
                load_listener = listener;
                centre(lat, lon);
+               tiles.clear();
                make_tiles();
                for (AltosMapTile tile : tiles.values()) {
                        tile.add_store_listener(this);
index 5db20cf8cbe54fecd7eb0f01e1d323e0dd075328..cf7169ba5dbc0f249d42d78f710b9db395dc74b6 100644 (file)
@@ -41,12 +41,9 @@ public class AltosMapLoader implements AltosMapTileListener {
        int     layers_loaded;
 
        AltosMap        map;
-       AltosMapCache   cache;
 
        public void do_load() {
-               map.set_zoom(cur_z + AltosMap.default_zoom);
-               map.set_maptype(cur_type);
-               map.set_load_params(latitude, longitude, radius, this);
+               map.set_load_params(cur_z + AltosMap.default_zoom, cur_type, latitude, longitude, radius, this);
        }
 
        public int next_type(int start) {
@@ -132,12 +129,10 @@ public class AltosMapLoader implements AltosMapTileListener {
                        next_load();
        }
 
-       public AltosMapCache cache() { return cache; }
+       public AltosMapCache cache() { return map.cache(); }
 
-       public AltosMapLoader(AltosMap map, AltosMapCache cache,
-                             AltosMapLoaderListener listener) {
+       public AltosMapLoader(AltosMap map, AltosMapLoaderListener listener) {
                this.map = map;
-               this.cache = cache;
                this.listener = listener;
        }
 }