add 'reloadTheme' method

This commit is contained in:
Hannes Janetzek 2013-07-08 11:49:18 +02:00
parent 7229d8d596
commit 632ef15dc4
2 changed files with 23 additions and 17 deletions

View File

@ -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;

View File

@ -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<MapTileLoader> {
@ -141,15 +142,28 @@ public class MapTileLayer extends TileLayer<MapTileLoader> {
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<MapTileLoader> {
}
boolean ret = setRenderTheme(new ExternalRenderTheme(renderThemePath));
if (ret) {
if (ret)
mRenderTheme = renderThemePath;
}
mMapView.clearMap();
}
@ -189,25 +202,13 @@ public class MapTileLayer extends TileLayer<MapTileLoader> {
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;