This commit is contained in:
wangcongtao
2020-01-10 11:51:57 +08:00
parent 8decd42f67
commit 5510ecd57f
11 changed files with 88 additions and 20 deletions

View File

@@ -20,6 +20,7 @@ import com.mogo.map.navi.OnCalculatePathItemClickInteraction;
import com.mogo.utils.WindowUtils;
import com.mogo.utils.logger.Logger;
import java.lang.ref.SoftReference;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
@@ -57,7 +58,7 @@ public class NaviOverlayHelper implements OnCalculatePathItemClickInteraction {
private int mSelectedPathId;
private CalculatePathItem mSelectedCalculatePathItem;
private OnCalculatePathItemClickInteraction mLineClickInteraction;
private SoftReference< OnCalculatePathItemClickInteraction > mLineClickInteractionRef;
public NaviOverlayHelper( AMapNavi mAMapNavi, AMap mAMap, Context mContext ) {
this.mAMapNavi = mAMapNavi;
@@ -180,7 +181,6 @@ public class NaviOverlayHelper implements OnCalculatePathItemClickInteraction {
if ( mPaths != null ) {
mPaths.clear();
}
mLineClickInteraction = null;
}
/**
@@ -196,8 +196,8 @@ public class NaviOverlayHelper implements OnCalculatePathItemClickInteraction {
if ( mPaths != null && !mPaths.isEmpty() ) {
for ( MogoCalculatePath path : mPaths ) {
if ( TextUtils.equals( path.getTagId(), polyline.getId() ) ) {
if ( mLineClickInteraction != null ) {
mLineClickInteraction.onItemClicked( path.getTagId() );
if ( mLineClickInteractionRef != null && mLineClickInteractionRef.get() != null ) {
mLineClickInteractionRef.get().onItemClicked( path.getTagId() );
break;
}
}
@@ -317,6 +317,9 @@ public class NaviOverlayHelper implements OnCalculatePathItemClickInteraction {
}
public void setLineClickInteraction( OnCalculatePathItemClickInteraction lineClickInteraction ) {
mLineClickInteraction = lineClickInteraction;
if ( mLineClickInteractionRef != null ) {
mLineClickInteractionRef.clear();
}
mLineClickInteractionRef = new SoftReference<>( lineClickInteraction );
}
}