From 73fc5f9b0b23be17e16698dd9452d7e942129c2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mieszko=20Wrzeszczy=C5=84ski?= Date: Fri, 23 Nov 2018 22:27:59 +0100 Subject: [PATCH 1/9] Add default icon for each type of localization --- .../findmytutor/activity/LoginActivity.java | 5 +- .../wmi/findmytutor/activity/MapActivity.java | 102 +++++++++++++----- .../uam/wmi/findmytutor/utils/MapMarker.java | 50 +++++++++ 3 files changed, 128 insertions(+), 29 deletions(-) create mode 100644 app/src/main/java/com/uam/wmi/findmytutor/utils/MapMarker.java diff --git a/app/src/main/java/com/uam/wmi/findmytutor/activity/LoginActivity.java b/app/src/main/java/com/uam/wmi/findmytutor/activity/LoginActivity.java index 912598a..1f98426 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/activity/LoginActivity.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/activity/LoginActivity.java @@ -153,9 +153,10 @@ public class LoginActivity extends AppCompatActivity { 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()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(this::handleResponse, this::handleError)); 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 0b6f8b6..14e2e70 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 @@ -41,8 +41,10 @@ import com.uam.wmi.findmytutor.model.User; import com.uam.wmi.findmytutor.network.ApiClient; import com.uam.wmi.findmytutor.service.CoordinateService; 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.RestApiHelper; +import com.uam.wmi.findmytutor.utils.SharingLevel; import com.uam.wmi.findmytutor.utils.mapUtils; import java.util.ArrayList; @@ -61,8 +63,7 @@ import timber.log.Timber; public class MapActivity extends BaseActivity implements PermissionsListener, OnMapReadyCallback { - - + private String tag = getClass().getName(); private PermissionsManager permissionsManager; private LocationComponent locationComponent; @@ -82,7 +83,7 @@ public class MapActivity extends BaseActivity private Marker tmpLocalMarker; private Coordinate droppedMarkercoordinate; private HashMap coordsMap = new HashMap<>(); - private HashMap markerHash = new HashMap<>(); + private HashMap markerHash = new HashMap<>(); private Set previousCoordsIds = new HashSet<>(); // Camera Animation params @@ -112,9 +113,6 @@ public class MapActivity extends BaseActivity } }; - - Bundle extras = getIntent().getExtras(); - selectLocationButton = findViewById(R.id.select_location_button); removeLocationButton = findViewById(R.id.remove_location_button); Mapbox.getInstance(this, getString(R.string.access_token)); @@ -157,7 +155,6 @@ public class MapActivity extends BaseActivity setToggleMapBoundsArea(); setOnMapLongClickListener(); -// addStaticLayer(); } private void setToggleMapBoundsArea() { @@ -333,7 +330,6 @@ public class MapActivity extends BaseActivity @Override public void onSuccess(List coordsList) { - if (coordsList.isEmpty() && tmpLocalMarker != null) { Timber.e("200 empty []"); mapboxMap.clear(); @@ -346,6 +342,7 @@ public class MapActivity extends BaseActivity } Set currentCoordsIds = new HashSet<>(tmp); + if (previousCoordsIds.isEmpty()) { previousCoordsIds.addAll(currentCoordsIds); } else { @@ -353,7 +350,7 @@ public class MapActivity extends BaseActivity if (previousCoordsIds.removeAll(currentCoordsIds)) { for (String toRemoveId : previousCoordsIds) { Log.e(tag + "delete: ", "removing: " + toRemoveId + ": " + markerHash.get(toRemoveId)); - mapboxMap.removeMarker(markerHash.get(toRemoveId)); + mapboxMap.removeMarker(markerHash.get(toRemoveId).getMarker()); markerHash.remove(toRemoveId); coordsMap.remove(toRemoveId); } @@ -367,6 +364,7 @@ public class MapActivity extends BaseActivity for (Coordinate element : coordsList) { String id = element.getUserId(); String newLabel = element.getLabel(); + String newSharingLevel = element.getDisplayMode(); Coordinate coordinate = coordsMap.get(id); Log.e(tag, "hashMapSize: " + coordsMap.size()); @@ -375,11 +373,13 @@ public class MapActivity extends BaseActivity if (coordinate != null) { 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); - if (!statement) { + + boolean isTheSameLocalisation = coordinate.getLatitude().equals(element.getLatitude()) || coordinate.getLongitude().equals(element.getLongitude()); + Log.e(tag, "diff || diff: " + !isTheSameLocalisation); + + if (!isTheSameLocalisation) { 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()); // TODO fix flickiering markers @@ -398,25 +398,72 @@ public class MapActivity extends BaseActivity marker.setPosition(toDestination); } + + + + } else { Log.e(tag, "Marker Added: " + id); coordsMap.put(id, element); - MarkerOptions markerOptions = new MarkerOptions() - .title(id) - .position(new LatLng(element.getLatitude(), element.getLongitude())); + /* // Check if this is me if (id.equals(myID)) { Icon icon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.blue_marker); 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); } 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 @@ -562,7 +609,6 @@ public class MapActivity extends BaseActivity @Override public void onRequestPermissionsResult(int requestCode, @android.support.annotation.NonNull String[] permissions, @android.support.annotation.NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); -// permissionsManager.onRequestPermissionsResult(requestCode, permissions, grantResults); } @Override @@ -609,23 +655,25 @@ public class MapActivity extends BaseActivity private void filterMarkers(List users) { restoreMapMarkers(); - Icon icon1 = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.custom_marker); + Icon markedMarker = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.custom_marker); - List markersToSet = Stream.of(mapboxMap.getMarkers()) - .filter(m -> Stream.of(users).anyMatch(u -> u.getId().equals(m.getTitle()))) + List markersToSet = Stream.of(markerHash.values()) + .filter(m -> Stream.of(users).anyMatch(u -> u.getId().equals(m.getMarker().getTitle()))) .toList(); - for (Marker marker : markersToSet) { - marker.setIcon(icon1); + for (MapMarker marker : markersToSet) { + marker.getMarker().setIcon(markedMarker); } + + mapboxMap.getMarkerViewManager().update(); } public void restoreMapMarkers() { - Icon icon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.red_marker); - - for (Marker marker : mapboxMap.getMarkers()) { - marker.setIcon(icon); + for (MapMarker marker : markerHash.values()) { + marker.restoreDefaultIcon(); } + + mapboxMap.getMarkerViewManager().update(); } } diff --git a/app/src/main/java/com/uam/wmi/findmytutor/utils/MapMarker.java b/app/src/main/java/com/uam/wmi/findmytutor/utils/MapMarker.java new file mode 100644 index 0000000..06b6d84 --- /dev/null +++ b/app/src/main/java/com/uam/wmi/findmytutor/utils/MapMarker.java @@ -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; + } +} From 422b1079da70b2d2b016321885b4a350d3029fc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mieszko=20Wrzeszczy=C5=84ski?= Date: Fri, 23 Nov 2018 23:36:04 +0100 Subject: [PATCH 2/9] Change icon when user change localization level --- .../wmi/findmytutor/activity/MapActivity.java | 25 ++++++++----------- .../uam/wmi/findmytutor/utils/MapMarker.java | 8 ++++++ 2 files changed, 18 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 14e2e70..e597b0e 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 @@ -337,6 +337,7 @@ public class MapActivity extends BaseActivity } ArrayList tmp = new ArrayList<>(); + for (Coordinate coordinate : coordsList) { tmp.add(coordinate.getUserId()); } @@ -367,17 +368,16 @@ public class MapActivity extends BaseActivity String newSharingLevel = element.getDisplayMode(); Coordinate coordinate = coordsMap.get(id); - Log.e(tag, "hashMapSize: " + coordsMap.size()); - Log.e(tag, "markerMapSize: " + coordsMap.size()); + /* Log.e(tag, "hashMapSize: " + coordsMap.size()); + Log.e(tag, "markerMapSize: " + coordsMap.size());*/ if (coordinate != null) { Log.e(tag, "Coordin: " + coordinate.getLatitude() + " | " + coordinate.getLongitude()); + boolean isTheSameLocalization = coordinate.getLatitude().equals(element.getLatitude()) || coordinate.getLongitude().equals(element.getLongitude()); + Log.e(tag, "diff || diff: " + !isTheSameLocalization); - boolean isTheSameLocalisation = coordinate.getLatitude().equals(element.getLatitude()) || coordinate.getLongitude().equals(element.getLongitude()); - Log.e(tag, "diff || diff: " + !isTheSameLocalisation); - - if (!isTheSameLocalisation) { + if (!isTheSameLocalization) { Log.e(tag, "replace and animate"); Marker marker = markerHash.get(id).getMarker(); @@ -391,17 +391,12 @@ public class MapActivity extends BaseActivity markerAnimator.setInterpolator(new LinearInterpolator()); markerAnimator.start(); - // chba niepotrzbene mapboxMap.getMarkerViewManager().update(); coordsMap.put(id, element); marker.setPosition(toDestination); - } - - - } else { Log.e(tag, "Marker Added: " + id); @@ -439,10 +434,11 @@ public class MapActivity extends BaseActivity coordsMap.get(id).setLabel(newLabel); - boolean newLocalizationMode = coordsMap.get(id).getDisplayMode().equals(newSharingLevel); + Boolean newLocalizationMode = markerHash.get(id).getMarkerType().equals(newSharingLevel); + markerHash.get(id).setMarkerType(newSharingLevel); - if(newLocalizationMode){ - Log.e("LOC","Nowy tryb" + coordsMap.get(id).getDisplayMode().toString() + " " + newSharingLevel ); + if(!newLocalizationMode){ + Log.e("LOC","1" + coordsMap.get(id).getDisplayMode().trim() + " " + newSharingLevel); coordsMap.get(id).setDisplayMode(newSharingLevel); MapMarker marker = markerHash.get(id); @@ -460,7 +456,6 @@ public class MapActivity extends BaseActivity marker.setDefaultIcon(defaultIcon); marker.restoreDefaultIcon(); - // chba niepotrzbene mapboxMap.getMarkerViewManager().update(); } diff --git a/app/src/main/java/com/uam/wmi/findmytutor/utils/MapMarker.java b/app/src/main/java/com/uam/wmi/findmytutor/utils/MapMarker.java index 06b6d84..6e09c23 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/utils/MapMarker.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/utils/MapMarker.java @@ -47,4 +47,12 @@ public class MapMarker { public void setMarker(Marker marker) { this.marker = marker; } + + public String getMarkerType() { + return markerType; + } + + public void setMarkerType(String markerType) { + this.markerType = markerType; + } } From aef7174d905493f0bdcbce666eb76db4b2d7b354 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mieszko=20Wrzeszczy=C5=84ski?= Date: Sat, 24 Nov 2018 00:11:06 +0100 Subject: [PATCH 3/9] Add new markers --- .../wmi/findmytutor/activity/MapActivity.java | 65 +++++++----------- .../findmytutor/activity/SharingFragment.java | 17 ++--- app/src/main/res/drawable/manual_marker.png | Bin 0 -> 389 bytes app/src/main/res/drawable/search_marker.png | Bin 0 -> 399 bytes app/src/main/res/layout/marker_modal.xml | 10 +++ 5 files changed, 40 insertions(+), 52 deletions(-) create mode 100644 app/src/main/res/drawable/manual_marker.png create mode 100644 app/src/main/res/drawable/search_marker.png 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 e597b0e..4b4ab38 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 @@ -63,7 +63,7 @@ import timber.log.Timber; public class MapActivity extends BaseActivity implements PermissionsListener, OnMapReadyCallback { - + private String tag = getClass().getName(); private PermissionsManager permissionsManager; private LocationComponent locationComponent; @@ -178,11 +178,12 @@ public class MapActivity extends BaseActivity disposable.add(userService.getUserById(userId) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(this::createMarkerModal, this::handleError)); + .subscribe(this::createMarkerModalView, this::handleError)); } - private void createMarkerModal(User user) { + private void createMarkerModalView(User user) { String cordStatus = coordsMap.get(user.getId()).getLabel(); + String sharingLevel = coordsMap.get(user.getId()).getDisplayMode(); LayoutInflater layoutInflaterAndroid = LayoutInflater.from(getApplicationContext()); @SuppressLint("InflateParams") View view = layoutInflaterAndroid.inflate(R.layout.marker_modal, null); @@ -196,12 +197,13 @@ public class MapActivity extends BaseActivity TextView userName = view.findViewById(R.id.userName); TextView status = view.findViewById(R.id.label); + TextView sharingLevelView = view.findViewById(R.id.sharing_level); userName.setText(String.format("%s %s", user.getFirstName(), user.getLastName())); - status.setText(String.format("%s ", cordStatus)); + status.setText(String.format("%s: %s", getResources().getString(R.string.status_switch_title), cordStatus)); + sharingLevelView.setText(String.format("%s: %s", getResources().getString(R.string.settings_location_level), sharingLevel)); final AlertDialog alertDialog = alertDialogBuilderUserInput.create(); - alertDialog.show(); } @@ -348,9 +350,9 @@ public class MapActivity extends BaseActivity previousCoordsIds.addAll(currentCoordsIds); } else { // here we clear + it returns bool if sth was removed + if (previousCoordsIds.removeAll(currentCoordsIds)) { for (String toRemoveId : previousCoordsIds) { - Log.e(tag + "delete: ", "removing: " + toRemoveId + ": " + markerHash.get(toRemoveId)); mapboxMap.removeMarker(markerHash.get(toRemoveId).getMarker()); markerHash.remove(toRemoveId); coordsMap.remove(toRemoveId); @@ -361,24 +363,19 @@ public class MapActivity extends BaseActivity } } - for (Coordinate element : coordsList) { String id = element.getUserId(); String newLabel = element.getLabel(); String newSharingLevel = element.getDisplayMode(); Coordinate coordinate = coordsMap.get(id); - /* Log.e(tag, "hashMapSize: " + coordsMap.size()); - Log.e(tag, "markerMapSize: " + coordsMap.size());*/ if (coordinate != null) { - Log.e(tag, "Coordin: " + coordinate.getLatitude() + " | " + coordinate.getLongitude()); boolean isTheSameLocalization = coordinate.getLatitude().equals(element.getLatitude()) || coordinate.getLongitude().equals(element.getLongitude()); - Log.e(tag, "diff || diff: " + !isTheSameLocalization); if (!isTheSameLocalization) { - Log.e(tag, "replace and animate"); + //Replace prev marker and animate Marker marker = markerHash.get(id).getMarker(); LatLng toDestination = new LatLng(element.getLatitude(), element.getLongitude()); @@ -398,25 +395,18 @@ public class MapActivity extends BaseActivity } } else { - Log.e(tag, "Marker Added: " + id); + //Add new marker coordsMap.put(id, element); - /* - // Check if this is me - if (id.equals(myID)) { - Icon icon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.blue_marker); - 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())){ + if (sharingLevel.equals(SharingLevel.APPROXIMATED.toString())) { defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.blue_marker); - }else if(sharingLevel.equals(SharingLevel.MANUAL.toString())){ + } else if (sharingLevel.equals(SharingLevel.MANUAL.toString())) { defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.green_marker); - }else if(id.equals(myID)){ + } else if (id.equals(myID)) { defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.custom_marker); } @@ -431,34 +421,30 @@ public class MapActivity extends BaseActivity markerHash.put(id, marker); } - coordsMap.get(id).setLabel(newLabel); - + //Change marker if sharing mode has been changed Boolean newLocalizationMode = markerHash.get(id).getMarkerType().equals(newSharingLevel); - markerHash.get(id).setMarkerType(newSharingLevel); - if(!newLocalizationMode){ - Log.e("LOC","1" + coordsMap.get(id).getDisplayMode().trim() + " " + newSharingLevel); + if (!newLocalizationMode) { + Icon defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.red_marker); + MapMarker marker = markerHash.get(id); 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())){ + if (newSharingLevel.equals(SharingLevel.APPROXIMATED.toString())) { defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.blue_marker); - }else if(newSharingLevel.equals(SharingLevel.MANUAL.toString())){ + } else if (newSharingLevel.equals(SharingLevel.MANUAL.toString())) { defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.green_marker); - }else if(id.equals(myID)){ + } else if (id.equals(myID)) { defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.custom_marker); } marker.setDefaultIcon(defaultIcon); marker.restoreDefaultIcon(); - + markerHash.get(id).setMarkerType(newSharingLevel); mapboxMap.getMarkerViewManager().update(); } + coordsMap.get(id).setLabel(newLabel); } // For next fetch @@ -469,13 +455,8 @@ public class MapActivity extends BaseActivity @SuppressLint("LongLogTag") @Override public void onError(Throwable e) { - - Log.e("MapActivity onError", e.getMessage()); - if (e instanceof HttpException) { ResponseBody responseBody = ((HttpException) e).response().errorBody(); - Log.e("MapActivity onError", RestApiHelper.getErrorMessage(responseBody)); - } } }) @@ -650,7 +631,7 @@ public class MapActivity extends BaseActivity private void filterMarkers(List users) { restoreMapMarkers(); - Icon markedMarker = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.custom_marker); + Icon markedMarker = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.search_marker); List markersToSet = Stream.of(markerHash.values()) .filter(m -> Stream.of(users).anyMatch(u -> u.getId().equals(m.getMarker().getTitle()))) diff --git a/app/src/main/java/com/uam/wmi/findmytutor/activity/SharingFragment.java b/app/src/main/java/com/uam/wmi/findmytutor/activity/SharingFragment.java index e08ad48..6a54242 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/activity/SharingFragment.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/activity/SharingFragment.java @@ -121,7 +121,7 @@ public class SharingFragment extends PreferenceFragment { /** Sharing level list **/ locationMode.setOnPreferenceChangeListener((preference, newValue) -> { PrefUtils.storeLocationMode(getApplicationContext(),locationLevelMapping.get(Integer.parseInt((String) newValue))); - if(PrefUtils.getLocationLevel(getApplicationContext()) == "manual"){ + if(PrefUtils.getLocationLevel(getApplicationContext()).equals("manual")){ preferenceCategory.addPreference(manualLocationList); preferenceCategory.addPreference(manualLocationButton); @@ -145,15 +145,12 @@ public class SharingFragment extends PreferenceFragment { return true; }); /** Button 'choose from map' button listener **/ - manualLocationButton.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { - @Override - public boolean onPreferenceChange(Preference preference, Object o) { - //ToDO wywołanie wybierania lokalizacji z mapy - FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); - fragmentTransaction.hide(SharingFragment.this); - fragmentTransaction.commit(); - return true; - } + manualLocationButton.setOnPreferenceChangeListener((preference, o) -> { + //ToDO wywołanie wybierania lokalizacji z mapy + FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); + fragmentTransaction.hide(SharingFragment.this); + fragmentTransaction.commit(); + return true; }); /** Status list change listener **/ diff --git a/app/src/main/res/drawable/manual_marker.png b/app/src/main/res/drawable/manual_marker.png new file mode 100644 index 0000000000000000000000000000000000000000..d127895977c7e8ac0781f0cd59d908baab419a73 GIT binary patch literal 389 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE)4%caKYZ?lYt_f1s;*b zKpodXn9)gNb_Gz7y~NYkmHiR7xR|wQO4BTU1_nkUPZ!4!kK<3L8u~E>3bg%SvrVD5 zB}`?b!nbWFL=OZrsES{(7O-tHU$AjvOWs!@m68KaJ&i5>&qQZW-+tPzEcb)|vWon) zfA#5R`EFL#451HLe=wOHb9x}T;+g7uCc%>(4SsT;Y>#jJE@qh9d7@9W;O!$WArrPq zUf1phU7Edd>Qim+SHD9(URR9OW{ICND@6C+j5=^G;`RD# g>HIHV#y@0GXsA{szN-w%ZJQ1wQR<{gd!pN$KOn$*Z@qt+HCg z-F!gcg;urv0f`F6SqGLr(PoZLcvjVH{KgDNzO?lbj#nzbqz%44=rB^+vmOm!5XwJoNKV12*eXQj!=KoYV zaeB>j#e(Q9u}k=#WO{7QX1Xu-N%sQR+ZD{+2OfxgRxp~9mGv^Uwe6gfQasbvVE=6_ rH#ogxCfBU{p%>+*wfBYb0r_WFr@XuTZozM0&@p(r`njxgN@xNAg1Ds1 literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/marker_modal.xml b/app/src/main/res/layout/marker_modal.xml index 99643d1..e94bbad 100644 --- a/app/src/main/res/layout/marker_modal.xml +++ b/app/src/main/res/layout/marker_modal.xml @@ -27,4 +27,14 @@ android:textColor="@color/note_list_text" /> + + + From f0df7b7440090087dd6b6185c7aa77175969048a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mieszko=20Wrzeszczy=C5=84ski?= Date: Sun, 25 Nov 2018 22:27:57 +0100 Subject: [PATCH 4/9] Add proper markers icons --- .../wmi/findmytutor/activity/MapActivity.java | 20 +++++++++--------- .../main/res/drawable-v21/custom_marker.png | Bin 923 -> 0 bytes .../main/res/drawable-v24/custom_marker.png | Bin 923 -> 0 bytes .../approximate_localization_marker.png | Bin 0 -> 1864 bytes app/src/main/res/drawable/blue_marker.png | Bin 3200 -> 0 bytes app/src/main/res/drawable/custom_marker.png | Bin 444 -> 0 bytes .../drawable/exact_localization_marker.png | Bin 0 -> 1889 bytes app/src/main/res/drawable/green_marker.png | Bin 3253 -> 0 bytes .../drawable/manual_localization_marker.png | Bin 0 -> 1873 bytes app/src/main/res/drawable/manual_marker.png | Bin 389 -> 0 bytes app/src/main/res/drawable/my_marker.png | Bin 0 -> 1927 bytes app/src/main/res/drawable/purple_marker.png | Bin 4433 -> 0 bytes app/src/main/res/drawable/red_marker.png | Bin 1361 -> 0 bytes app/src/main/res/drawable/search_marker.png | Bin 399 -> 1880 bytes app/src/main/res/drawable/yellow_marker.png | Bin 4474 -> 0 bytes .../main/res/manual_localization_marker.png | Bin 0 -> 1873 bytes 16 files changed, 10 insertions(+), 10 deletions(-) delete mode 100644 app/src/main/res/drawable-v21/custom_marker.png delete mode 100644 app/src/main/res/drawable-v24/custom_marker.png create mode 100644 app/src/main/res/drawable/approximate_localization_marker.png delete mode 100644 app/src/main/res/drawable/blue_marker.png delete mode 100644 app/src/main/res/drawable/custom_marker.png create mode 100644 app/src/main/res/drawable/exact_localization_marker.png delete mode 100644 app/src/main/res/drawable/green_marker.png create mode 100644 app/src/main/res/drawable/manual_localization_marker.png delete mode 100644 app/src/main/res/drawable/manual_marker.png create mode 100644 app/src/main/res/drawable/my_marker.png delete mode 100644 app/src/main/res/drawable/purple_marker.png delete mode 100644 app/src/main/res/drawable/red_marker.png delete mode 100644 app/src/main/res/drawable/yellow_marker.png create mode 100644 app/src/main/res/manual_localization_marker.png 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 4b4ab38..e119077 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 @@ -195,7 +195,7 @@ public class MapActivity extends BaseActivity // User cancelled the dialog }); - TextView userName = view.findViewById(R.id.userName); + TextView userName = view.findViewById(R.id. userName); TextView status = view.findViewById(R.id.label); TextView sharingLevelView = view.findViewById(R.id.sharing_level); @@ -232,7 +232,7 @@ public class MapActivity extends BaseActivity mapboxMap.addOnMapLongClickListener((LatLng latLng) -> { selectLocationButton.setVisibility(View.VISIBLE); removeLocationButton.setVisibility(View.GONE); - Icon icon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.green_marker); + Icon icon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.my_marker); if (tmpLocalMarker == null) { @@ -400,14 +400,14 @@ public class MapActivity extends BaseActivity coordsMap.put(id, element); String sharingLevel = coordsMap.get(id).getDisplayMode(); - Icon defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.red_marker); + Icon defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.exact_localization_marker); if (sharingLevel.equals(SharingLevel.APPROXIMATED.toString())) { - defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.blue_marker); + defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.approximate_localization_marker); } else if (sharingLevel.equals(SharingLevel.MANUAL.toString())) { - defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.green_marker); + defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.manual_localization_marker); } else if (id.equals(myID)) { - defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.custom_marker); + defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.my_marker); } MarkerOptions markerOptions = new MarkerOptions() @@ -426,16 +426,16 @@ public class MapActivity extends BaseActivity Boolean newLocalizationMode = markerHash.get(id).getMarkerType().equals(newSharingLevel); if (!newLocalizationMode) { - Icon defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.red_marker); + Icon defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.exact_localization_marker); MapMarker marker = markerHash.get(id); coordsMap.get(id).setDisplayMode(newSharingLevel); if (newSharingLevel.equals(SharingLevel.APPROXIMATED.toString())) { - defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.blue_marker); + defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.approximate_localization_marker); } else if (newSharingLevel.equals(SharingLevel.MANUAL.toString())) { - defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.green_marker); + defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.manual_localization_marker); } else if (id.equals(myID)) { - defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.custom_marker); + defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.my_marker); } marker.setDefaultIcon(defaultIcon); diff --git a/app/src/main/res/drawable-v21/custom_marker.png b/app/src/main/res/drawable-v21/custom_marker.png deleted file mode 100644 index 1df09fdf3fe1229c3801c3b14fe6446cadced80c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 923 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/blue_marker.png b/app/src/main/res/drawable/blue_marker.png deleted file mode 100644 index 7bbbd9bdc7913d0423e2635d6f0731c046d78e99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3200 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 JqHEZ|e*tjx`riNm diff --git a/app/src/main/res/drawable/manual_localization_marker.png b/app/src/main/res/drawable/manual_localization_marker.png new file mode 100644 index 0000000000000000000000000000000000000000..89adebf37357aaf6e127812e01f3be0929ea6513 GIT binary patch literal 1873 zcmV-X2d?;uP)$&V9c#;~Co$SZ)*(gxxd(*;QLaNK~~|DX5APDgME@3fUlagFp(H zP1@3=p=!IpxKb*$BI~4v*l`q^sD(r-?V^q9CdE!et55`SfD#An@p#_6-*dW{v9a;I znXzMa#aTVwpYz@G_uX?Jp+@O!KedYpj{~w*1Z@D-7iT0(gi8R8iQspm6MN3qqK~Qr z4m}6Lk3^so07KKDD-DW@TUi7lM+l+_0)Pl11V0^}==;g4fV$2l1Gr&;h$9eHu1XO>CXs}Q*j??XegFV^aRNt8-GHg-vDOj*Hw-ZA77zpx zLZ1Nux~X6o8ZveQwr<4w%G7k2x`7~yo&)eR>TW;%?Fjr%V=@I((_=yBJQuTt0$N(@ z@zlW%JoJ@y0DynJ{~2C>aU7HX$s&_Tpw6;m!Tl)2w3CMhwL^QTx#u7tk2Kh+SXX&r zfEmZZ&hAz`fAU*sY0V&!)R9Q)Xlc#hvG08mw{8}2ar{#lx(;2Hr3dIr!<=6Lh;A#0 zY%5wSu~|9m7O?TbMjUuyTkPQuys!-$A8f>|TL8rpq7=O1R5s zX7JO`bRh5}_)!=Gi+OLfDF6+XvNGfdfgfSZ)~2e!TedbK@FRpARjdjE8We%3mU`55 zT9Y*;%S8#~TEtwD_;o|!(g(MzD!lZ;ZD@vqUg1J1Vck#w-t(g{mIN$Khhb`X_2h?D zfnPoOAxu+?FH55N`2S52(I1!@Q53}{M4e@0?EE#n`N~JJpl`nN5ysA6t60Zj6oHvR zpmVhE>+e|8*(o<^S*SDZn3DoCP9C|uhi^Wy5lS@3<>h7s%Xlw~1hS@6ODVJS4aroqyUg*9>FhCUbqrPR-t z+{c~mLsvCY8`h;WtL{1~)$V6=vxtO09v$y{V99-~Db*he!wr0_wRnM#u$WZ+WqYo! z_EVEYxPN^*gS9f6h%lAQf<-(g@r+h1$m=aQwBi+VMTG2o$M(i^rD$k4)@7 z2hdo~Evy-Eu6SGhePq1YYn25C0Hv#*`3-9U3IL>`XBp1j10(P6zDh*Db^;HTIJ}xf z%y0q^Ao|V7KlWUy`3ck6K2*?@ve(tEyu235huIyS=u4Da6MKy)QoRu~9M4@vLb-^T zp-A<{>W`Zk8SgzqL~qY}E_ekNvj}Eg7ew^-$awFW6$2NoHlH9sW}LYSebiDuF0O@G zrh2@h?n;xx7dl-LtutVT<9jvLY`_c=t@F2IyS-Jtk58O9VT#BmJL5I}>7|W>UV$E7 zpQ?va<+m^krt(=>33>M$-@kImowcTk=+$24Q1tI&w(lOsot{JSFXv17-SZQG9kSavsl{9ePB$%*u@ zlBS8YomfT`j_;$TeeS@9uTKB7j4grdx_>!(^eC5&aWa|QUJeuhS|7cAA=MBLJHC%# zQQsUyAspXFsv#V1ee~9an8+C=-OH0}U|?VqGn;WS4_u{h-#a;|8FGEv$wNdSBE`3m zA=kI>og55YrN@>TvpFy@uxS}EGk>94*19>}+_K}=egK#$MU=I>1XIX7j! z4ivwAM>A>xE@3PMR!ZGq<_)zd@Ey(g+LJeaIsaWNohqenEOT{#fB$8rlwUh1gIGW- z0QLL(`!AO*C&zLA3LwDROHk6iGUoamQX6xX<7#GZE_tTbc0>VSrPO~{%++_x;NW0G z5Cn}%skDgH0nmx4^v6g-03i|0F>}r^jOjy%4$a`6+>?9q|C0X!rkgI&4WiE}00000 LNkvXXu0mjf5$$kL literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/manual_marker.png b/app/src/main/res/drawable/manual_marker.png deleted file mode 100644 index d127895977c7e8ac0781f0cd59d908baab419a73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 389 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE)4%caKYZ?lYt_f1s;*b zKpodXn9)gNb_Gz7y~NYkmHiR7xR|wQO4BTU1_nkUPZ!4!kK<3L8u~E>3bg%SvrVD5 zB}`?b!nbWFL=OZrsES{(7O-tHU$AjvOWs!@m68KaJ&i5>&qQZW-+tPzEcb)|vWon) zfA#5R`EFL#451HLe=wOHb9x}T;+g7uCc%>(4SsT;Y>#jJE@qh9d7@9W;O!$WArrPq zUf1phU7Edd>Qim+SHD9(URR9OW{ICND@6C+j5=^G;`RD# g>HIHV#y@0GXsXtxFjmU2BW4`E&|l5fnq2ofNjQeIWy<7cOPsA zjD0*~V)cpjbaeJU>pyGlwf^;Qp-$V7>)fQ_DGXl&(*`t8F6BY~jqtvLKb`72d9)sX zQftHdT*phmi$)t;04L#Kxi(5E0JPRben?OWFn}ltfu9d{_5bXifH&kiHfzJ1#+U{- z<&tVn;-(q^Fvd)GA`@=>a+Px4!!P@YNL7?9H;`Us}PqZ<+(k*E+OEUKiI%SE*1PJ(^zh>okTFsRsLnmfL{KU)O z*cfSjw4t%#b43~#d9_%@Qfkw{3-28RP*WQstq)s{wVBD1u1dPND5A5kq;sg|lleuOBg37%P&!5EWh&vpD5z@G4C_PGfcC*i~biwMy+AE`E&D;9$A4_q^@e zl*USks8NOCaVO!-d8UP%1=^Oiv3KL1*nN99?xAg28-<&NInUflIAF}<%3#`T*N#n3 z;05@;&#sQ0H7j^m$4-3TC-8#UBC}l^18qu>MRWaO=!XP4VBPYyHG$VHUrV3^LO+}{ zgCL8P!N?TJ$F>7tE4wyVE1NnQz$oCqVGza6Da)~Nl+C$M&)4*J?$dKP%Eof6*jcE< z2r$D+gntBHKwQ*L(#5r1UOV%8P2k_3`2());>^*Oz83)UHwAJ;hY?ZSxfnw_o2LJh z0S@vT8x0lz>yiTSmLuN@P_U9`3GGR5uN?JPvV0~Z5Q4!g=Wc3n^ zj;GAhSc%eTnQB;>w$@-LNVlX&FHX-%xi>D}0K>7t?*2{o#7p%nqxHs0p-MyAjqSnI zq7jdEDODaY<~oGTWMsjryKvvJyrvji5t4 zG}ztWI&B_{NKX`KDuoIQZPj9xD9~U@&#anjeXirOQfhg&HM^h+WaQEaI?`7LyZcv6 z69Tsdn0ii!8gIP3V9|Qx-b4#wJ$L8(X}|+r?;S(&esQF1qigqQaakyi$Obn-uS zUt!kwb$FIzC0bUr%)8J;gwe~RL}64J?CMX>wnxQ%tb}KyAflZ2<{fSMmPZss2s|6> zKW^bvSN~fg953E1priUD){&t&Qb2^`r@Q*!nl~_jvJ+cG#EcK;Yij2yh8iEvBO*qT zcxq1Hb1e=$f4pKWo(cSb@>uQOE{~N7`~YL|%s|)i>OI|$`}+D^W6bJConHJ$>tN0^ z)vsq)wxI0U|5b;Yk)ctN(s1T`(T=X7DvgQAh3@Wdzi!|I2M#=9j9Csu0HK7|VfE*~ zh^^f0%9a^(UIa#lMlqrBzpI~o(l+)~A6g=EW%usg|C|$e|Ni|dkw~-yGZevD``n}F z&A)z|%p_@C+Q?_BPM~tS{ceU2qjU8=N?X7xC&KCP>emIZO z2BQu6;XJn3SGVddxhmCI4Xm|xdwY9V&j8k1KUk}3OQz&@n)Y1)`D=Od*YW^#n)Y2K zQ*vwe_#GH`3V}pD1d-L*e5+ouC#VJl)qqyBVoz3Q^L0{b;`T7Qt*I(;=X@NsQ^hN~vM3^~$=2I~8Yh^zE0Yp6jJkrPT0@RQL4sTu@5+b#pRC zG)CqD>i6{YT$r_;%H{GP5U}tTO!}T5bA1l0kGW>!YOVDHlbO-=W);v%scZA*>botM z%Pk6mV6jpvV~lA8Y!R_1D>Vc{5h-e|3y$NAb#-;!;=bLt`}Y5`{{gW#Ki?8%6leed N002ovPDHLkV1k}_weSD{ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/purple_marker.png b/app/src/main/res/drawable/purple_marker.png deleted file mode 100644 index b3cdf269151cfcc4f267877758d43085834e84a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4433 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 diff --git a/app/src/main/res/drawable/red_marker.png b/app/src/main/res/drawable/red_marker.png deleted file mode 100644 index 6b729396f728b7894bf646a0decb54a9164ec7c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1361 zcmV-X1+MyuP)3eK1NZ_=dTRr@pZ z=6!G8HyVN#xTdPT9%Cl}d@M`SIg!#q0Pq-FE4%J*0B(wuKE7mG*~Yn~@x!F5zUO$} zIY|K0kBh2=rJC zuIGWbP#}pS5?fpNeQ5~=$NA#2ZC~B}FVv7t#3GTa?;k%7H5`V|7}~*S4AEc^NA~W; zi){AnSwYyjTP{DWDx6f+)3PKz_;6$dvLvCMFT4eL*>&;L{5;C8dwR^W9@1;78ghOA z+mpJEU?5O8m=Xek5Ns5S*eDhu5CTf-Z4U+lIH~J!egC^_su~hK#)e|u-A9Ks4LhD! zH+W%d3p2J2S<_yrSzg8|MZsHp_Eg7k&M~BEm|tH%YUT4oA_w9l0|Rh;zfRf0))pQK z0zSEaAECZJ06=kb6L;cqAd|sxEC$A3nc(<7Mg|5jZ5VOdC5q=_;V?Mob)L=GHZD$0 zA);xZq6jLAh-exvPEBFPw(H`-IY%rUMwcj_qmm#D@8)cmELkW(*0id!T7>%gAZr?u zg+d*vBnXfMVVDv?CWPR>f)D}%$dqyZqBe6JKz}%lvT35Yx!E+axVee4X`(+Iu8Wb+ z7#Qa-XxVjVijGq^i32#LD7X`kBX62uo(JZ6$eSka#N#-nC{39xIu6RNJ0tpx-C9be zKGLGmYIiWsUqvI6!T0CS{~H_Atj31bY@$FZmQpGBjNK9iO6L|gHgcyA9f~%VHyn%M zSS*HQp#T8rKYSRxvS2M3V_4kS$O)9r(Q(^;4$kLhS67?5fN>6=bLw%MJb931!d2%*slU029?kb|1!VdyN7&rVXQQ zd5tzq8wMzFW8Ajang}bTm&{zwOxiX&bq^r~N!x~*%bDZ0eW}id#=(s93-=7eaXXam zdLHf>hQm0&(By05hs&d*^F_{Y-(6T}Svm)BcVPiV&Tn5H9i4CdFVw#1x<1%z+k<}u zgMYrgy?rJkNwIy=X!U3lD20(s;;&Td@2`4$KigwjZzzf)XS3N{9igu4L{XHZ02BgH z2_P>8;Q=+x4-P77AR>2x5Q5b9OZ@!gN&bE$@@baRQl-MMq9{FzqGYn!Y_;S=03y5j z$(V_ztK+tAiv7;^088h z@8t9Eu4XbY%H_$gqtPFG8IxM&Tv3#a*ePrKeP6!W-F>|$mpcIfH+y=n@ArMV<3U^T z@GyXAtCl4I)*|{9QAh_UDpQz z^a7ANTo!8Qxd5_>L}IP&?Mv5n2|%zy90AZ(vtbOtPDN1`Kq-+(xOk1%_@Ch);M6Nz T?5(*a00000NkvXXu0mjfVa#Wf diff --git a/app/src/main/res/drawable/search_marker.png b/app/src/main/res/drawable/search_marker.png index 09681e0fa8a5f1e039da8072cb8f283b11b3b478..cc8d80329841ad4cc09e27aa13ad6f1385a85fae 100644 GIT binary patch delta 1875 zcmV-Z2dwyy1K18BiBL{Q4GJ0x0000DNk~Le0000U0000t2nGNE02`C~T#+Fhe+v@; z01FcV0GgZ_00007bV*G`2jUAE6d?#y@~=<;00!krL_t(o!|j+$Y+U6P$N%Tt$K08* zneoI9wq-lTiVDIEELtU{>Wa#tRIXHTV8f2?C=yB>#UT&^3Qg@OwzFu}Zdi8JR6>BN zCZ^e>s7(ne*v$e|xk>EIOp@_qf5!8?kMDFb1F_?|Gh@fLWhfqO=;{=^gS1Be7T6oej$LJNf6ak{L#@f#p#s>b?@Nq5F}==W zQR+i7^zDUKOo!RA6Qt`9r9NEe>h96mHz8sf?M*<5A&vttpNE&vLmUSnZU{Fj23cLB zGe-eHuULlf0RDL`kMVQ2@O7$)Kr9A57W0LB z#Uh+k5~T5ub%+cBfEEh*Z^-9RURuJ-dv{>+#h!KdhT;(n#UnWQ#|8Z1(jq8eLJNg! z>d`_WI29KUu?Y6Ce`Wc{hZ$}O@`@f zt(1zeZ5KzM>ui|7N1yA2ZM%?C(KpG+FacmUgAgUn{|S|CqwEQu?hiKv|FA!dvL{fs z?SCjV1_)7xfa*3Wsr(GBVIzaabazi3btEJV;HJ0^K(!T+TdGz5RKP=LV% zG7R6-0oR23Ua<%OpD{DeiQ_>0;vxb) z7Q^(_EZ+Zg(HHvur;C`rnyq_|#kK+01rblvqes3DWL2r8N21W%+I*kXNu`j_=CJ>J zZ8-95C;Hn>e*nN-+Q!(q6wZFWjPOG(FgiPZ!S3=h+{_Bhh!&vgJary~LF(>Mgf*y-OkGA7I_Y{}f1r04APUo82~Ry=)fZx?tv4e22Z8V*}G5zU(Y5ZX4KHTm+auzgeBNYJvek)75^6R5lRZ zhl{IFe+XEk{TnLcy%!cvK6Rale&=N~-yWGQ&3KLrFPi}o{r=|3C$2U93e$CXwn&C< z1$ufnKXnqJyf6=O+*0yXyk_C%I(uId+lH6PY(AkfD-hcT5nl40MEq_f#^WD>=@Vx$ z4e`9@UF><)grZLpTN!Gm_w;M1p1KPnW^(4j+L)din8ae^(&dK$onq3Lgh#|AFtcl}0heF#Q-`&~E@oOBxQ zY8HFL*IxTk=&P%>3RtOB`unkC$5hQ2heDwr)Pe%QV9U&x?Rx&Ko5?^G?+$*dSb&?! zpk2?O9c-EX(kF68Rrki^nwXgAS4x?Fe=#pAQ-8gEddkowVW(0Ri$!3kQZO`0yxu-N zRaB<#+ZvTJCnhHPH-ME=U5&DK*$bL4M6bLG0Cp+~JCy_gyb!(e>arI!8}{WjjJ1P+ z)y%i4UOk-|uo7>0WgA}E#(NBs@A@|Z!f@oXiwP(4e*pjt zM=oE?sesW`RjV-8gPA$0lKb#Jb6-G?++xoXvFrBr9tGtCa$3_vk+YSXp)UYVMj ziaL(d#>}lE(gHvyqUskTaRInQDU?%6tr~{0eBi)=6+Dm!@<9Gy@;~58HeAgjKE?n5 N002ovPDHLkV1l6QcQ^n5 delta 382 zcmV-^0fGM54vzyNiBL{Q4GJ0x0000DNk~Le0000O0000O2nGNE0N{5$_>mzTe+}0F z01ejxLMWSf00007bV*G`2jUAC7C9%LW2p@Q00A6HL_t(Y$K{o=Y63wJhCeQX>0;wy zs}U^3KJ6twg62^K>*O7Rt)*{pjTRBE$|aAGMzAxQ5F~<0v%<33U3YKo{9%gSnfd?S zx!V~y2gJZ5@Ctkh%Yg^s3ql{*e*nJ*+W@@~^1X%pVEZB>@sX3Owg##?q6>q-5a=p< zAHW!R0h++24-`OfoI@GT31AkCt`gMTxoKg(f0U757zO03v&TB3}ZvQ%|-8*a=HqlYFlDE?Pz^ cz34N*ALiAR?$hp|`v3p{07*qoM6N<$g31w~B>(^b diff --git a/app/src/main/res/drawable/yellow_marker.png b/app/src/main/res/drawable/yellow_marker.png deleted file mode 100644 index 85b97e15ba221c4509a70c342e9e3d87c152eb70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4474 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 LNkvXXu0mjfH1Kg& literal 0 HcmV?d00001 From 3a2c4f10d4226d12cba917031c370cba8a39a798 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mieszko=20Wrzeszczy=C5=84ski?= Date: Mon, 26 Nov 2018 20:22:04 +0100 Subject: [PATCH 5/9] Improve marker browser --- .../wmi/findmytutor/activity/MapActivity.java | 143 +++++++++++++----- .../uam/wmi/findmytutor/utils/MapMarker.java | 9 +- 2 files changed, 110 insertions(+), 42 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 e119077..2aeb4f2 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 @@ -4,6 +4,7 @@ import android.Manifest; import android.animation.ObjectAnimator; import android.animation.ValueAnimator; import android.annotation.SuppressLint; +import android.graphics.Color; import android.location.Location; import android.os.Bundle; import android.os.Handler; @@ -22,6 +23,10 @@ import com.getbase.floatingactionbutton.FloatingActionButton; import com.jakewharton.retrofit2.adapter.rxjava2.HttpException; import com.mapbox.android.core.permissions.PermissionsListener; import com.mapbox.android.core.permissions.PermissionsManager; +import com.mapbox.geojson.Feature; +import com.mapbox.geojson.FeatureCollection; +import com.mapbox.geojson.LineString; +import com.mapbox.geojson.Point; import com.mapbox.mapboxsdk.Mapbox; import com.mapbox.mapboxsdk.annotations.Icon; import com.mapbox.mapboxsdk.annotations.IconFactory; @@ -35,6 +40,11 @@ import com.mapbox.mapboxsdk.location.modes.RenderMode; import com.mapbox.mapboxsdk.maps.MapView; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; +import com.mapbox.mapboxsdk.style.expressions.Expression; +import com.mapbox.mapboxsdk.style.layers.CircleLayer; +import com.mapbox.mapboxsdk.style.layers.SymbolLayer; +import com.mapbox.mapboxsdk.style.sources.GeoJsonOptions; +import com.mapbox.mapboxsdk.style.sources.GeoJsonSource; import com.uam.wmi.findmytutor.R; import com.uam.wmi.findmytutor.model.Coordinate; import com.uam.wmi.findmytutor.model.User; @@ -47,6 +57,10 @@ import com.uam.wmi.findmytutor.utils.RestApiHelper; import com.uam.wmi.findmytutor.utils.SharingLevel; import com.uam.wmi.findmytutor.utils.mapUtils; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; @@ -60,6 +74,22 @@ import io.reactivex.schedulers.Schedulers; import okhttp3.ResponseBody; import timber.log.Timber; +import static com.mapbox.mapboxsdk.style.expressions.Expression.all; +import static com.mapbox.mapboxsdk.style.expressions.Expression.get; +import static com.mapbox.mapboxsdk.style.expressions.Expression.gt; +import static com.mapbox.mapboxsdk.style.expressions.Expression.gte; +import static com.mapbox.mapboxsdk.style.expressions.Expression.has; +import static com.mapbox.mapboxsdk.style.expressions.Expression.literal; +import static com.mapbox.mapboxsdk.style.expressions.Expression.lt; +import static com.mapbox.mapboxsdk.style.expressions.Expression.toNumber; +import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleColor; +import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleRadius; +import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.textAllowOverlap; +import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.textColor; +import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.textField; +import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.textIgnorePlacement; +import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.textSize; + public class MapActivity extends BaseActivity implements PermissionsListener, OnMapReadyCallback { @@ -84,21 +114,21 @@ public class MapActivity extends BaseActivity private Coordinate droppedMarkercoordinate; private HashMap coordsMap = new HashMap<>(); private HashMap markerHash = new HashMap<>(); + private HashMap markerUserHash = new HashMap<>(); private Set previousCoordsIds = new HashSet<>(); // Camera Animation params private int zoomParam = 17; private int bearingParam = 180; private int tiltParam = 30; - private String myID; - + private String myId; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - myID = PrefUtils.getUserId(getApplicationContext()); - // fetching coords service + myId = PrefUtils.getUserId(getApplicationContext()); + coordinateService = ApiClient.getClient(getApplicationContext()) .create(CoordinateService.class); @@ -131,8 +161,9 @@ public class MapActivity extends BaseActivity enableLocationPlugin(); mapboxMap.setOnMarkerClickListener(marker -> { - String id = marker.getTitle(); - if (id.equals(myID)) { + String id = markerUserHash.get(marker.getId()); + + if (id.equals(myId)) { selectLocationButton.setVisibility(View.GONE); removeLocationButton.setVisibility(View.VISIBLE); @@ -174,6 +205,18 @@ public class MapActivity extends BaseActivity }); } + private void updateUserHashMap(String userId, Long markerId) { + disposable.add(userService.getUserById(userId) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(t -> saveUserToHashMap(t, markerId), this::handleError)); + } + + private void saveUserToHashMap(User user, Long markerId) { + markerUserHash.put(markerId, user.getId()); + markerHash.get(user.getId()).getMarker().setTitle(user.getFirstName() + " " + user.getLastName()); + } + private void createMarkerModal(String userId) { disposable.add(userService.getUserById(userId) .subscribeOn(Schedulers.io()) @@ -195,7 +238,7 @@ public class MapActivity extends BaseActivity // User cancelled the dialog }); - TextView userName = view.findViewById(R.id. userName); + TextView userName = view.findViewById(R.id.userName); TextView status = view.findViewById(R.id.label); TextView sharingLevelView = view.findViewById(R.id.sharing_level); @@ -222,7 +265,6 @@ public class MapActivity extends BaseActivity message = "Network Error!"; } - Toast.makeText(MapActivity.this, message, Toast.LENGTH_SHORT).show(); } @@ -332,6 +374,7 @@ public class MapActivity extends BaseActivity @Override public void onSuccess(List coordsList) { + if (coordsList.isEmpty() && tmpLocalMarker != null) { Timber.e("200 empty []"); mapboxMap.clear(); @@ -339,23 +382,22 @@ public class MapActivity extends BaseActivity } ArrayList tmp = new ArrayList<>(); - for (Coordinate coordinate : coordsList) { tmp.add(coordinate.getUserId()); } Set currentCoordsIds = new HashSet<>(tmp); - if (previousCoordsIds.isEmpty()) { previousCoordsIds.addAll(currentCoordsIds); } else { // here we clear + it returns bool if sth was removed - if (previousCoordsIds.removeAll(currentCoordsIds)) { for (String toRemoveId : previousCoordsIds) { + Log.e(tag + "delete: ", "removing: " + toRemoveId + ": " + markerHash.get(toRemoveId)); mapboxMap.removeMarker(markerHash.get(toRemoveId).getMarker()); markerHash.remove(toRemoveId); coordsMap.remove(toRemoveId); + } } else { // TODO double check when some markers api will change @@ -370,6 +412,9 @@ public class MapActivity extends BaseActivity Coordinate coordinate = coordsMap.get(id); + Log.e(tag, "hashMapSize: " + coordsMap.size()); + Log.e(tag, "markerMapSize: " + coordsMap.size()); + if (coordinate != null) { boolean isTheSameLocalization = coordinate.getLatitude().equals(element.getLatitude()) || coordinate.getLongitude().equals(element.getLongitude()); @@ -377,6 +422,12 @@ public class MapActivity extends BaseActivity if (!isTheSameLocalization) { //Replace prev marker and animate Marker marker = markerHash.get(id).getMarker(); + Boolean showModalAfterAnimation = false; + + if(marker.isInfoWindowShown()){ + marker.hideInfoWindow(); + showModalAfterAnimation = true; + } LatLng toDestination = new LatLng(element.getLatitude(), element.getLongitude()); // TODO fix flickiering markers @@ -388,30 +439,26 @@ public class MapActivity extends BaseActivity markerAnimator.setInterpolator(new LinearInterpolator()); markerAnimator.start(); - mapboxMap.getMarkerViewManager().update(); + coordsMap.put(id, element); marker.setPosition(toDestination); + + if(showModalAfterAnimation){ + mapboxMap.selectMarker(marker); + } + + mapboxMap.getMarkerViewManager().update(); } } else { //Add new marker - coordsMap.put(id, element); String sharingLevel = coordsMap.get(id).getDisplayMode(); - Icon defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.exact_localization_marker); - - if (sharingLevel.equals(SharingLevel.APPROXIMATED.toString())) { - defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.approximate_localization_marker); - } else if (sharingLevel.equals(SharingLevel.MANUAL.toString())) { - defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.manual_localization_marker); - } else if (id.equals(myID)) { - defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.my_marker); - } + Icon defaultIcon = getMapIcon(sharingLevel, id); MarkerOptions markerOptions = new MarkerOptions() - .title(id) .setIcon(defaultIcon) .position(new LatLng(element.getLatitude(), element.getLongitude())); @@ -419,6 +466,8 @@ public class MapActivity extends BaseActivity MapMarker marker = new MapMarker(markerMapbox, markerOptions, defaultIcon, sharingLevel); markerHash.put(id, marker); + updateUserHashMap(id, marker.getMarker().getId()); + } @@ -426,18 +475,10 @@ public class MapActivity extends BaseActivity Boolean newLocalizationMode = markerHash.get(id).getMarkerType().equals(newSharingLevel); if (!newLocalizationMode) { - Icon defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.exact_localization_marker); + Icon defaultIcon = getMapIcon(newSharingLevel, id); MapMarker marker = markerHash.get(id); coordsMap.get(id).setDisplayMode(newSharingLevel); - if (newSharingLevel.equals(SharingLevel.APPROXIMATED.toString())) { - defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.approximate_localization_marker); - } else if (newSharingLevel.equals(SharingLevel.MANUAL.toString())) { - defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.manual_localization_marker); - } else if (id.equals(myID)) { - defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.my_marker); - } - marker.setDefaultIcon(defaultIcon); marker.restoreDefaultIcon(); markerHash.get(id).setMarkerType(newSharingLevel); @@ -452,17 +493,27 @@ public class MapActivity extends BaseActivity previousCoordsIds.addAll(currentCoordsIds); } - @SuppressLint("LongLogTag") @Override public void onError(Throwable e) { - if (e instanceof HttpException) { - ResponseBody responseBody = ((HttpException) e).response().errorBody(); - } + showError(e); } }) ); } + private Icon getMapIcon(String sharingLevel, String id) { + Icon defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.exact_localization_marker); + + if (sharingLevel.equals(SharingLevel.APPROXIMATED.toString())) { + defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.approximate_localization_marker); + } else if (sharingLevel.equals(SharingLevel.MANUAL.toString())) { + defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.manual_localization_marker); + } else if (id.equals(myId)) { + defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.my_marker); + } + + return defaultIcon; + } @SuppressWarnings({"MissingPermission"}) private void enableLocationPlugin() { @@ -633,23 +684,33 @@ public class MapActivity extends BaseActivity Icon markedMarker = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.search_marker); - List markersToSet = Stream.of(markerHash.values()) - .filter(m -> Stream.of(users).anyMatch(u -> u.getId().equals(m.getMarker().getTitle()))) + Log.e("MARKERS",mapboxMap.getMarkers().toString()); + + List markersToSet = Stream.of(mapboxMap.getMarkers()) + .filter(m -> Stream.of(users).anyMatch(u -> u.getId().equals(markerUserHash.get(m.getId())))) + .map(m -> markerUserHash.get(m.getId())) + .map(m -> markerHash.get(m)) .toList(); for (MapMarker marker : markersToSet) { marker.getMarker().setIcon(markedMarker); + + if(markersToSet.size() == 1) + mapboxMap.selectMarker(marker.getMarker()); } mapboxMap.getMarkerViewManager().update(); } public void restoreMapMarkers() { - for (MapMarker marker : markerHash.values()) { - marker.restoreDefaultIcon(); + + for (Marker marker : mapboxMap.getMarkers()) { + MapMarker markerMap = markerHash.get(markerUserHash.get(marker.getId())); + + markerMap.restoreDefaultIcon(); + mapboxMap.deselectMarker(marker); } mapboxMap.getMarkerViewManager().update(); } - } diff --git a/app/src/main/java/com/uam/wmi/findmytutor/utils/MapMarker.java b/app/src/main/java/com/uam/wmi/findmytutor/utils/MapMarker.java index 6e09c23..fd8a63b 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/utils/MapMarker.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/utils/MapMarker.java @@ -1,10 +1,16 @@ package com.uam.wmi.findmytutor.utils; +import android.support.annotation.NonNull; +import android.view.View; + import com.mapbox.mapboxsdk.annotations.Icon; +import com.mapbox.mapboxsdk.annotations.InfoWindow; import com.mapbox.mapboxsdk.annotations.Marker; import com.mapbox.mapboxsdk.annotations.MarkerOptions; +import com.mapbox.mapboxsdk.maps.MapView; +import com.mapbox.mapboxsdk.maps.MapboxMap; -public class MapMarker { +public class MapMarker{ private MarkerOptions markerOptions; private Marker marker; @@ -55,4 +61,5 @@ public class MapMarker { public void setMarkerType(String markerType) { this.markerType = markerType; } + } From 9b291117ef2b438339f41b07f937fc715abb7782 Mon Sep 17 00:00:00 2001 From: Adam Domagalski Date: Mon, 26 Nov 2018 23:04:35 +0100 Subject: [PATCH 6/9] temporary timestamp check for removing marker --- .../com/uam/wmi/findmytutor/activity/MapActivity.java | 9 +++++++++ 1 file changed, 9 insertions(+) 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 b4c0b9c..7eca458 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 @@ -403,7 +403,16 @@ public class MapActivity extends BaseActivity coordsMap.put(id, element); marker.setPosition(toDestination); + } else if((System.currentTimeMillis() - coordinate.getTimeStamp()) > (long) 300000) { + // TODO debug logic and remove timestamp removing +// String id = coordinate.getUserId(); + Marker markerToRemove = markerHash.get(id); + markerHash.remove(id); + coordsMap.remove(id); + mapboxMap.removeMarker(markerToRemove); + currentCoordsIds.remove(id); } + } else { Log.e(tag, "Marker Added: " + id); From 64082727b2465c1d865764e8a533f21533e7250d Mon Sep 17 00:00:00 2001 From: Adam Domagalski Date: Mon, 26 Nov 2018 23:54:12 +0100 Subject: [PATCH 7/9] static marker bug removal --- .../wmi/findmytutor/activity/MapActivity.java | 67 +++---------------- 1 file changed, 8 insertions(+), 59 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 7eca458..72e6d71 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 @@ -157,7 +157,7 @@ public class MapActivity extends BaseActivity setToggleMapBoundsArea(); - if (PrefUtils.getIsTutor(this)){ + if (PrefUtils.getIsTutor(this)) { setOnMapLongClickListener(); } // addStaticLayer(); @@ -270,45 +270,6 @@ public class MapActivity extends BaseActivity PrefUtils.putManualLocation(this, latLng); handleBackgroundTaskLifeCycle(); - -// // TODO remove after BG sending -// manualLocStatusChecker = () -> { -// try { -// Log.e(tag + "Manual", "sending manual coords"); -// // TODO ^^^ wrapper to removve -// disposable.add( -// coordinateService -// .postCoordinate(droppedMarkercoordinate) -// .subscribeOn(Schedulers.io()) -// .observeOn(AndroidSchedulers.mainThread()) -// .subscribeWith(new DisposableSingleObserver() { -// @SuppressLint("LongLogTag") -// @Override -// public void onSuccess(Coordinate coord) { -// Log.e(tag + "POST", String.valueOf(coord)); -// } -// -// @SuppressLint("LongLogTag") -// @Override -// public void onError(Throwable e) { -// -// Log.e(tag + "onError", e.getMessage()); -// -// if (e instanceof HttpException) { -// ResponseBody responseBody = ((HttpException) e).response().errorBody(); -// Log.e(tag + "onError", RestApiHelper.getErrorMessage(responseBody)); -// -// } -// } -// })); -// // TODO \/\/\/\/\/ wrapper to removve -// } finally { -// manualLocHandler.postDelayed(manualLocStatusChecker, mInterval); -// } -// }; -// manualLocStatusChecker.run(); - - } catch (IllegalArgumentException e) { Timber.e(String.valueOf(e)); } @@ -356,16 +317,13 @@ public class MapActivity extends BaseActivity previousCoordsIds.addAll(currentCoordsIds); } else { // here we clear + it returns bool if sth 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 { - // TODO double check when some markers api will change - Log.e(tag + "delete: ", "nothing to remove"); + 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); + } } @@ -402,15 +360,6 @@ public class MapActivity extends BaseActivity coordsMap.put(id, element); marker.setPosition(toDestination); - - } else if((System.currentTimeMillis() - coordinate.getTimeStamp()) > (long) 300000) { - // TODO debug logic and remove timestamp removing -// String id = coordinate.getUserId(); - Marker markerToRemove = markerHash.get(id); - markerHash.remove(id); - coordsMap.remove(id); - mapboxMap.removeMarker(markerToRemove); - currentCoordsIds.remove(id); } } else { From ba67a8b088612d6e8c250b9ec755e89a3b0adf23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mieszko=20Wrzeszczy=C5=84ski?= Date: Tue, 27 Nov 2018 00:00:37 +0100 Subject: [PATCH 8/9] Add predifined --- .../wmi/findmytutor/activity/MapActivity.java | 43 +++++++------------ .../wmi/findmytutor/utils/SharingLevel.java | 1 + app/src/main/res/layout/activity_map.xml | 2 +- 3 files changed, 17 insertions(+), 29 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 2aeb4f2..d4a7c14 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 @@ -40,11 +40,6 @@ import com.mapbox.mapboxsdk.location.modes.RenderMode; import com.mapbox.mapboxsdk.maps.MapView; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; -import com.mapbox.mapboxsdk.style.expressions.Expression; -import com.mapbox.mapboxsdk.style.layers.CircleLayer; -import com.mapbox.mapboxsdk.style.layers.SymbolLayer; -import com.mapbox.mapboxsdk.style.sources.GeoJsonOptions; -import com.mapbox.mapboxsdk.style.sources.GeoJsonSource; import com.uam.wmi.findmytutor.R; import com.uam.wmi.findmytutor.model.Coordinate; import com.uam.wmi.findmytutor.model.User; @@ -57,10 +52,6 @@ import com.uam.wmi.findmytutor.utils.RestApiHelper; import com.uam.wmi.findmytutor.utils.SharingLevel; import com.uam.wmi.findmytutor.utils.mapUtils; -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; - import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; @@ -74,23 +65,6 @@ import io.reactivex.schedulers.Schedulers; import okhttp3.ResponseBody; import timber.log.Timber; -import static com.mapbox.mapboxsdk.style.expressions.Expression.all; -import static com.mapbox.mapboxsdk.style.expressions.Expression.get; -import static com.mapbox.mapboxsdk.style.expressions.Expression.gt; -import static com.mapbox.mapboxsdk.style.expressions.Expression.gte; -import static com.mapbox.mapboxsdk.style.expressions.Expression.has; -import static com.mapbox.mapboxsdk.style.expressions.Expression.literal; -import static com.mapbox.mapboxsdk.style.expressions.Expression.lt; -import static com.mapbox.mapboxsdk.style.expressions.Expression.toNumber; -import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleColor; -import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleRadius; -import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.textAllowOverlap; -import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.textColor; -import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.textField; -import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.textIgnorePlacement; -import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.textSize; - - public class MapActivity extends BaseActivity implements PermissionsListener, OnMapReadyCallback { @@ -378,7 +352,7 @@ public class MapActivity extends BaseActivity if (coordsList.isEmpty() && tmpLocalMarker != null) { Timber.e("200 empty []"); mapboxMap.clear(); - return; + } ArrayList tmp = new ArrayList<>(); @@ -491,6 +465,18 @@ public class MapActivity extends BaseActivity // For next fetch previousCoordsIds.clear(); previousCoordsIds.addAll(currentCoordsIds); + + + for (Coordinate coordinate : coordsMap.values()) { + // 300000 = 5mins + if ((System.currentTimeMillis() - coordinate.getTimeStamp()) > (long) 300000) { + String id = coordinate.getUserId(); + Marker markerToRemove = markerHash.get(id).getMarker(); + markerHash.remove(id); + coordsMap.remove(id); + mapboxMap.removeMarker(markerToRemove); + } + } } @Override @@ -506,7 +492,8 @@ public class MapActivity extends BaseActivity if (sharingLevel.equals(SharingLevel.APPROXIMATED.toString())) { defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.approximate_localization_marker); - } else if (sharingLevel.equals(SharingLevel.MANUAL.toString())) { + } else if (sharingLevel.equals(SharingLevel.MANUAL.toString()) || + sharingLevel.equals(SharingLevel.PREDEFINED.toString()) ) { defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.manual_localization_marker); } else if (id.equals(myId)) { defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.my_marker); diff --git a/app/src/main/java/com/uam/wmi/findmytutor/utils/SharingLevel.java b/app/src/main/java/com/uam/wmi/findmytutor/utils/SharingLevel.java index b9b04f2..0acdb11 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/utils/SharingLevel.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/utils/SharingLevel.java @@ -4,6 +4,7 @@ public enum SharingLevel { PRESENCE("presence"), APPROXIMATED("approximated"), EXACT("exact"), + PREDEFINED("predefined"), MANUAL("manual"); private final String text; diff --git a/app/src/main/res/layout/activity_map.xml b/app/src/main/res/layout/activity_map.xml index 42813df..e669303 100644 --- a/app/src/main/res/layout/activity_map.xml +++ b/app/src/main/res/layout/activity_map.xml @@ -16,7 +16,7 @@ mapbox:mapbox_cameraTargetLat="52.466799" mapbox:mapbox_cameraTargetLng="16.927002" mapbox:mapbox_cameraZoom="17" - mapbox:mapbox_styleUrl="mapbox://styles/domagalsky/cjiyzrqjp05l72rmj6ntvv2n8"> + mapbox:mapbox_styleUrl="mapbox://styles/domagalsky/cjo8yjhfj0ih02rld5rft5nv7"> From 012f2af3f2c14c7ddce58322dd280421272ab564 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mieszko=20Wrzeszczy=C5=84ski?= Date: Tue, 27 Nov 2018 00:26:43 +0100 Subject: [PATCH 9/9] Fix login --- .../java/com/uam/wmi/findmytutor/activity/LoginActivity.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/uam/wmi/findmytutor/activity/LoginActivity.java b/app/src/main/java/com/uam/wmi/findmytutor/activity/LoginActivity.java index 3b20983..06f1c5f 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/activity/LoginActivity.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/activity/LoginActivity.java @@ -182,7 +182,9 @@ public class LoginActivity extends AppCompatActivity { Claim userId = jwt.getClaim("nameid"); Claim role = jwt.getClaim("http://schemas.microsoft.com/ws/2008/06/identity/claims/role"); - if(!Objects.requireNonNull(role.asString()).equals("Student")){ + if(Objects.requireNonNull(role.asString()).equals("Student")){ + PrefUtils.storeIsTutor(getApplicationContext(), false); + }else{ PrefUtils.storeIsTutor(getApplicationContext(), true); }