fix: clear labels should not always trigger relabeling
This commit is contained in:
parent
5cb3eb9dd1
commit
0b880e0f0c
@ -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();
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user