diff --git a/vtm-gdx/src/org/oscim/gdx/GdxMap.java b/vtm-gdx/src/org/oscim/gdx/GdxMap.java index 18660a63..810482ba 100644 --- a/vtm-gdx/src/org/oscim/gdx/GdxMap.java +++ b/vtm-gdx/src/org/oscim/gdx/GdxMap.java @@ -265,6 +265,11 @@ public class GdxMap implements ApplicationListener, MapRenderCallback { break; case Input.Keys.R: + mMapLayer.reloadTheme(); + mMapView.updateMap(false); + break; + + case Input.Keys.D: mMapLayer.setRenderTheme(InternalRenderTheme.DEFAULT); mMapView.updateMap(false); break; diff --git a/vtm/src/org/oscim/layers/tile/vector/MapTileLayer.java b/vtm/src/org/oscim/layers/tile/vector/MapTileLayer.java index c06ad8a5..0d9c418b 100644 --- a/vtm/src/org/oscim/layers/tile/vector/MapTileLayer.java +++ b/vtm/src/org/oscim/layers/tile/vector/MapTileLayer.java @@ -34,6 +34,7 @@ import org.oscim.tilesource.ITileDataSource; import org.oscim.tilesource.MapInfo; import org.oscim.tilesource.TileSource; import org.oscim.tilesource.TileSource.OpenResult; +import org.oscim.utils.IOUtils; import org.oscim.view.MapView; public class MapTileLayer extends TileLayer { @@ -141,15 +142,28 @@ public class MapTileLayer extends TileLayer { return true; boolean ret = setRenderTheme((Theme) internalRenderTheme); - if (ret) { + if (ret) mRenderTheme = internalRenderTheme.name(); - } mMapView.clearMap(); return ret; } + public boolean reloadTheme(){ + + Theme t = InternalRenderTheme.valueOf(mRenderTheme); + if (t == null) + return false; + + boolean ret = setRenderTheme(t); + + mMapView.clearMap(); + + return ret; + + } + /** * Sets the theme file which is used for rendering the map. * @@ -167,9 +181,8 @@ public class MapTileLayer extends TileLayer { } boolean ret = setRenderTheme(new ExternalRenderTheme(renderThemePath)); - if (ret) { + if (ret) mRenderTheme = renderThemePath; - } mMapView.clearMap(); } @@ -189,25 +202,13 @@ public class MapTileLayer extends TileLayer { for (MapTileLoader g : mTileLoader) g.setRenderTheme(t); - return true; -// } catch (ParserConfigurationException e) { -// Log.e(TAG, e.getMessage()); -// } catch (SAXException e) { -// Log.e(TAG, e.getMessage()); } catch (IOException e) { Log.e(TAG, e.getMessage()); } catch (Exception e) { e.printStackTrace(); - //Log.e(TAG, e.getMessage()); } finally { - try { - if (inputStream != null) { - inputStream.close(); - } - } catch (IOException e) { - Log.e(TAG, e.getMessage()); - } + IOUtils.closeQuietly(inputStream); resumeLoaders(); } return false;