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(
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
//<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() {
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();
}

View File

@ -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();
}
}

View File

@ -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();
}
//</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:title="@string/action_send_gpx_trail"
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
android:id="@+id/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_send_gpx_trail">Envoyer trace du traceur</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_qr_code_generator">Affiche identifiant</string>
<string name="action_qr_code_reader">Lecture identifiant</string>
<string name="menu_title_xmpp">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>