From a37f455e5462717e08a732bf6d644ab17c56e6ba Mon Sep 17 00:00:00 2001 From: Pulkit Bhatia Date: Mon, 9 Jan 2017 14:19:54 +0530 Subject: [PATCH] #25 : Removing bug while adding markers --- .../com/pulkit4tech/privy/PrivyMapsActivity.java | 4 ++-- .../pulkit4tech/privy/utilities/RequestData.java | 15 +++++++++------ 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/pulkit4tech/privy/PrivyMapsActivity.java b/app/src/main/java/com/pulkit4tech/privy/PrivyMapsActivity.java index 2bd5002..0cd7cf8 100644 --- a/app/src/main/java/com/pulkit4tech/privy/PrivyMapsActivity.java +++ b/app/src/main/java/com/pulkit4tech/privy/PrivyMapsActivity.java @@ -33,7 +33,7 @@ public class PrivyMapsActivity extends ActionBarActivity implements OnMapReadyCa private GoogleMap mMap; private Context mContext; private CameraPosition MY_LOCATION_CAMERA_POS; - private HashMap universalMarkers; + private HashMap universalMarkers; // My location private LocationData myLocationData; @@ -44,6 +44,7 @@ protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_privy_maps); mContext = this; + universalMarkers = new HashMap<>(); // Obtain the SupportMapFragment and get notified when the map is ready to be used. SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() @@ -172,7 +173,6 @@ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permis } private void markNearbyPrivys(LatLng myLocation){ - universalMarkers = new HashMap<>(); new RequestData(mContext,mMap,universalMarkers,myLocation).getMarkerData(); } } diff --git a/app/src/main/java/com/pulkit4tech/privy/utilities/RequestData.java b/app/src/main/java/com/pulkit4tech/privy/utilities/RequestData.java index 3290c83..59e22cc 100644 --- a/app/src/main/java/com/pulkit4tech/privy/utilities/RequestData.java +++ b/app/src/main/java/com/pulkit4tech/privy/utilities/RequestData.java @@ -12,6 +12,8 @@ import com.android.volley.toolbox.StringRequest; import com.android.volley.toolbox.Volley; import com.google.android.gms.maps.GoogleMap; +import com.google.android.gms.maps.model.BitmapDescriptor; +import com.google.android.gms.maps.model.BitmapDescriptorFactory; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.Marker; import com.google.android.gms.maps.model.MarkerOptions; @@ -43,9 +45,9 @@ public class RequestData { private String PLACE = "place"; private String NEARBY = "nearbysearch"; private String TYPE = "json"; - private HashMap hm; + private HashMap hm; - public RequestData(Context mContext, GoogleMap mMap, HashMap universalMarkerHashMap, LatLng myLocation) { + public RequestData(Context mContext, GoogleMap mMap, HashMap universalMarkerHashMap, LatLng myLocation) { this.myLocation = myLocation; this.mContext = mContext; this.mMap = mMap; @@ -84,16 +86,17 @@ public void onResponse(String response) { private void addMarkers(PrivyPost post) { for (MarkerData data : post.getResults()) { Log.d(DEBUG, data.toString()); - Marker temp = mMap.addMarker(new MarkerOptions().position(new LatLng(data.getGeometry().getLocation().getLat(), data.getGeometry().getLocation().getLng())).title(data.getName())); - hm.put(temp.hashCode(), data); + BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE); + Marker temp = mMap.addMarker(new MarkerOptions().position(new LatLng(data.getGeometry().getLocation().getLat(), data.getGeometry().getLocation().getLng())).title(data.getName()).icon(bitmapDescriptor)); + hm.put(temp.getId(), data); } mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() { @Override public boolean onMarkerClick(Marker marker) { //testing - if (hm.containsKey(marker.hashCode())) - Toast.makeText(mContext, hm.get(marker.hashCode()).getName(), Toast.LENGTH_SHORT).show(); + if (hm.containsKey(marker.getId())) + makeToast(mContext, hm.get(marker.getId()).getName()); else marker.remove(); return false;