refactor: add TileLayer.initLoader()

- need to initialize worker thread after (super) class is constructed
This commit is contained in:
Hannes Janetzek 2014-01-20 22:47:12 +01:00
parent 402cbe7e57
commit b70090ea3a
3 changed files with 10 additions and 4 deletions

View File

@ -53,15 +53,18 @@ public abstract class TileLayer<T extends TileLoader> extends Layer implements M
// Instantiate TileLoader threads
mTileLoader = new ArrayList<T>();
// RenderLayer is working in GL Thread and actually
// drawing loaded tiles to screen.
mRenderer = mRenderLayer = new TileRenderer(mTileManager);
}
protected void initLoader() {
for (int i = 0; i < mNumTileLoader; i++) {
T tileGenerator = createLoader(mTileManager);
mTileLoader.add(tileGenerator);
tileGenerator.start();
}
// RenderLayer is working in GL Thread and actually
// drawing loaded tiles to screen.
mRenderer = mRenderLayer = new TileRenderer(mTileManager);
}
abstract protected T createLoader(TileManager tm);

View File

@ -58,6 +58,7 @@ public class BitmapTileLayer extends TileLayer<TileLoader> {
super(map, tileSource.getZoomLevelMin(), tileSource.getZoomLevelMax(), cacheLimit);
mTileSource = tileSource;
mFade = mTileSource.getFadeSteps();
initLoader();
}
@Override

View File

@ -39,10 +39,12 @@ public class VectorTileLayer extends TileLayer<VectorTileLoader> {
public VectorTileLayer(Map map) {
super(map);
initLoader();
}
public VectorTileLayer(Map map, int minZoom, int maxZoom, int cacheLimit) {
super(map, minZoom, maxZoom, cacheLimit);
initLoader();
}
@Override