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; break;
case Input.Keys.R: case Input.Keys.R:
mMapLayer.reloadTheme();
mMapView.updateMap(false);
break;
case Input.Keys.D:
mMapLayer.setRenderTheme(InternalRenderTheme.DEFAULT); mMapLayer.setRenderTheme(InternalRenderTheme.DEFAULT);
mMapView.updateMap(false); mMapView.updateMap(false);
break; break;

View File

@ -34,6 +34,7 @@ import org.oscim.tilesource.ITileDataSource;
import org.oscim.tilesource.MapInfo; import org.oscim.tilesource.MapInfo;
import org.oscim.tilesource.TileSource; import org.oscim.tilesource.TileSource;
import org.oscim.tilesource.TileSource.OpenResult; import org.oscim.tilesource.TileSource.OpenResult;
import org.oscim.utils.IOUtils;
import org.oscim.view.MapView; import org.oscim.view.MapView;
public class MapTileLayer extends TileLayer<MapTileLoader> { public class MapTileLayer extends TileLayer<MapTileLoader> {
@ -141,15 +142,28 @@ public class MapTileLayer extends TileLayer<MapTileLoader> {
return true; return true;
boolean ret = setRenderTheme((Theme) internalRenderTheme); boolean ret = setRenderTheme((Theme) internalRenderTheme);
if (ret) { if (ret)
mRenderTheme = internalRenderTheme.name(); mRenderTheme = internalRenderTheme.name();
}
mMapView.clearMap(); mMapView.clearMap();
return ret; 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. * 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)); boolean ret = setRenderTheme(new ExternalRenderTheme(renderThemePath));
if (ret) { if (ret)
mRenderTheme = renderThemePath; mRenderTheme = renderThemePath;
}
mMapView.clearMap(); mMapView.clearMap();
} }
@ -189,25 +202,13 @@ public class MapTileLayer extends TileLayer<MapTileLoader> {
for (MapTileLoader g : mTileLoader) for (MapTileLoader g : mTileLoader)
g.setRenderTheme(t); g.setRenderTheme(t);
return true; return true;
// } catch (ParserConfigurationException e) {
// Log.e(TAG, e.getMessage());
// } catch (SAXException e) {
// Log.e(TAG, e.getMessage());
} catch (IOException e) { } catch (IOException e) {
Log.e(TAG, e.getMessage()); Log.e(TAG, e.getMessage());
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
//Log.e(TAG, e.getMessage());
} finally { } finally {
try { IOUtils.closeQuietly(inputStream);
if (inputStream != null) {
inputStream.close();
}
} catch (IOException e) {
Log.e(TAG, e.getMessage());
}
resumeLoaders(); resumeLoaders();
} }
return false; return false;