Map marker selection and footer visibility now track together.

This commit is contained in:
Paul Hawke 2017-12-30 17:16:45 -06:00 committed by maskara
parent 353be8cd67
commit 4b83037299

View file

@ -24,6 +24,7 @@ import com.google.gson.Gson;
import com.google.gson.GsonBuilder; import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken; import com.google.gson.reflect.TypeToken;
import com.mapbox.mapboxsdk.Mapbox; import com.mapbox.mapboxsdk.Mapbox;
import com.mapbox.mapboxsdk.annotations.Marker;
import com.mapbox.mapboxsdk.annotations.MarkerOptions; import com.mapbox.mapboxsdk.annotations.MarkerOptions;
import com.mapbox.mapboxsdk.annotations.PolygonOptions; import com.mapbox.mapboxsdk.annotations.PolygonOptions;
import com.mapbox.mapboxsdk.camera.CameraPosition; import com.mapbox.mapboxsdk.camera.CameraPosition;
@ -77,6 +78,7 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment {
private Animation rotate_forward; private Animation rotate_forward;
private Place place; private Place place;
private Marker selected;
public NearbyMapFragment() { public NearbyMapFragment() {
} }
@ -136,6 +138,8 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment {
else if (bottomSheetDetailsBehavior.getState() == BottomSheetBehavior else if (bottomSheetDetailsBehavior.getState() == BottomSheetBehavior
.STATE_COLLAPSED) { .STATE_COLLAPSED) {
bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_HIDDEN); bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);
mapView.getMapAsync(MapboxMap::deselectMarkers);
selected=null;
return true; return true;
} }
} }
@ -253,8 +257,15 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment {
mapView.getMapAsync(mapboxMap -> { mapView.getMapAsync(mapboxMap -> {
mapboxMap.addMarkers(baseMarkerOptions); mapboxMap.addMarkers(baseMarkerOptions);
mapboxMap.setOnInfoWindowCloseListener(marker -> {
if (marker == selected){
bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);
}
});
mapboxMap.setOnMarkerClickListener(marker -> { mapboxMap.setOnMarkerClickListener(marker -> {
if (marker instanceof NearbyMarker) { if (marker instanceof NearbyMarker) {
this.selected = marker;
NearbyMarker nearbyMarker = (NearbyMarker) marker; NearbyMarker nearbyMarker = (NearbyMarker) marker;
Place place = nearbyMarker.getNearbyBaseMarker().getPlace(); Place place = nearbyMarker.getNearbyBaseMarker().getPlace();
passInfoToSheet(place); passInfoToSheet(place);
@ -328,6 +339,7 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment {
this.getView().requestFocus(); this.getView().requestFocus();
break; break;
case (BottomSheetBehavior.STATE_HIDDEN): case (BottomSheetBehavior.STATE_HIDDEN):
mapView.getMapAsync(MapboxMap::deselectMarkers);
transparentView.setClickable(false); transparentView.setClickable(false);
transparentView.setAlpha(0); transparentView.setAlpha(0);
closeFabs(isFabOpen); closeFabs(isFabOpen);