diff --git a/vtm-android/src/org/oscim/android/theme/AssetsRenderTheme.java b/vtm-android/src/org/oscim/android/theme/AssetsRenderTheme.java index d1c61a8a..c9c943ec 100644 --- a/vtm-android/src/org/oscim/android/theme/AssetsRenderTheme.java +++ b/vtm-android/src/org/oscim/android/theme/AssetsRenderTheme.java @@ -1,6 +1,7 @@ /* * Copyright 2010, 2011, 2012 mapsforge.org * Copyright 2016-2017 devemux86 + * Copyright 2017 Andrey Novikov * * This program is free software: you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License as published by the Free Software @@ -20,6 +21,7 @@ import android.text.TextUtils; import org.oscim.theme.IRenderTheme.ThemeException; import org.oscim.theme.ThemeFile; +import org.oscim.theme.ThemeUtils; import org.oscim.theme.XmlRenderThemeMenuCallback; import org.oscim.utils.Utils; @@ -98,6 +100,11 @@ public class AssetsRenderTheme implements ThemeFile { } } + @Override + public boolean isMapsforgeTheme() { + return ThemeUtils.isMapsforgeTheme(this); + } + @Override public void setMenuCallback(XmlRenderThemeMenuCallback menuCallback) { mMenuCallback = menuCallback; diff --git a/vtm-themes/src/org/oscim/theme/VtmThemes.java b/vtm-themes/src/org/oscim/theme/VtmThemes.java index 41dc6403..0a275b05 100644 --- a/vtm-themes/src/org/oscim/theme/VtmThemes.java +++ b/vtm-themes/src/org/oscim/theme/VtmThemes.java @@ -3,6 +3,7 @@ * Copyright 2013 Hannes Janetzek * Copyright 2016-2017 devemux86 * Copyright 2017 nebular + * Copyright 2017 Andrey Novikov * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). * @@ -58,6 +59,11 @@ public enum VtmThemes implements ThemeFile { return AssetAdapter.readFileAsStream(mPath); } + @Override + public boolean isMapsforgeTheme() { + return false; + } + @Override public void setMenuCallback(XmlRenderThemeMenuCallback menuCallback) { } diff --git a/vtm/src/org/oscim/theme/ExternalRenderTheme.java b/vtm/src/org/oscim/theme/ExternalRenderTheme.java index be76b507..1208fd2a 100644 --- a/vtm/src/org/oscim/theme/ExternalRenderTheme.java +++ b/vtm/src/org/oscim/theme/ExternalRenderTheme.java @@ -2,6 +2,7 @@ * Copyright 2010, 2011, 2012 mapsforge.org * Copyright 2013 Hannes Janetzek * Copyright 2016-2017 devemux86 + * Copyright 2017 Andrey Novikov * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). * @@ -107,6 +108,11 @@ public class ExternalRenderTheme implements ThemeFile { return is; } + @Override + public boolean isMapsforgeTheme() { + return ThemeUtils.isMapsforgeTheme(this); + } + @Override public void setMenuCallback(XmlRenderThemeMenuCallback menuCallback) { mMenuCallback = menuCallback; diff --git a/vtm/src/org/oscim/theme/StreamRenderTheme.java b/vtm/src/org/oscim/theme/StreamRenderTheme.java index 6bf3660a..961d1a5c 100644 --- a/vtm/src/org/oscim/theme/StreamRenderTheme.java +++ b/vtm/src/org/oscim/theme/StreamRenderTheme.java @@ -1,5 +1,6 @@ /* * Copyright 2016-2017 devemux86 + * Copyright 2017 Andrey Novikov * * This program is free software: you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License as published by the Free Software @@ -89,6 +90,11 @@ public class StreamRenderTheme implements ThemeFile { return mInputStream; } + @Override + public boolean isMapsforgeTheme() { + return ThemeUtils.isMapsforgeTheme(this); + } + @Override public void setMenuCallback(XmlRenderThemeMenuCallback menuCallback) { mMenuCallback = menuCallback; diff --git a/vtm/src/org/oscim/theme/ThemeFile.java b/vtm/src/org/oscim/theme/ThemeFile.java index e9cd88e1..b75b9d9d 100644 --- a/vtm/src/org/oscim/theme/ThemeFile.java +++ b/vtm/src/org/oscim/theme/ThemeFile.java @@ -2,6 +2,7 @@ * Copyright 2010, 2011, 2012 mapsforge.org * Copyright 2013 Hannes Janetzek * Copyright 2016-2017 devemux86 + * Copyright 2017 Andrey Novikov * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). * @@ -43,6 +44,13 @@ public interface ThemeFile extends Serializable { */ InputStream getRenderThemeAsStream() throws ThemeException; + /** + * Tells ThemeLoader if theme file is in Mapsforge format + * + * @return true if theme file is in Mapsforge format + */ + boolean isMapsforgeTheme(); + /** * @param menuCallback the interface callback to create a settings menu on the fly. */ diff --git a/vtm/src/org/oscim/theme/ThemeLoader.java b/vtm/src/org/oscim/theme/ThemeLoader.java index 620115ce..aba0cb4e 100644 --- a/vtm/src/org/oscim/theme/ThemeLoader.java +++ b/vtm/src/org/oscim/theme/ThemeLoader.java @@ -2,6 +2,7 @@ * Copyright 2013 Hannes Janetzek * Copyright 2016-2017 devemux86 * Copyright 2017 Longri + * Copyright 2017 Andrey Novikov * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). * @@ -46,7 +47,7 @@ public class ThemeLoader { public static IRenderTheme load(ThemeFile theme, ThemeCallback themeCallback) throws ThemeException { IRenderTheme t; - if (ThemeUtils.isMapsforgeTheme(theme)) + if (theme.isMapsforgeTheme()) t = Parameters.TEXTURE_ATLAS ? XmlMapsforgeAtlasThemeBuilder.read(theme, themeCallback) : XmlMapsforgeThemeBuilder.read(theme, themeCallback); else t = Parameters.TEXTURE_ATLAS ? XmlAtlasThemeBuilder.read(theme, themeCallback) : XmlThemeBuilder.read(theme, themeCallback);