diff --git a/app/src/main/java/fr/chteufleur/mytrackingdog/MainActivity.java b/app/src/main/java/fr/chteufleur/mytrackingdog/MainActivity.java index 0298fdc..e8ea1b0 100644 --- a/app/src/main/java/fr/chteufleur/mytrackingdog/MainActivity.java +++ b/app/src/main/java/fr/chteufleur/mytrackingdog/MainActivity.java @@ -330,6 +330,7 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu _menu.findItem(R.id.action_active_vibration_object).setIcon(getResources().getDrawable( serviceTrackingDog.isVibrationNearObjectEnabled() ? R.drawable.ic_check_box_checked : R.drawable.ic_check_box_unchecked)); _menu.findItem(R.id.action_active_vibration_object).setChecked(serviceTrackingDog.isVibrationNearObjectEnabled()); + navigationView.getMenu().findItem(R.id.action_clear_dog).setEnabled(false); updateSendTraceMenu(); return false; //return super.onCreateOptionsMenu(menu); @@ -340,6 +341,8 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu boolean isXmppActive = serviceTrackingDog.isXmppEnabled(); navigationView.getMenu().findItem(R.id.action_send_gpx_trail).setEnabled(isTrailFileExist); navigationView.getMenu().findItem(R.id.action_send_gpx_trail_by_xmpp).setEnabled(isXmppActive && isTrailFileExist); + navigationView.getMenu().findItem(R.id.action_clear_trail).setEnabled(isTrailFileExist); + navigationView.getMenu().findItem(R.id.action_clear_dog).setEnabled(lastDogPolyline != null); } @Override @@ -363,6 +366,14 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu startActivitySendGpxFile(); mDrawerLayout.closeDrawers(); return true; + } else if (id == R.id.action_clear_trail) { + clearTrail(); + mDrawerLayout.closeDrawers(); + return true; + } else if (id == R.id.action_clear_dog) { + clearDog(); + mDrawerLayout.closeDrawers(); + return true; } else if (id == R.id.action_active_vibration_object) { activeVibrationObject(item); return true; @@ -407,6 +418,30 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu } } + private void clearTrail() { + serviceTrackingDog.clearTrail(); + updateSendTraceMenu(); + if (lastTrailPolyline != null) { + map.getOverlayManager().remove(lastTrailPolyline); + lastTrailPolyline = null; + } + map.getOverlayManager().removeAll(listTrailObject); + listTrailObject.clear(); + this.textViewCurrentLocation.setVisibility(View.GONE); + } + + private void clearDog() { + serviceTrackingDog.clearDog(); + navigationView.getMenu().findItem(R.id.action_clear_dog).setEnabled(false); + if (lastDogPolyline != null) { + map.getOverlayManager().remove(lastDogPolyline); + lastDogPolyline = null; + } + map.getOverlayManager().removeAll(listDogObject); + listDogObject.clear(); + this.textViewCurrentLocation.setVisibility(View.GONE); + } + private void activeVibrationObject(MenuItem item) { boolean checked = item.isChecked(); item.setChecked(!checked); @@ -570,6 +605,11 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu // + private Polyline lastDogPolyline = null; + private Polyline lastTrailPolyline = null; + private final List listTrailObject = new ArrayList<>(); + private final List listDogObject = new ArrayList<>(); + private void changeStatusTrace() { serviceTrackingDog.toggleTraceurActivation(); if (serviceTrackingDog.isTraceurActivated()) { @@ -599,6 +639,7 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu this.start_stop_dog_trace.setText(R.string.dog_start); this.add_object.setVisibility(View.GONE); this.start_stop_trace.setVisibility(View.VISIBLE); + navigationView.getMenu().findItem(R.id.action_clear_dog).setEnabled(true); } } @@ -625,6 +666,11 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu } }); map.getOverlays().add(marker); + if (isFound) { + listDogObject.add(marker); + } else { + listTrailObject.add(marker); + } } private void markAsFound() { @@ -663,15 +709,18 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu return ; } - Polyline line = new Polyline(map); - line.setTitle("Chien"); - line.setSubDescription("Départ: "+listLoc.getFirstLocation().getDatePrint()); - line.setColor(Color.BLUE); - line.setPoints(convertListLocation(listLoc)); - line.setWidth(LINE_WIDTH_BIG); - line.setGeodesic(true); - line.setInfoWindow(new BasicInfoWindow(R.layout.bonuspack_bubble, map)); - map.getOverlayManager().add(line); + if (lastDogPolyline != null) { + map.getOverlayManager().remove(lastDogPolyline); + } + lastDogPolyline = new Polyline(map); + lastDogPolyline.setTitle("Chien"); + lastDogPolyline.setSubDescription("Départ: "+listLoc.getFirstLocation().getDatePrint()); + lastDogPolyline.setColor(Color.BLUE); + lastDogPolyline.setPoints(convertListLocation(listLoc)); + lastDogPolyline.setWidth(LINE_WIDTH_BIG); + lastDogPolyline.setGeodesic(true); + lastDogPolyline.setInfoWindow(new BasicInfoWindow(R.layout.bonuspack_bubble, map)); + map.getOverlayManager().add(lastDogPolyline); map.invalidate(); } @@ -681,15 +730,18 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu return ; } - Polyline line = new Polyline(map); - line.setTitle("Traceur"); - line.setSubDescription("Départ: "+listLoc.getFirstLocation().getDatePrint()); - line.setColor(Color.RED); - line.setPoints(convertListLocation(listLoc)); - line.setWidth(LINE_WIDTH_BIG); - line.setGeodesic(true); - line.setInfoWindow(new BasicInfoWindow(R.layout.bonuspack_bubble, map)); - map.getOverlayManager().add(line); + if (lastTrailPolyline != null) { + map.getOverlayManager().remove(lastTrailPolyline); + } + lastTrailPolyline = new Polyline(map); + lastTrailPolyline.setTitle("Traceur"); + lastTrailPolyline.setSubDescription("Départ: "+listLoc.getFirstLocation().getDatePrint()); + lastTrailPolyline.setColor(Color.RED); + lastTrailPolyline.setPoints(convertListLocation(listLoc)); + lastTrailPolyline.setWidth(LINE_WIDTH_BIG); + lastTrailPolyline.setGeodesic(true); + lastTrailPolyline.setInfoWindow(new BasicInfoWindow(R.layout.bonuspack_bubble, map)); + map.getOverlayManager().add(lastTrailPolyline); map.invalidate(); } diff --git a/app/src/main/java/fr/chteufleur/mytrackingdog/models/Traces.java b/app/src/main/java/fr/chteufleur/mytrackingdog/models/Traces.java index a8e0578..b7e8f6c 100644 --- a/app/src/main/java/fr/chteufleur/mytrackingdog/models/Traces.java +++ b/app/src/main/java/fr/chteufleur/mytrackingdog/models/Traces.java @@ -92,4 +92,17 @@ public class Traces { public boolean isDogActivated() { return this.dogActivated; } + + public void clearListPointTraceur() { + listPointTraceur.clear(); + } + public void clearListPointDog() { + listPointDog.clear(); + } + public void clearListObjectsTrail() { + listPointObjectsTrail.clear(); + } + public void clearListObjectDog() { + listPointObjectsDog.clear(); + } } diff --git a/app/src/main/java/fr/chteufleur/mytrackingdog/services/ServiceTrackingDog.java b/app/src/main/java/fr/chteufleur/mytrackingdog/services/ServiceTrackingDog.java index 7bc4e05..3516da0 100644 --- a/app/src/main/java/fr/chteufleur/mytrackingdog/services/ServiceTrackingDog.java +++ b/app/src/main/java/fr/chteufleur/mytrackingdog/services/ServiceTrackingDog.java @@ -230,6 +230,15 @@ public class ServiceTrackingDog implements Observer { } return distance; } + public void clearTrail() { + traces.clearListObjectsTrail(); + traces.clearListPointTraceur(); + lastExportedTrailFile = null; + } + public void clearDog() { + traces.clearListObjectDog(); + traces.clearListPointDog(); + } // // diff --git a/app/src/main/res/drawable/ic_clear_dog.xml b/app/src/main/res/drawable/ic_clear_dog.xml new file mode 100644 index 0000000..39e64d6 --- /dev/null +++ b/app/src/main/res/drawable/ic_clear_dog.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_clear_trail.xml b/app/src/main/res/drawable/ic_clear_trail.xml new file mode 100644 index 0000000..39e64d6 --- /dev/null +++ b/app/src/main/res/drawable/ic_clear_trail.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/menu/drawer_view.xml b/app/src/main/res/menu/drawer_view.xml index 37d4cd8..e3fb7be 100644 --- a/app/src/main/res/menu/drawer_view.xml +++ b/app/src/main/res/menu/drawer_view.xml @@ -8,6 +8,14 @@ android:id="@+id/action_send_gpx_trail" android:title="@string/action_send_gpx_trail" android:icon="@drawable/ic_share" /> + + Import GPX Envoyer trace du traceur Envoyer par + Supprimer données traceur + Supprimer données chien Active vibration objets Affiche identifiant Lecture identifiant XMPP Active XMPP - Envoyer trace du traceur par XMPP + Envoyer trace du traceur