From 0b880e0f0c40404edf46bcf7dc163bd54999b141 Mon Sep 17 00:00:00 2001 From: Hannes Janetzek <hannes.janetzek@gmail.com> Date: Sat, 26 Oct 2013 22:53:21 +0200 Subject: [PATCH] fix: clear labels should not always trigger relabeling --- .../tile/vector/labeling/LabelLayer.java | 3 +++ .../tile/vector/labeling/TextRenderer.java | 20 ++++++++----------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/vtm/src/org/oscim/layers/tile/vector/labeling/LabelLayer.java b/vtm/src/org/oscim/layers/tile/vector/labeling/LabelLayer.java index 2056123e..cd153dca 100644 --- a/vtm/src/org/oscim/layers/tile/vector/labeling/LabelLayer.java +++ b/vtm/src/org/oscim/layers/tile/vector/labeling/LabelLayer.java @@ -45,6 +45,9 @@ public class LabelLayer extends Layer implements EventListener, Map.UpdateListen mMap.removeListener(MotionEvent.TYPE, this); // TODO stop and clear labeling thread + log.debug("DETACH"); + mTextRenderer.clearLabels(); + super.onDetach(); } diff --git a/vtm/src/org/oscim/layers/tile/vector/labeling/TextRenderer.java b/vtm/src/org/oscim/layers/tile/vector/labeling/TextRenderer.java index 6fb092f3..6845c367 100644 --- a/vtm/src/org/oscim/layers/tile/vector/labeling/TextRenderer.java +++ b/vtm/src/org/oscim/layers/tile/vector/labeling/TextRenderer.java @@ -627,7 +627,7 @@ class TextRenderer extends ElementRenderer { /* private */boolean mRelabel; class LabelTask implements Runnable { - boolean isCancelled; + private boolean isCancelled; @Override public void run() { @@ -646,12 +646,17 @@ class TextRenderer extends ElementRenderer { mLabelTask = null; mRequestRun = false; + isCancelled = false; if (mRelabel) { mRelabel = false; postLabelTask(); } } + + public void cancel() { + isCancelled = true; + } } /* private */void cleanup() { @@ -725,19 +730,10 @@ class TextRenderer extends ElementRenderer { public synchronized void clearLabels() { if (mRequestRun) { mRequestClear = true; - mRelabel = true; + //mRelabel = true; } else { cleanup(); - postLabelTask(); + //postLabelTask(); } - - // if (mLabelHandler != null) - // mLabelHandler.removeCallbacks(mLabelUpdate); - // - // if (mLabelTask == null) { - // cleanup(); - // } else { - // mLabelTask.cancel(false); - // } } }