// Path: app/src/main/java/team6/iguide/OverpassModel/OverpassElement.java
// public class OverpassElement implements Serializable{
// 
//     @Expose
//     private String type;
//     @Expose
//     private Long id;
//     @Expose
//     private OverpassCenter center;
//     @Expose
//     private List<Long> nodes = new ArrayList<Long>();
//     @Expose
//     private OverpassTags tags;
//     @Expose
//     private Double lat;
//     @Expose
//     private Double lon;
// 
//     public String getType() {
//         return type;
//     }
// 
//     public void setType(String type) {
//         this.type = type;
//     }
// 
//     public Long getId() {
//         return id;
//     }
// 
//     public void setId(Long id) {
//         this.id = id;
//     }
// 
//     public OverpassCenter getCenter() {
//         return center;
//     }
// 
//     public void setCenter(OverpassCenter center) {
//         this.center = center;
//     }
// 
//     public List<Long> getNodes() {
//         return nodes;
//     }
// 
//     public void setNodes(List<Long> nodes) {
//         this.nodes = nodes;
//     }
// 
//     public OverpassTags getTags() {
//         return tags;
//     }
// 
//     public void setTags(OverpassTags tags) {
//         this.tags = tags;
//     }
// 
//     public Double getLat() {
//         return lat;
//     }
// 
//     public void setLat(Double lat) {
//         this.lat = lat;
//     }
// 
//     public Double getLon() {
//         return lon;
//     }
// 
//     public void setLon(Double lon) {
//         this.lon = lon;
//     }
// 
// }
// 
// Path: app/src/main/java/team6/iguide/OverpassModel/OverpassModel.java
// public class OverpassModel implements Serializable{
// 
//     @Expose
//     private String version;
//     @Expose
//     private String generator;
//     @Expose
//     private OverpassOsm3s osm3s;
//     @Expose
//     private List<OverpassElement> elements = new ArrayList<>();
// 
// 
//     public String getVersion() {
//         return version;
//     }
// 
//     public void setVersion(String version) {
//         this.version = version;
//     }
// 
//     public String getGenerator() {
//         return generator;
//     }
// 
//     public void setGenerator(String generator) {
//         this.generator = generator;
//     }
// 
//     public OverpassOsm3s getOsm3s() {
//         return osm3s;
//     }
// 
//     public void setOsm3s(OverpassOsm3s osm3s) {
//         this.osm3s = osm3s;
//     }
// 
//     public List<OverpassElement> getElements() {
//         return elements;
//     }
// 
//     public void setElements(List<OverpassElement> elements) {
//         this.elements = elements;
//     }
// 
// }


