VectorTileLayer: code improvements

This commit is contained in:
Emux 2020-12-25 14:53:19 +02:00
parent 0eb4f3752f
commit d006ba5361
No known key found for this signature in database
GPG Key ID: 64ED9980896038C3
4 changed files with 18 additions and 12 deletions

View File

@ -45,7 +45,7 @@ public class ExternalRenderThemeTest extends GdxMapApp {
try { try {
IRenderTheme theme = ThemeLoader.load(name); IRenderTheme theme = ThemeLoader.load(name);
mapLayer.setRenderTheme(theme); mapLayer.setTheme(theme);
MapRenderer.setBackgroundColor(theme.getMapBackground()); MapRenderer.setBackgroundColor(theme.getMapBackground());
} catch (ThemeException e) { } catch (ThemeException e) {
e.printStackTrace(); e.printStackTrace();
@ -80,7 +80,7 @@ public class ExternalRenderThemeTest extends GdxMapApp {
// IRenderTheme theme = // IRenderTheme theme =
// ThemeLoader.load("themes/elevate/theme.xml"); // ThemeLoader.load("themes/elevate/theme.xml");
// IRenderTheme theme = ThemeLoader.load("themes/vmap/theme.xml"); // IRenderTheme theme = ThemeLoader.load("themes/vmap/theme.xml");
l.setRenderTheme(theme); l.setTheme(theme);
MapRenderer.setBackgroundColor(theme.getMapBackground()); MapRenderer.setBackgroundColor(theme.getMapBackground());
} catch (ThemeException e) { } catch (ThemeException e) {
e.printStackTrace(); e.printStackTrace();

View File

@ -39,7 +39,7 @@ public class ThemeTest extends GdxMapApp {
VectorTileLayer l = mMap.setBaseMap(ts); VectorTileLayer l = mMap.setBaseMap(ts);
l.setRenderTheme(new RenderTheme()); l.setTheme(new RenderTheme());
MapRenderer.setBackgroundColor(0xffcccccc); MapRenderer.setBackgroundColor(0xffcccccc);

View File

@ -39,6 +39,12 @@ import org.slf4j.LoggerFactory;
public class VectorTileLayer extends TileLayer { public class VectorTileLayer extends TileLayer {
static final Logger log = LoggerFactory.getLogger(VectorTileLayer.class); static final Logger log = LoggerFactory.getLogger(VectorTileLayer.class);
private final List<LList<TileLoaderProcessHook>> mLoaderProcessHooks = new List<>();
private final List<LList<TileLoaderThemeHook>> mLoaderThemeHooks = new List<>();
private IRenderTheme mTheme;
public VectorTileLayer(Map map, TileSource tileSource) { public VectorTileLayer(Map map, TileSource tileSource) {
this(map, new TileManager(map, this(map, new TileManager(map,
100), 100),
@ -102,7 +108,15 @@ public class VectorTileLayer extends TileLayer {
/** /**
* Set {@link IRenderTheme} used by {@link TileLoader} * Set {@link IRenderTheme} used by {@link TileLoader}
*/ */
@Deprecated
public void setRenderTheme(IRenderTheme theme) { public void setRenderTheme(IRenderTheme theme) {
setTheme(theme);
}
/**
* Set {@link IRenderTheme} used by {@link TileLoader}
*/
public void setTheme(IRenderTheme theme) {
/* wait for loaders to finish all current jobs to /* wait for loaders to finish all current jobs to
* not change theme instance hold by loader instance * not change theme instance hold by loader instance
* while running */ * while running */
@ -118,8 +132,6 @@ public class VectorTileLayer extends TileLayer {
resumeLoaders(); resumeLoaders();
} }
private IRenderTheme mTheme;
public IRenderTheme getTheme() { public IRenderTheme getTheme() {
return mTheme; return mTheme;
} }
@ -155,12 +167,6 @@ public class VectorTileLayer extends TileLayer {
public void complete(MapTile tile, boolean success); public void complete(MapTile tile, boolean success);
} }
private List<LList<TileLoaderProcessHook>> mLoaderProcessHooks =
new List<LList<TileLoaderProcessHook>>();
private List<LList<TileLoaderThemeHook>> mLoaderThemeHooks =
new List<LList<TileLoaderThemeHook>>();
public void addHook(TileLoaderProcessHook h) { public void addHook(TileLoaderProcessHook h) {
mLoaderProcessHooks.append(new LList<TileLoaderProcessHook>(h)); mLoaderProcessHooks.append(new LList<TileLoaderProcessHook>(h));
} }

View File

@ -213,7 +213,7 @@ public abstract class Map implements TaskQueue {
boolean themeSet = false; boolean themeSet = false;
for (Layer layer : mLayers) { for (Layer layer : mLayers) {
if (layer instanceof VectorTileLayer) { if (layer instanceof VectorTileLayer) {
((VectorTileLayer) layer).setRenderTheme(theme); ((VectorTileLayer) layer).setTheme(theme);
themeSet = true; themeSet = true;
if (!allLayers) if (!allLayers)
break; break;