diff --git a/src/org/oscim/layers/tile/MapTileLayer.java b/src/org/oscim/layers/tile/MapTileLayer.java index 6fd115f3..09162b17 100644 --- a/src/org/oscim/layers/tile/MapTileLayer.java +++ b/src/org/oscim/layers/tile/MapTileLayer.java @@ -44,11 +44,12 @@ public class MapTileLayer extends TileLayer { private final static String TAG = MapTileLayer.class.getName(); public MapTileLayer(MapView mapView) { - super(mapView, new TileLoader.Factory(){ - @Override - public MapTileLoader create(JobQueue q, TileManager tm) { - return new MapTileLoader(q, tm); - }}); + super(mapView); + } + + @Override + protected MapTileLoader createLoader(JobQueue q, TileManager tm) { + return new MapTileLoader(q, tm); } private MapOptions mMapOptions; diff --git a/src/org/oscim/layers/tile/TestTileLayer.java b/src/org/oscim/layers/tile/TestTileLayer.java index 6d9904b9..5d8ad390 100644 --- a/src/org/oscim/layers/tile/TestTileLayer.java +++ b/src/org/oscim/layers/tile/TestTileLayer.java @@ -30,12 +30,12 @@ public class TestTileLayer extends TileLayer { final static String TAG = TestTileLayer.class.getName(); public TestTileLayer(MapView mapView) { - // create an TileLayer instance using TestTileLoader as TileLoader - super(mapView, new TileLoader.Factory(){ - @Override - public TestTileLoader create(JobQueue q, TileManager tm) { - return new TestTileLoader(q, tm); - }}); + super(mapView); + } + + @Override + protected TestTileLoader createLoader(JobQueue q, TileManager tm) { + return new TestTileLoader(q, tm); } static class TestTileLoader extends TileLoader { diff --git a/src/org/oscim/layers/tile/TileLayer.java b/src/org/oscim/layers/tile/TileLayer.java index 9e89cb05..2c143d50 100644 --- a/src/org/oscim/layers/tile/TileLayer.java +++ b/src/org/oscim/layers/tile/TileLayer.java @@ -20,7 +20,7 @@ import org.oscim.core.MapPosition; import org.oscim.layers.Layer; import org.oscim.view.MapView; -public class TileLayer extends Layer { +public abstract class TileLayer extends Layer { //private final static String TAG = TileLayer.class.getName(); private boolean mClearMap = true; @@ -32,7 +32,7 @@ public class TileLayer extends Layer { protected final int mNumTileLoader = 4; protected final ArrayList mTileLoader; - public TileLayer(MapView mapView, TileLoader.Factory factory) { + public TileLayer(MapView mapView) { super(mapView); // TileManager responsible for adding visible tiles @@ -44,7 +44,7 @@ public class TileLayer extends Layer { // Instantiate TileLoader threads mTileLoader = new ArrayList(); for (int i = 0; i < mNumTileLoader; i++) { - T tileGenerator = factory.create(mJobQueue, mTileManager); + T tileGenerator = createLoader(mJobQueue, mTileManager); mTileLoader.add(tileGenerator); tileGenerator.start(); } @@ -54,6 +54,8 @@ public class TileLayer extends Layer { mLayer = new TileRenderLayer(mapView, mTileManager); } + abstract protected T createLoader(JobQueue q, TileManager tm); + public TileRenderLayer getTileLayer() { return (TileRenderLayer) mLayer; }