Add clear data buttons.

This commit is contained in:
Chteufleur 2018-10-07 22:59:43 +02:00
parent 0585fb3eb1
commit 372896ac34
7 changed files with 121 additions and 19 deletions

View File

@ -330,6 +330,7 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu
_menu.findItem(R.id.action_active_vibration_object).setIcon(getResources().getDrawable( _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)); 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()); _menu.findItem(R.id.action_active_vibration_object).setChecked(serviceTrackingDog.isVibrationNearObjectEnabled());
navigationView.getMenu().findItem(R.id.action_clear_dog).setEnabled(false);
updateSendTraceMenu(); updateSendTraceMenu();
return false; return false;
//return super.onCreateOptionsMenu(menu); //return super.onCreateOptionsMenu(menu);
@ -340,6 +341,8 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu
boolean isXmppActive = serviceTrackingDog.isXmppEnabled(); boolean isXmppActive = serviceTrackingDog.isXmppEnabled();
navigationView.getMenu().findItem(R.id.action_send_gpx_trail).setEnabled(isTrailFileExist); 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_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 @Override
@ -363,6 +366,14 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu
startActivitySendGpxFile(); startActivitySendGpxFile();
mDrawerLayout.closeDrawers(); mDrawerLayout.closeDrawers();
return true; 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) { } else if (id == R.id.action_active_vibration_object) {
activeVibrationObject(item); activeVibrationObject(item);
return true; 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) { private void activeVibrationObject(MenuItem item) {
boolean checked = item.isChecked(); boolean checked = item.isChecked();
item.setChecked(!checked); item.setChecked(!checked);
@ -570,6 +605,11 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu
//<editor-fold defaultstate="collapsed" desc="Map management"> //<editor-fold defaultstate="collapsed" desc="Map management">
private Polyline lastDogPolyline = null;
private Polyline lastTrailPolyline = null;
private final List<Marker> listTrailObject = new ArrayList<>();
private final List<Marker> listDogObject = new ArrayList<>();
private void changeStatusTrace() { private void changeStatusTrace() {
serviceTrackingDog.toggleTraceurActivation(); serviceTrackingDog.toggleTraceurActivation();
if (serviceTrackingDog.isTraceurActivated()) { 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.start_stop_dog_trace.setText(R.string.dog_start);
this.add_object.setVisibility(View.GONE); this.add_object.setVisibility(View.GONE);
this.start_stop_trace.setVisibility(View.VISIBLE); 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); map.getOverlays().add(marker);
if (isFound) {
listDogObject.add(marker);
} else {
listTrailObject.add(marker);
}
} }
private void markAsFound() { private void markAsFound() {
@ -663,15 +709,18 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu
return ; return ;
} }
Polyline line = new Polyline(map); if (lastDogPolyline != null) {
line.setTitle("Chien"); map.getOverlayManager().remove(lastDogPolyline);
line.setSubDescription("Départ: "+listLoc.getFirstLocation().getDatePrint()); }
line.setColor(Color.BLUE); lastDogPolyline = new Polyline(map);
line.setPoints(convertListLocation(listLoc)); lastDogPolyline.setTitle("Chien");
line.setWidth(LINE_WIDTH_BIG); lastDogPolyline.setSubDescription("Départ: "+listLoc.getFirstLocation().getDatePrint());
line.setGeodesic(true); lastDogPolyline.setColor(Color.BLUE);
line.setInfoWindow(new BasicInfoWindow(R.layout.bonuspack_bubble, map)); lastDogPolyline.setPoints(convertListLocation(listLoc));
map.getOverlayManager().add(line); lastDogPolyline.setWidth(LINE_WIDTH_BIG);
lastDogPolyline.setGeodesic(true);
lastDogPolyline.setInfoWindow(new BasicInfoWindow(R.layout.bonuspack_bubble, map));
map.getOverlayManager().add(lastDogPolyline);
map.invalidate(); map.invalidate();
} }
@ -681,15 +730,18 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu
return ; return ;
} }
Polyline line = new Polyline(map); if (lastTrailPolyline != null) {
line.setTitle("Traceur"); map.getOverlayManager().remove(lastTrailPolyline);
line.setSubDescription("Départ: "+listLoc.getFirstLocation().getDatePrint()); }
line.setColor(Color.RED); lastTrailPolyline = new Polyline(map);
line.setPoints(convertListLocation(listLoc)); lastTrailPolyline.setTitle("Traceur");
line.setWidth(LINE_WIDTH_BIG); lastTrailPolyline.setSubDescription("Départ: "+listLoc.getFirstLocation().getDatePrint());
line.setGeodesic(true); lastTrailPolyline.setColor(Color.RED);
line.setInfoWindow(new BasicInfoWindow(R.layout.bonuspack_bubble, map)); lastTrailPolyline.setPoints(convertListLocation(listLoc));
map.getOverlayManager().add(line); lastTrailPolyline.setWidth(LINE_WIDTH_BIG);
lastTrailPolyline.setGeodesic(true);
lastTrailPolyline.setInfoWindow(new BasicInfoWindow(R.layout.bonuspack_bubble, map));
map.getOverlayManager().add(lastTrailPolyline);
map.invalidate(); map.invalidate();
} }

