fix: clear labels should not always trigger relabeling

This commit is contained in:
Hannes Janetzek 2013-10-26 22:53:21 +02:00
parent 5cb3eb9dd1
commit 0b880e0f0c
2 changed files with 11 additions and 12 deletions

View File

@ -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();
}

View File

@ -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);
// }
}
}