From 5f65d8e6fb5bf546d1ee4df45362b753ee5f766e Mon Sep 17 00:00:00 2001 From: Adam Domagalski Date: Tue, 6 Nov 2018 23:51:46 +0100 Subject: [PATCH] marker removing --- .../wmi/findmytutor/activity/MapActivity.java | 47 +++++++++++++------ 1 file changed, 32 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/uam/wmi/findmytutor/activity/MapActivity.java b/app/src/main/java/com/uam/wmi/findmytutor/activity/MapActivity.java index 9eb5cc4..1374548 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/activity/MapActivity.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/activity/MapActivity.java @@ -57,7 +57,10 @@ import com.uam.wmi.findmytutor.utils.PrefUtils; import com.uam.wmi.findmytutor.utils.RestApiHelper; import com.uam.wmi.findmytutor.utils.mapUtils; +import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import io.reactivex.android.schedulers.AndroidSchedulers; @@ -67,6 +70,7 @@ import io.reactivex.schedulers.Schedulers; import okhttp3.ResponseBody; import timber.log.Timber; import java.util.Locale; +import java.util.Set; public class MapActivity extends BaseActivity @@ -90,6 +94,8 @@ public class MapActivity extends BaseActivity private Marker droppedMarker; private HashMap coordsMap = new HashMap<>(); private HashMap markerHash = new HashMap<>(); + private Set previousCoordsIds = new HashSet<>(); + private int zoomParam = 17; private int bearingParam = 180; @@ -101,7 +107,6 @@ public class MapActivity extends BaseActivity @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - final SharedPreferences sharedPref = getSharedPreferences("fmtPrefs", Context.MODE_PRIVATE); final String authToken = sharedPref.getString("authToken", null); @@ -298,8 +303,30 @@ public class MapActivity extends BaseActivity @Override public void onSuccess(List coordsList) { + ArrayList currentCoordsIds = new ArrayList<>(); + for (Coordinate coordinate : coordsList) { + currentCoordsIds.add(coordinate.getUserId()); + } + +// Set currentCoordsIds = new HashSet(tmp); + if (previousCoordsIds.isEmpty()){ + previousCoordsIds.addAll(currentCoordsIds); + } else { + // here we clear + it returns bool if smthing was removed + if (previousCoordsIds.removeAll(currentCoordsIds)) { + for (String toRemoveId: previousCoordsIds) { + Log.e(tag+ "delete: " , "removing: " + toRemoveId + ": " + markerHash.get(toRemoveId)); + mapboxMap.removeMarker(markerHash.get(toRemoveId)); + markerHash.remove(toRemoveId); + coordsMap.remove(toRemoveId); + } + } else { + Log.e(tag+ "delete: ","nothing to remove"); + } + } + + - Log.e(tag, ""); for (Coordinate element : coordsList) { String id = element.getUserId(); @@ -348,19 +375,9 @@ public class MapActivity extends BaseActivity } } - /* for (Coordinate coordinate : coordsMap.values()) { - // 300000 = 5mins - if ((System.currentTimeMillis() - coordinate.getTimeStamp()) > (long) 300000) { - String id = coordinate.getUserId(); - Marker markerToRemove = markerHash.get(id); - markerHash.remove(id); - coordsMap.remove(id); - mapboxMap.removeMarker(markerToRemove); - } - - }*/ - - + // For next fetch + previousCoordsIds.clear(); + previousCoordsIds.addAll(currentCoordsIds); } @SuppressLint("LongLogTag")