View File

@ -92,4 +92,17 @@ public class Traces {
public boolean isDogActivated() { public boolean isDogActivated() {
return this.dogActivated; return this.dogActivated;
} }
public void clearListPointTraceur() {
listPointTraceur.clear();
}
public void clearListPointDog() {
listPointDog.clear();
}
public void clearListObjectsTrail() {
listPointObjectsTrail.clear();
}
public void clearListObjectDog() {
listPointObjectsDog.clear();
}
} }

View File

@ -230,6 +230,15 @@ public class ServiceTrackingDog implements Observer {
} }
return distance; return distance;
} }
public void clearTrail() {
traces.clearListObjectsTrail();
traces.clearListPointTraceur();
lastExportedTrailFile = null;
}
public void clearDog() {
traces.clearListObjectDog();
traces.clearListPointDog();
}
//</editor-fold> //</editor-fold>
//</editor-fold> //</editor-fold>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M6,19c0,1.1 0.9,2 2,2h8c1.1,0 2,-0.9 2,-2V7H6v12zM19,4h-3.5l-1,-1h-5l-1,1H5v2h14V4z"/>
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M6,19c0,1.1 0.9,2 2,2h8c1.1,0 2,-0.9 2,-2V7H6v12zM19,4h-3.5l-1,-1h-5l-1,1H5v2h14V4z"/>
</vector>

View File

@ -8,6 +8,14 @@
android:id="@+id/action_send_gpx_trail" android:id="@+id/action_send_gpx_trail"
android:title="@string/action_send_gpx_trail" android:title="@string/action_send_gpx_trail"
android:icon="@drawable/ic_share" /> android:icon="@drawable/ic_share" />
<item
android:id="@+id/action_clear_trail"
android:title="@string/action_clear_trail"
android:icon="@drawable/ic_clear_trail" />
<item
android:id="@+id/action_clear_dog"
android:title="@string/action_clear_dog"
android:icon="@drawable/ic_clear_dog" />
<item <item
android:id="@+id/action_active_vibration_object" android:id="@+id/action_active_vibration_object"
android:title="@string/action_active_vibration_object" android:title="@string/action_active_vibration_object"

View File

@ -10,10 +10,12 @@
<string name="action_import_gpx">Import GPX</string> <string name="action_import_gpx">Import GPX</string>
<string name="action_send_gpx_trail">Envoyer trace du traceur</string> <string name="action_send_gpx_trail">Envoyer trace du traceur</string>
<string name="action_send_to">Envoyer par</string> <string name="action_send_to">Envoyer par</string>
<string name="action_clear_trail">Supprimer données traceur</string>
<string name="action_clear_dog">Supprimer données chien</string>
<string name="action_active_vibration_object">Active vibration objets</string> <string name="action_active_vibration_object">Active vibration objets</string>
<string name="action_qr_code_generator">Affiche identifiant</string> <string name="action_qr_code_generator">Affiche identifiant</string>
<string name="action_qr_code_reader">Lecture identifiant</string> <string name="action_qr_code_reader">Lecture identifiant</string>
<string name="menu_title_xmpp">XMPP</string> <string name="menu_title_xmpp">XMPP</string>
<string name="action_active_xmpp">Active XMPP</string> <string name="action_active_xmpp">Active XMPP</string>
<string name="action_send_gpx_trail_by_xmpp">Envoyer trace du traceur par XMPP</string> <string name="action_send_gpx_trail_by_xmpp">Envoyer trace du traceur</string>
</resources> </resources>