diff --git a/.gitignore b/.gitignore index 0c1fdca..31fce2b 100644 --- a/.gitignore +++ b/.gitignore @@ -65,3 +65,4 @@ fastlane/Preview.html fastlane/screenshots fastlane/test_output fastlane/readme.md +app/src/main/res/.DS_Store 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 82dd6a1..3c77419 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 @@ -10,10 +10,13 @@ import android.content.SharedPreferences; import android.os.Bundle; import android.os.Handler; import android.support.design.widget.FloatingActionButton; +import android.support.v4.content.ContextCompat; import android.util.Log; import com.jakewharton.retrofit2.adapter.rxjava2.HttpException; +import com.mapbox.mapboxsdk.annotations.Icon; +import com.mapbox.mapboxsdk.annotations.IconFactory; import com.mapbox.mapboxsdk.style.layers.CircleLayer; import com.mapbox.mapboxsdk.style.layers.Layer; import com.mapbox.mapboxsdk.style.layers.SymbolLayer; @@ -75,6 +78,7 @@ public class MapActivity extends BaseActivity private MapView mapView; private MapboxMap mapboxMap; + private Marker droppedMarker; private HashMap coordsMap = new HashMap<>(); private HashMap markerHash = new HashMap<>(); @@ -109,8 +113,9 @@ public class MapActivity extends BaseActivity } @Override - public void onMapReady(MapboxMap map) { - mapboxMap = map; + public void onMapReady(MapboxMap mapboxMap) { + MapActivity.this.mapboxMap = mapboxMap; +// mapboxMap = map; final Marker marker = mapboxMap.addMarker(new MarkerViewOptions() .position(new LatLng(52.466782, 16.927549))); mStatusChecker.run(); @@ -143,14 +148,63 @@ public class MapActivity extends BaseActivity } private void setOnMapLongClickListener() { - mapboxMap.addOnMapLongClickListener((LatLng latLng) -> { - Log.e(tag, "eeeeee"); - Button button = findViewById(R.id.select_location_button); - button.setVisibility(View.VISIBLE); + final boolean[] cancel = {false}; + Button selectLocationButton = findViewById(R.id.select_location_button); -// button.setOnClickListener(() -> { -// -// }); + mapboxMap.addOnMapLongClickListener((LatLng latLng) -> { + selectLocationButton.setVisibility(View.VISIBLE); + Icon icon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.green_marker); + + + if (droppedMarker == null) { + + droppedMarker = mapboxMap.addMarker(new MarkerOptions() + .position(latLng) + .icon(icon) + .title("My Loc") + .setSnippet("Snipecik")); + + } else if (!cancel[0]){ + ValueAnimator markerAnimator = ObjectAnimator.ofObject(droppedMarker, "position", + new mapUtils.LatLngEvaluator(), droppedMarker.getPosition(), latLng); + markerAnimator.setDuration(2000); + markerAnimator.start(); + } + + selectLocationButton.setOnClickListener((View view) -> { + + if (!cancel[0] && droppedMarker != null){ + // Toast instructing user to tap on the mapboxMap + Toast.makeText( + MapActivity.this, + "Manual Locations selected!" + latLng, + Toast.LENGTH_LONG + ).show(); + + selectLocationButton.setBackgroundColor( + ContextCompat.getColor(MapActivity.this, R.color.colorAccent)); + selectLocationButton.setText("Rm my loc"); + selectLocationButton.setVisibility(View.VISIBLE); + cancel[0] = true; + } else { + mapboxMap.removeMarker(droppedMarker); + droppedMarker = null; + + Toast.makeText( + MapActivity.this, + "REMOVED!!" + latLng, + Toast.LENGTH_LONG + ).show(); + + cancel[0] = false; + selectLocationButton.setVisibility(View.GONE); + selectLocationButton.setText(R.string.select_a_location); + selectLocationButton.setBackgroundColor( + ContextCompat.getColor(MapActivity.this, R.color.colorPrimary)); + } + + + }); }); } diff --git a/app/src/main/res/drawable/green_marker.png b/app/src/main/res/drawable/green_marker.png new file mode 100644 index 0000000..b8f9abb Binary files /dev/null and b/app/src/main/res/drawable/green_marker.png differ diff --git a/app/src/main/res/drawable/purple_marker.png b/app/src/main/res/drawable/purple_marker.png new file mode 100644 index 0000000..b3cdf26 Binary files /dev/null and b/app/src/main/res/drawable/purple_marker.png differ diff --git a/app/src/main/res/drawable/yellow_marker.png b/app/src/main/res/drawable/yellow_marker.png new file mode 100644 index 0000000..85b97e1 Binary files /dev/null and b/app/src/main/res/drawable/yellow_marker.png differ diff --git a/app/src/main/res/layout/activity_map.xml b/app/src/main/res/layout/activity_map.xml index 3b84e79..aec74e8 100644 --- a/app/src/main/res/layout/activity_map.xml +++ b/app/src/main/res/layout/activity_map.xml @@ -97,7 +97,7 @@ android:layout_alignParentBottom="true" android:layout_margin="8dp" android:background="@color/colorPrimary" - android:text="Select a location" + android:text="@string/select_a_location" android:textColor="@android:color/white" android:visibility="gone" /> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 367e402..bb6549a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -202,5 +202,6 @@ functionality. Hotels Parks Attractions + Select a location