import android.content.Context;
import android.support.design.widget.Snackbar;
import android.support.v4.content.ContextCompat;
import android.util.Log;
import com.android.volley.DefaultRetryPolicy;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;
import com.google.gson.Gson;
import com.mapbox.mapboxsdk.geometry.LatLng;
import com.mapbox.mapboxsdk.overlay.Marker;
import com.mapbox.mapboxsdk.views.MapView;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
import team6.iguide.OverpassModel.OverpassElement;
import team6.iguide.OverpassModel.OverpassModel;
            public void onResponse(JSONObject response) {

                Gson gson = new Gson();
                String overpassData = response.toString();

                results = gson.fromJson(overpassData, OverpassModel.class);
                addToList();


            }
        }, new Response.ErrorListener() {

            @Override
            public void onErrorResponse(VolleyError error) {
                Log.e("GetParkingLots.Volley", "onErrorResponse ", error);
                if(requestAttempt < 3){
                    requestAttempt++;
                    fetchJsonResponse(URI);
                }
                else
                Snackbar.make(MainActivity.mapContainer, "Can't get Parking information", Snackbar.LENGTH_LONG).show();
            }
        });
        mRequestQueue.add(req);

        // This allows volley to retry request if for some reason it times out the first time
        // More info can be found in this question:
        // http://stackoverflow.com/questions/17094718/android-volley-timeout
        req.setRetryPolicy(new DefaultRetryPolicy(
                5000,
// Path: app/src/main/java/team6/iguide/OverpassModel/OverpassElement.java
// public class OverpassElement implements Serializable{
// 
//     @Expose
//     private String type;
//     @Expose
//     private Long id;
//     @Expose
//     private OverpassCenter center;
//     @Expose
//     private List<Long> nodes = new ArrayList<Long>();
//     @Expose
//     private OverpassTags tags;
//     @Expose
//     private Double lat;
//     @Expose
//     private Double lon;
// 
//     public String getType() {
//         return type;
//     }
// 
//     public void setType(String type) {
//         this.type = type;
//     }
// 
//     public Long getId() {
//         return id;
//     }
// 
//     public void setId(Long id) {
//         this.id = id;
//     }
// 
//     public OverpassCenter getCenter() {
//         return center;
//     }
// 
//     public void setCenter(OverpassCenter center) {
//         this.center = center;
//     }
// 
//     public List<Long> getNodes() {
//         return nodes;
//     }
// 
//     public void setNodes(List<Long> nodes) {
//         this.nodes = nodes;
//     }
// 
//     public OverpassTags getTags() {
//         return tags;
//     }
// 
//     public void setTags(OverpassTags tags) {
//         this.tags = tags;
//     }
// 
//     public Double getLat() {
//         return lat;
//     }
// 
//     public void setLat(Double lat) {
//         this.lat = lat;
//     }
// 
//     public Double getLon() {
//         return lon;
//     }
// 
//     public void setLon(Double lon) {
//         this.lon = lon;
//     }
// 
// }
// 
// Path: app/src/main/java/team6/iguide/OverpassModel/OverpassModel.java
// public class OverpassModel implements Serializable{
// 
//     @Expose
//     private String version;
//     @Expose
//     private String generator;
//     @Expose
//     private OverpassOsm3s osm3s;
//     @Expose
//     private List<OverpassElement> elements = new ArrayList<>();
// 
// 
//     public String getVersion() {
//         return version;
//     }
// 
//     public void setVersion(String version) {
//         this.version = version;
//     }
// 
//     public String getGenerator() {
//         return generator;
//     }
// 
//     public void setGenerator(String generator) {
//         this.generator = generator;
//     }
// 
//     public OverpassOsm3s getOsm3s() {
//         return osm3s;
//     }
// 
//     public void setOsm3s(OverpassOsm3s osm3s) {
//         this.osm3s = osm3s;
//     }
// 
//     public List<OverpassElement> getElements() {
//         return elements;
//     }
// 
//     public void setElements(List<OverpassElement> elements) {
//         this.elements = elements;
//     }
// 
// }


// Path: app/src/main/java/team6/iguide/GetParkingLots.java
import android.content.Context;
import android.support.design.widget.Snackbar;
import android.support.v4.content.ContextCompat;
import android.util.Log;
import com.android.volley.DefaultRetryPolicy;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;
import com.google.gson.Gson;
import com.mapbox.mapboxsdk.geometry.LatLng;
import com.mapbox.mapboxsdk.overlay.Marker;
import com.mapbox.mapboxsdk.views.MapView;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
import team6.iguide.OverpassModel.OverpassElement;
import team6.iguide.OverpassModel.OverpassModel;

            public void onResponse(JSONObject response) {

                Gson gson = new Gson();
                String overpassData = response.toString();

                results = gson.fromJson(overpassData, OverpassModel.class);
                addToList();


            }
        }, new Response.ErrorListener() {

            @Override
            public void onErrorResponse(VolleyError error) {
                Log.e("GetParkingLots.Volley", "onErrorResponse ", error);
                if(requestAttempt < 3){
                    requestAttempt++;
                    fetchJsonResponse(URI);
                }
                else
                Snackbar.make(MainActivity.mapContainer, "Can't get Parking information", Snackbar.LENGTH_LONG).show();
            }
        });
        mRequestQueue.add(req);

        // This allows volley to retry request if for some reason it times out the first time
        // More info can be found in this question:
        // http://stackoverflow.com/questions/17094718/android-volley-timeout
        req.setRetryPolicy(new DefaultRetryPolicy(
                5000,
                DefaultRetryPolicy.DEFAULT_MAX_RETRIES,