From e85e056a0c772fd5660cae32a787261051febe4a Mon Sep 17 00:00:00 2001 From: Emux Date: Tue, 20 Feb 2018 15:53:45 +0200 Subject: [PATCH] ItemizedLayer synchronized API, fix #507 --- docs/Changelog.md | 1 + .../overlays/ItemizedOverlayWithBubble.java | 4 ++-- .../oscim/layers/marker/ItemizedLayer.java | 22 +++++++++---------- .../org/oscim/layers/marker/MarkerLayer.java | 8 +++---- 4 files changed, 18 insertions(+), 17 deletions(-) diff --git a/docs/Changelog.md b/docs/Changelog.md index c16a6afd..d4e4e763 100644 --- a/docs/Changelog.md +++ b/docs/Changelog.md @@ -17,6 +17,7 @@ - `Parameters.POLY_SYMBOL = true;` - Map fractional zoom [#487](https://github.com/mapsforge/vtm/issues/487) - Render theme fallback internal resources [#477](https://github.com/mapsforge/vtm/issues/477) +- Fix ItemizedLayer synchronization [#507](https://github.com/mapsforge/vtm/issues/507) - Fix FadeStep alpha interpolation [#486](https://github.com/mapsforge/vtm/issues/486) - Fix libGDX flickering [#148](https://github.com/mapsforge/vtm/issues/148) [#149](https://github.com/mapsforge/vtm/issues/149) - JTS (LocationTech) [#484](https://github.com/mapsforge/vtm/issues/484) diff --git a/vtm-app/src/org/osmdroid/overlays/ItemizedOverlayWithBubble.java b/vtm-app/src/org/osmdroid/overlays/ItemizedOverlayWithBubble.java index 2a68ab4f..15925709 100644 --- a/vtm-app/src/org/osmdroid/overlays/ItemizedOverlayWithBubble.java +++ b/vtm-app/src/org/osmdroid/overlays/ItemizedOverlayWithBubble.java @@ -179,7 +179,7 @@ public class ItemizedOverlayWithBubble extends } @Override - public boolean removeItem(final Item item) { + public synchronized boolean removeItem(final Item item) { boolean result = super.removeItem(item); if (mItemWithBubble == item) { hideBubble(); @@ -188,7 +188,7 @@ public class ItemizedOverlayWithBubble extends } @Override - public void removeAllItems() { + public synchronized void removeAllItems() { super.removeAllItems(); hideBubble(); } diff --git a/vtm/src/org/oscim/layers/marker/ItemizedLayer.java b/vtm/src/org/oscim/layers/marker/ItemizedLayer.java index 2fc81559..8dcf5165 100644 --- a/vtm/src/org/oscim/layers/marker/ItemizedLayer.java +++ b/vtm/src/org/oscim/layers/marker/ItemizedLayer.java @@ -2,7 +2,7 @@ * Copyright 2012 osmdroid authors: Nicolas Gramlich, Theodore Hong, Fred Eisele * * Copyright 2013 Hannes Janetzek - * Copyright 2016-2017 devemux86 + * Copyright 2016-2018 devemux86 * Copyright 2016 Stephan Leuschner * Copyright 2016 Pedinel * @@ -81,53 +81,53 @@ public class ItemizedLayer extends MarkerLayer items) { + public synchronized boolean addItems(Collection items) { final boolean result = mItemList.addAll(items); populate(); return result; } - public List getItemList() { + public synchronized List getItemList() { return mItemList; } - public void removeAllItems() { + public synchronized void removeAllItems() { removeAllItems(true); } - public void removeAllItems(boolean withPopulate) { + public synchronized void removeAllItems(boolean withPopulate) { mItemList.clear(); if (withPopulate) { populate(); } } - public boolean removeItem(Item item) { + public synchronized boolean removeItem(Item item) { final boolean result = mItemList.remove(item); populate(); return result; } - public Item removeItem(int position) { + public synchronized Item removeItem(int position) { final Item result = mItemList.remove(position); populate(); return result; diff --git a/vtm/src/org/oscim/layers/marker/MarkerLayer.java b/vtm/src/org/oscim/layers/marker/MarkerLayer.java index 3b748e72..d07da575 100644 --- a/vtm/src/org/oscim/layers/marker/MarkerLayer.java +++ b/vtm/src/org/oscim/layers/marker/MarkerLayer.java @@ -6,7 +6,7 @@ * * Copyright 2013 Hannes Janetzek * Copyright 2016 Stephan Leuschner - * Copyright 2016 devemux86 + * Copyright 2016-2018 devemux86 * Copyright 2017 Longri * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). @@ -71,7 +71,7 @@ public abstract class MarkerLayer extends Layer { * should call this as soon as it has data, before anything else gets * called. */ - public final void populate() { + public final synchronized void populate() { mMarkerRenderer.populate(size()); } @@ -85,7 +85,7 @@ public abstract class MarkerLayer extends Layer { * * @param item */ - public void setFocus(Item item) { + public synchronized void setFocus(Item item) { mFocusedItem = item; } @@ -93,7 +93,7 @@ public abstract class MarkerLayer extends Layer { * @return the currently-focused item, or null if no item is currently * focused. */ - public Item getFocus() { + public synchronized Item getFocus() { return mFocusedItem; }