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);
|
mMap.removeListener(MotionEvent.TYPE, this);
|
||||||
|
|
||||||
// TODO stop and clear labeling thread
|
// TODO stop and clear labeling thread
|
||||||
|
log.debug("DETACH");
|
||||||
|
mTextRenderer.clearLabels();
|
||||||
|
|
||||||
super.onDetach();
|
super.onDetach();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -627,7 +627,7 @@ class TextRenderer extends ElementRenderer {
|
|||||||
/* private */boolean mRelabel;
|
/* private */boolean mRelabel;
|
||||||
|
|
||||||
class LabelTask implements Runnable {
|
class LabelTask implements Runnable {
|
||||||
boolean isCancelled;
|
private boolean isCancelled;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
@ -646,12 +646,17 @@ class TextRenderer extends ElementRenderer {
|
|||||||
|
|
||||||
mLabelTask = null;
|
mLabelTask = null;
|
||||||
mRequestRun = false;
|
mRequestRun = false;
|
||||||
|
isCancelled = false;
|
||||||
|
|
||||||
if (mRelabel) {
|
if (mRelabel) {
|
||||||
mRelabel = false;
|
mRelabel = false;
|
||||||
postLabelTask();
|
postLabelTask();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void cancel() {
|
||||||
|
isCancelled = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* private */void cleanup() {
|
/* private */void cleanup() {
|
||||||
@ -725,19 +730,10 @@ class TextRenderer extends ElementRenderer {
|
|||||||
public synchronized void clearLabels() {
|
public synchronized void clearLabels() {
|
||||||
if (mRequestRun) {
|
if (mRequestRun) {
|
||||||
mRequestClear = true;
|
mRequestClear = true;
|
||||||
mRelabel = true;
|
//mRelabel = true;
|
||||||
} else {
|
} else {
|
||||||
cleanup();
|
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