From f77c46f56dbc20dc756a39af8dcfcdea6e16db4d Mon Sep 17 00:00:00 2001 From: Emux Date: Thu, 1 Jun 2017 14:53:11 +0300 Subject: [PATCH] Render theme styles: allow setting menu callback #93 --- .../src/org/oscim/android/theme/AssetsRenderTheme.java | 9 +++++++-- vtm-themes/src/org/oscim/theme/VtmThemes.java | 6 +++++- vtm/src/org/oscim/theme/ExternalRenderTheme.java | 9 +++++++-- vtm/src/org/oscim/theme/StreamRenderTheme.java | 9 +++++++-- vtm/src/org/oscim/theme/ThemeFile.java | 10 +++++++++- 5 files changed, 35 insertions(+), 8 deletions(-) diff --git a/vtm-android/src/org/oscim/android/theme/AssetsRenderTheme.java b/vtm-android/src/org/oscim/android/theme/AssetsRenderTheme.java index 6ec1fb79..5e4642e5 100644 --- a/vtm-android/src/org/oscim/android/theme/AssetsRenderTheme.java +++ b/vtm-android/src/org/oscim/android/theme/AssetsRenderTheme.java @@ -1,6 +1,6 @@ /* * Copyright 2010, 2011, 2012 mapsforge.org - * Copyright 2016 devemux86 + * Copyright 2016-2017 devemux86 * * 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 @@ -34,7 +34,7 @@ public class AssetsRenderTheme implements ThemeFile { private static final long serialVersionUID = 1L; private final InputStream mInputStream; - private final XmlRenderThemeMenuCallback mMenuCallback; + private XmlRenderThemeMenuCallback mMenuCallback; private final String mRelativePathPrefix; /** @@ -96,4 +96,9 @@ public class AssetsRenderTheme implements ThemeFile { public InputStream getRenderThemeAsStream() throws ThemeException { return mInputStream; } + + @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 c8a34e37..bb0146d2 100644 --- a/vtm-themes/src/org/oscim/theme/VtmThemes.java +++ b/vtm-themes/src/org/oscim/theme/VtmThemes.java @@ -1,7 +1,7 @@ /* * Copyright 2010, 2011, 2012 mapsforge.org * Copyright 2013 Hannes Janetzek - * Copyright 2016 devemux86 + * Copyright 2016-2017 devemux86 * Copyright 2017 nebular * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). @@ -56,4 +56,8 @@ public enum VtmThemes implements ThemeFile { public InputStream getRenderThemeAsStream() throws ThemeException { return AssetAdapter.readFileAsStream(mPath); } + + @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 ece85407..be76b507 100644 --- a/vtm/src/org/oscim/theme/ExternalRenderTheme.java +++ b/vtm/src/org/oscim/theme/ExternalRenderTheme.java @@ -1,7 +1,7 @@ /* * Copyright 2010, 2011, 2012 mapsforge.org * Copyright 2013 Hannes Janetzek - * Copyright 2016 devemux86 + * Copyright 2016-2017 devemux86 * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). * @@ -33,7 +33,7 @@ public class ExternalRenderTheme implements ThemeFile { private static final long serialVersionUID = 1L; private final long mFileModificationDate; - private final XmlRenderThemeMenuCallback mMenuCallback; + private XmlRenderThemeMenuCallback mMenuCallback; private final String mPath; /** @@ -106,4 +106,9 @@ public class ExternalRenderTheme implements ThemeFile { } return is; } + + @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 3372b265..c9a591f8 100644 --- a/vtm/src/org/oscim/theme/StreamRenderTheme.java +++ b/vtm/src/org/oscim/theme/StreamRenderTheme.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 devemux86 + * Copyright 2016-2017 devemux86 * * 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 @@ -27,7 +27,7 @@ public class StreamRenderTheme implements ThemeFile { private static final long serialVersionUID = 1L; private final InputStream mInputStream; - private final XmlRenderThemeMenuCallback mMenuCallback; + private XmlRenderThemeMenuCallback mMenuCallback; private final String mRelativePathPrefix; /** @@ -80,4 +80,9 @@ public class StreamRenderTheme implements ThemeFile { public InputStream getRenderThemeAsStream() throws ThemeException { return mInputStream; } + + @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 1555a0dd..e9cd88e1 100644 --- a/vtm/src/org/oscim/theme/ThemeFile.java +++ b/vtm/src/org/oscim/theme/ThemeFile.java @@ -1,7 +1,7 @@ /* * Copyright 2010, 2011, 2012 mapsforge.org * Copyright 2013 Hannes Janetzek - * Copyright 2016 devemux86 + * Copyright 2016-2017 devemux86 * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). * @@ -23,6 +23,9 @@ import org.oscim.theme.IRenderTheme.ThemeException; import java.io.InputStream; import java.io.Serializable; +/** + * Interface for a render theme which is defined in XML. + */ public interface ThemeFile extends Serializable { /** * @return the interface callback to create a settings menu on the fly. @@ -39,4 +42,9 @@ public interface ThemeFile extends Serializable { * @throws ThemeException if an error occurs while reading the render theme XML. */ InputStream getRenderThemeAsStream() throws ThemeException; + + /** + * @param menuCallback the interface callback to create a settings menu on the fly. + */ + void setMenuCallback(XmlRenderThemeMenuCallback menuCallback); }