diff --git a/.idea/misc.xml b/.idea/misc.xml index 5d19981..fbb6828 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -37,7 +37,7 @@ - + diff --git a/app/src/main/java/com/sfuapichallenge/droptableteam/majorloo/MapsActivity.java b/app/src/main/java/com/sfuapichallenge/droptableteam/majorloo/MapsActivity.java index baa2f5f..fe02985 100644 --- a/app/src/main/java/com/sfuapichallenge/droptableteam/majorloo/MapsActivity.java +++ b/app/src/main/java/com/sfuapichallenge/droptableteam/majorloo/MapsActivity.java @@ -4,50 +4,40 @@ import android.content.Context; import android.content.SharedPreferences; import android.content.pm.PackageManager; -import android.graphics.Bitmap; -import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Typeface; -import android.graphics.drawable.Drawable; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; -import android.media.Rating; import android.os.Build; +import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v4.app.ActivityCompat; import android.support.v4.app.FragmentActivity; -import android.os.Bundle; import android.support.v4.content.ContextCompat; -import android.support.v4.content.res.ResourcesCompat; -import android.util.Log; import android.view.Gravity; import android.view.View; import android.widget.Button; import android.widget.LinearLayout; import android.widget.RatingBar; import android.widget.TextView; -import android.widget.Toast; import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.OnMapReadyCallback; import com.google.android.gms.maps.SupportMapFragment; -import com.google.android.gms.maps.UiSettings; -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; - import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.google.maps.android.SphericalUtil; + import java.io.InputStream; import java.lang.reflect.Type; import java.util.ArrayList; -import com.google.gson.reflect.TypeToken; -import com.google.maps.android.SphericalUtil; - public class MapsActivity extends FragmentActivity implements OnMapReadyCallback { private GoogleMap mMap; @@ -58,14 +48,14 @@ public class MapsActivity extends FragmentActivity implements OnMapReadyCallback private LocationListener locationListener; private static RatingBar ratingBar; private Button rateButton; - SharedPreferences mPrefs; + SharedPreferences mPrefs; //location permission public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); - if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){ - if(ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) { + if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { + if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) { locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener); } @@ -85,22 +75,23 @@ protected void onCreate(Bundle savedInstanceState) { Gson gson = new Gson(); String json = mPrefs.getString("Washrooms", ""); if (!json.isEmpty()) { - Type type = new TypeToken>(){}.getType(); + Type type = new TypeToken>() { + }.getType(); washroomList = gson.fromJson(json, type); - }else{ + } else { washroomList = new ArrayList(); } CSVwashroomList = new ArrayList(); - + washroomManager = washroomManager.getInstance(); InputStream inputStream = getResources().openRawResource(R.raw.vancouver_public_washrooms); CSVParser csvParser = new CSVParser(inputStream); CSVwashroomList = csvParser.read(); - for(String[] stringList: CSVwashroomList) { + for (String[] stringList : CSVwashroomList) { LatLng newLatLng = new LatLng(Double.parseDouble(stringList[8]), Double.parseDouble(stringList[9])); - Washroom washroom = new Washroom(stringList[0],stringList[1], stringList[2], stringList[3], + Washroom washroom = new Washroom(stringList[0], stringList[1], stringList[2], stringList[3], stringList[4], stringList[5], stringList[6], stringList[7], stringList[10], newLatLng, 0); @@ -113,12 +104,9 @@ protected void onCreate(Bundle savedInstanceState) { rateButton.setVisibility(View.INVISIBLE); - } - - /** * Manipulates the map once available. * This callback is triggered when the map is ready to be used. @@ -131,7 +119,7 @@ protected void onCreate(Bundle savedInstanceState) { @Override public void onMapReady(GoogleMap googleMap) { mMap = googleMap; - final TextView nearestText = (TextView)findViewById(R.id.nearestTextView); + final TextView nearestText = (TextView) findViewById(R.id.nearestTextView); googleMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() { @@ -155,7 +143,7 @@ public void onLocationChanged(Location location) { Double delta = SphericalUtil.computeDistanceBetween(userLocation, washroom.getLatLng()); if (delta < 1500) { - Marker marker = mMap.addMarker(new MarkerOptions().position(washroom.getLatLng()).title(washroom.getName()) + Marker marker = mMap.addMarker(new MarkerOptions().position(washroom.getLatLng()).title(washroom.getName()) .snippet("Name: " + washroom.getName() + "\n" + "Address: " + washroom.getAddress() + "\n" + "Type: " + washroom.getType() + "\n" + "Location: " + washroom.getLocation() + "\n" + "Summer hours: " + washroom.getSummerHours() + "\n" + "Winter hours: " + washroom.getWinterHours() + "\n" @@ -189,19 +177,9 @@ public View getInfoContents(Marker marker) { info.addView(snippet); final Washroom w = findWashroomByName(marker.getTitle()); - //Toast.makeText(MapsActivity.this,marker.getTitle() + ": " + Float.toString(w.getNumOfStars()), Toast.LENGTH_SHORT).show(); ratingBar.setRating(w.getNumOfStars()); - -// ratingBar.setOnRatingBarChangeListener( -// new RatingBar.OnRatingBarChangeListener() { -// @Override -// public void onRatingChanged(RatingBar ratingBar, float v, boolean b) { -// -// } -// } -// ); rateButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -211,7 +189,6 @@ public void onClick(View view) { String json = gson.toJson(washroomList); prefsEditor.putString("Washrooms", json); prefsEditor.commit(); - //Toast.makeText(MapsActivity.this, w.getName() + ": " + Float.toString(ratingBar.getRating()), Toast.LENGTH_SHORT).show(); } }); @@ -221,8 +198,8 @@ public void onClick(View view) { } } - for (Marker m: markerList) { - if(m.getTag() == washroomManager.findNearestTo(userLocation)) { + for (Marker m : markerList) { + if (m.getTag() == washroomManager.findNearestTo(userLocation)) { m.setIcon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ORANGE)); } } @@ -294,7 +271,6 @@ public View getInfoContents(Marker marker) { info.addView(title); info.addView(snippet); final Washroom w = findWashroomByName(marker.getTitle()); - //Toast.makeText(MapsActivity.this, marker.getTitle() + ": " + Float.toString(w.getNumOfStars()), Toast.LENGTH_SHORT).show(); ratingBar.setRating(w.getNumOfStars()); rateButton.setOnClickListener(new View.OnClickListener() { @@ -306,9 +282,6 @@ public void onClick(View view) { String json = gson.toJson(washroomList); prefsEditor.putString("Washrooms", json); prefsEditor.commit(); - - //Toast.makeText(MapsActivity.this,w.getName() + ": " + Float.toString(ratingBar.getRating()), Toast.LENGTH_SHORT).show(); - } }); return info; @@ -316,27 +289,23 @@ public void onClick(View view) { }); } } - - for (Marker m: markerList) { - if(m.getTag() == washroomManager.findNearestTo(userLocation)) { + for (Marker m : markerList) { + if (m.getTag() == washroomManager.findNearestTo(userLocation)) { m.setIcon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ORANGE)); } } - nearestText.setText(" Nearest: " + washroomManager.findNearestTo(userLocation).getName()); - mMap.moveCamera(CameraUpdateFactory.newLatLng(userLocation)); } } - mMap.setMyLocationEnabled(true); mMap.animateCamera(CameraUpdateFactory.zoomTo(13)); } - public Washroom findWashroomByName (String name){ - for(Washroom w : washroomList) { - if(w.getName().equals(name)) { + public Washroom findWashroomByName(String name) { + for (Washroom w : washroomList) { + if (w.getName().equals(name)) { return w; } } @@ -344,6 +313,4 @@ public Washroom findWashroomByName (String name){ } - - }