Add default icon for each type of localization
This commit is contained in:
parent
fca6cd936c
commit
73fc5f9b0b
@ -153,9 +153,10 @@ public class LoginActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
|
|
||||||
private void loginProcess(String email, String password) {
|
private void loginProcess(String email, String password) {
|
||||||
ValidateUser user = new ValidateUser(email, password);
|
/*ValidateUser user = new ValidateUser(email, password);*/
|
||||||
|
LdapUser user = new LdapUser("Mieszko","asdasdsa","admin","tutor","Mieszko", "Wrzeszczyński", "email@op.pl");
|
||||||
|
|
||||||
disposable.add(ldapService.validate(user)
|
disposable.add(ldapService.fakeValidate(user)
|
||||||
.subscribeOn(Schedulers.io())
|
.subscribeOn(Schedulers.io())
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
.subscribe(this::handleResponse, this::handleError));
|
.subscribe(this::handleResponse, this::handleError));
|
||||||
|
@ -41,8 +41,10 @@ import com.uam.wmi.findmytutor.model.User;
|
|||||||
import com.uam.wmi.findmytutor.network.ApiClient;
|
import com.uam.wmi.findmytutor.network.ApiClient;
|
||||||
import com.uam.wmi.findmytutor.service.CoordinateService;
|
import com.uam.wmi.findmytutor.service.CoordinateService;
|
||||||
import com.uam.wmi.findmytutor.service.UserService;
|
import com.uam.wmi.findmytutor.service.UserService;
|
||||||
|
import com.uam.wmi.findmytutor.utils.MapMarker;
|
||||||
import com.uam.wmi.findmytutor.utils.PrefUtils;
|
import com.uam.wmi.findmytutor.utils.PrefUtils;
|
||||||
import com.uam.wmi.findmytutor.utils.RestApiHelper;
|
import com.uam.wmi.findmytutor.utils.RestApiHelper;
|
||||||
|
import com.uam.wmi.findmytutor.utils.SharingLevel;
|
||||||
import com.uam.wmi.findmytutor.utils.mapUtils;
|
import com.uam.wmi.findmytutor.utils.mapUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -61,8 +63,7 @@ import timber.log.Timber;
|
|||||||
|
|
||||||
public class MapActivity extends BaseActivity
|
public class MapActivity extends BaseActivity
|
||||||
implements PermissionsListener, OnMapReadyCallback {
|
implements PermissionsListener, OnMapReadyCallback {
|
||||||
|
|
||||||
|
|
||||||
private String tag = getClass().getName();
|
private String tag = getClass().getName();
|
||||||
private PermissionsManager permissionsManager;
|
private PermissionsManager permissionsManager;
|
||||||
private LocationComponent locationComponent;
|
private LocationComponent locationComponent;
|
||||||
@ -82,7 +83,7 @@ public class MapActivity extends BaseActivity
|
|||||||
private Marker tmpLocalMarker;
|
private Marker tmpLocalMarker;
|
||||||
private Coordinate droppedMarkercoordinate;
|
private Coordinate droppedMarkercoordinate;
|
||||||
private HashMap<String, Coordinate> coordsMap = new HashMap<>();
|
private HashMap<String, Coordinate> coordsMap = new HashMap<>();
|
||||||
private HashMap<String, Marker> markerHash = new HashMap<>();
|
private HashMap<String, MapMarker> markerHash = new HashMap<>();
|
||||||
private Set<String> previousCoordsIds = new HashSet<>();
|
private Set<String> previousCoordsIds = new HashSet<>();
|
||||||
|
|
||||||
// Camera Animation params
|
// Camera Animation params
|
||||||
@ -112,9 +113,6 @@ public class MapActivity extends BaseActivity
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
Bundle extras = getIntent().getExtras();
|
|
||||||
|
|
||||||
selectLocationButton = findViewById(R.id.select_location_button);
|
selectLocationButton = findViewById(R.id.select_location_button);
|
||||||
removeLocationButton = findViewById(R.id.remove_location_button);
|
removeLocationButton = findViewById(R.id.remove_location_button);
|
||||||
Mapbox.getInstance(this, getString(R.string.access_token));
|
Mapbox.getInstance(this, getString(R.string.access_token));
|
||||||
@ -157,7 +155,6 @@ public class MapActivity extends BaseActivity
|
|||||||
|
|
||||||
setToggleMapBoundsArea();
|
setToggleMapBoundsArea();
|
||||||
setOnMapLongClickListener();
|
setOnMapLongClickListener();
|
||||||
// addStaticLayer();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setToggleMapBoundsArea() {
|
private void setToggleMapBoundsArea() {
|
||||||
@ -333,7 +330,6 @@ public class MapActivity extends BaseActivity
|
|||||||
@Override
|
@Override
|
||||||
public void onSuccess(List<Coordinate> coordsList) {
|
public void onSuccess(List<Coordinate> coordsList) {
|
||||||
|
|
||||||
|
|
||||||
if (coordsList.isEmpty() && tmpLocalMarker != null) {
|
if (coordsList.isEmpty() && tmpLocalMarker != null) {
|
||||||
Timber.e("200 empty []");
|
Timber.e("200 empty []");
|
||||||
mapboxMap.clear();
|
mapboxMap.clear();
|
||||||
@ -346,6 +342,7 @@ public class MapActivity extends BaseActivity
|
|||||||
}
|
}
|
||||||
|
|
||||||
Set<String> currentCoordsIds = new HashSet<>(tmp);
|
Set<String> currentCoordsIds = new HashSet<>(tmp);
|
||||||
|
|
||||||
if (previousCoordsIds.isEmpty()) {
|
if (previousCoordsIds.isEmpty()) {
|
||||||
previousCoordsIds.addAll(currentCoordsIds);
|
previousCoordsIds.addAll(currentCoordsIds);
|
||||||
} else {
|
} else {
|
||||||
@ -353,7 +350,7 @@ public class MapActivity extends BaseActivity
|
|||||||
if (previousCoordsIds.removeAll(currentCoordsIds)) {
|
if (previousCoordsIds.removeAll(currentCoordsIds)) {
|
||||||
for (String toRemoveId : previousCoordsIds) {
|
for (String toRemoveId : previousCoordsIds) {
|
||||||
Log.e(tag + "delete: ", "removing: " + toRemoveId + ": " + markerHash.get(toRemoveId));
|
Log.e(tag + "delete: ", "removing: " + toRemoveId + ": " + markerHash.get(toRemoveId));
|
||||||
mapboxMap.removeMarker(markerHash.get(toRemoveId));
|
mapboxMap.removeMarker(markerHash.get(toRemoveId).getMarker());
|
||||||
markerHash.remove(toRemoveId);
|
markerHash.remove(toRemoveId);
|
||||||
coordsMap.remove(toRemoveId);
|
coordsMap.remove(toRemoveId);
|
||||||
}
|
}
|
||||||
@ -367,6 +364,7 @@ public class MapActivity extends BaseActivity
|
|||||||
for (Coordinate element : coordsList) {
|
for (Coordinate element : coordsList) {
|
||||||
String id = element.getUserId();
|
String id = element.getUserId();
|
||||||
String newLabel = element.getLabel();
|
String newLabel = element.getLabel();
|
||||||
|
String newSharingLevel = element.getDisplayMode();
|
||||||
|
|
||||||
Coordinate coordinate = coordsMap.get(id);
|
Coordinate coordinate = coordsMap.get(id);
|
||||||
Log.e(tag, "hashMapSize: " + coordsMap.size());
|
Log.e(tag, "hashMapSize: " + coordsMap.size());
|
||||||
@ -375,11 +373,13 @@ public class MapActivity extends BaseActivity
|
|||||||
if (coordinate != null) {
|
if (coordinate != null) {
|
||||||
Log.e(tag, "Coordin: " + coordinate.getLatitude() + " | " + coordinate.getLongitude());
|
Log.e(tag, "Coordin: " + coordinate.getLatitude() + " | " + coordinate.getLongitude());
|
||||||
|
|
||||||
boolean statement = coordinate.getLatitude().equals(element.getLatitude()) || coordinate.getLongitude().equals(element.getLongitude());
|
|
||||||
Log.e(tag, "diff || diff: " + !statement);
|
boolean isTheSameLocalisation = coordinate.getLatitude().equals(element.getLatitude()) || coordinate.getLongitude().equals(element.getLongitude());
|
||||||
if (!statement) {
|
Log.e(tag, "diff || diff: " + !isTheSameLocalisation);
|
||||||
|
|
||||||
|
if (!isTheSameLocalisation) {
|
||||||
Log.e(tag, "replace and animate");
|
Log.e(tag, "replace and animate");
|
||||||
Marker marker = markerHash.get(id);
|
Marker marker = markerHash.get(id).getMarker();
|
||||||
|
|
||||||
LatLng toDestination = new LatLng(element.getLatitude(), element.getLongitude());
|
LatLng toDestination = new LatLng(element.getLatitude(), element.getLongitude());
|
||||||
// TODO fix flickiering markers
|
// TODO fix flickiering markers
|
||||||
@ -398,25 +398,72 @@ public class MapActivity extends BaseActivity
|
|||||||
marker.setPosition(toDestination);
|
marker.setPosition(toDestination);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
Log.e(tag, "Marker Added: " + id);
|
Log.e(tag, "Marker Added: " + id);
|
||||||
|
|
||||||
coordsMap.put(id, element);
|
coordsMap.put(id, element);
|
||||||
|
|
||||||
MarkerOptions markerOptions = new MarkerOptions()
|
/*
|
||||||
.title(id)
|
|
||||||
.position(new LatLng(element.getLatitude(), element.getLongitude()));
|
|
||||||
// Check if this is me
|
// Check if this is me
|
||||||
if (id.equals(myID)) {
|
if (id.equals(myID)) {
|
||||||
Icon icon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.blue_marker);
|
Icon icon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.blue_marker);
|
||||||
markerOptions.setIcon(icon);
|
markerOptions.setIcon(icon);
|
||||||
|
} */
|
||||||
|
|
||||||
|
String sharingLevel = coordsMap.get(id).getDisplayMode();
|
||||||
|
Icon defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.red_marker);
|
||||||
|
|
||||||
|
if(sharingLevel.equals(SharingLevel.APPROXIMATED.toString())){
|
||||||
|
defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.blue_marker);
|
||||||
|
}else if(sharingLevel.equals(SharingLevel.MANUAL.toString())){
|
||||||
|
defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.green_marker);
|
||||||
|
}else if(id.equals(myID)){
|
||||||
|
defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.custom_marker);
|
||||||
}
|
}
|
||||||
Marker marker = mapboxMap.addMarker(markerOptions);
|
|
||||||
|
MarkerOptions markerOptions = new MarkerOptions()
|
||||||
|
.title(id)
|
||||||
|
.setIcon(defaultIcon)
|
||||||
|
.position(new LatLng(element.getLatitude(), element.getLongitude()));
|
||||||
|
|
||||||
|
Marker markerMapbox = mapboxMap.addMarker(markerOptions);
|
||||||
|
MapMarker marker = new MapMarker(markerMapbox, markerOptions, defaultIcon, sharingLevel);
|
||||||
|
|
||||||
markerHash.put(id, marker);
|
markerHash.put(id, marker);
|
||||||
}
|
}
|
||||||
|
|
||||||
coordsMap.get(id).setLabel(newLabel);
|
coordsMap.get(id).setLabel(newLabel);
|
||||||
|
|
||||||
|
|
||||||
|
boolean newLocalizationMode = coordsMap.get(id).getDisplayMode().equals(newSharingLevel);
|
||||||
|
|
||||||
|
if(newLocalizationMode){
|
||||||
|
Log.e("LOC","Nowy tryb" + coordsMap.get(id).getDisplayMode().toString() + " " + newSharingLevel );
|
||||||
|
coordsMap.get(id).setDisplayMode(newSharingLevel);
|
||||||
|
|
||||||
|
MapMarker marker = markerHash.get(id);
|
||||||
|
|
||||||
|
Icon defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.red_marker);
|
||||||
|
|
||||||
|
if(newSharingLevel.equals(SharingLevel.APPROXIMATED.toString())){
|
||||||
|
defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.blue_marker);
|
||||||
|
}else if(newSharingLevel.equals(SharingLevel.MANUAL.toString())){
|
||||||
|
defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.green_marker);
|
||||||
|
}else if(id.equals(myID)){
|
||||||
|
defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.custom_marker);
|
||||||
|
}
|
||||||
|
|
||||||
|
marker.setDefaultIcon(defaultIcon);
|
||||||
|
marker.restoreDefaultIcon();
|
||||||
|
|
||||||
|
// chba niepotrzbene
|
||||||
|
mapboxMap.getMarkerViewManager().update();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// For next fetch
|
// For next fetch
|
||||||
@ -562,7 +609,6 @@ public class MapActivity extends BaseActivity
|
|||||||
@Override
|
@Override
|
||||||
public void onRequestPermissionsResult(int requestCode, @android.support.annotation.NonNull String[] permissions, @android.support.annotation.NonNull int[] grantResults) {
|
public void onRequestPermissionsResult(int requestCode, @android.support.annotation.NonNull String[] permissions, @android.support.annotation.NonNull int[] grantResults) {
|
||||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||||
// permissionsManager.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -609,23 +655,25 @@ public class MapActivity extends BaseActivity
|
|||||||
private void filterMarkers(List<User> users) {
|
private void filterMarkers(List<User> users) {
|
||||||
restoreMapMarkers();
|
restoreMapMarkers();
|
||||||
|
|
||||||
Icon icon1 = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.custom_marker);
|
Icon markedMarker = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.custom_marker);
|
||||||
|
|
||||||
List<Marker> markersToSet = Stream.of(mapboxMap.getMarkers())
|
List<MapMarker> markersToSet = Stream.of(markerHash.values())
|
||||||
.filter(m -> Stream.of(users).anyMatch(u -> u.getId().equals(m.getTitle())))
|
.filter(m -> Stream.of(users).anyMatch(u -> u.getId().equals(m.getMarker().getTitle())))
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
for (Marker marker : markersToSet) {
|
for (MapMarker marker : markersToSet) {
|
||||||
marker.setIcon(icon1);
|
marker.getMarker().setIcon(markedMarker);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mapboxMap.getMarkerViewManager().update();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void restoreMapMarkers() {
|
public void restoreMapMarkers() {
|
||||||
Icon icon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.red_marker);
|
for (MapMarker marker : markerHash.values()) {
|
||||||
|
marker.restoreDefaultIcon();
|
||||||
for (Marker marker : mapboxMap.getMarkers()) {
|
|
||||||
marker.setIcon(icon);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mapboxMap.getMarkerViewManager().update();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,50 @@
|
|||||||
|
package com.uam.wmi.findmytutor.utils;
|
||||||
|
|
||||||
|
import com.mapbox.mapboxsdk.annotations.Icon;
|
||||||
|
import com.mapbox.mapboxsdk.annotations.Marker;
|
||||||
|
import com.mapbox.mapboxsdk.annotations.MarkerOptions;
|
||||||
|
|
||||||
|
public class MapMarker {
|
||||||
|
|
||||||
|
private MarkerOptions markerOptions;
|
||||||
|
private Marker marker;
|
||||||
|
private String markerType;
|
||||||
|
private Icon defaultIcon;
|
||||||
|
private Icon markerIcon;
|
||||||
|
|
||||||
|
|
||||||
|
public MapMarker(Marker marker, MarkerOptions markerOptions, Icon icon, String markerType) {
|
||||||
|
this.setMarker(marker);
|
||||||
|
this.setMarkerOptions(markerOptions);
|
||||||
|
this.defaultIcon = icon;
|
||||||
|
this.markerType = markerType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void restoreDefaultIcon() {
|
||||||
|
this.marker.setIcon(this.defaultIcon);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDefaultIcon(Icon icon) {
|
||||||
|
this.defaultIcon = icon;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void changeMarkerType(String markerType) {
|
||||||
|
this.markerType = markerType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MarkerOptions getMarkerOptions() {
|
||||||
|
return markerOptions;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setMarkerOptions(MarkerOptions marker) {
|
||||||
|
this.markerOptions = marker;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Marker getMarker() {
|
||||||
|
return marker;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMarker(Marker marker) {
|
||||||
|
this.marker = marker;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user