Reorganization of ServiceGps code.
This commit is contained in:
parent
b856f3f4e1
commit
2dd8f75822
|
|
@ -1,8 +0,0 @@
|
|||
package fr.chteufleur.mytrackingdog.services;
|
||||
|
||||
public interface IServiceGps {
|
||||
|
||||
public void start();
|
||||
public void stop();
|
||||
|
||||
}
|
||||
|
|
@ -31,7 +31,7 @@ import fr.chteufleur.mytrackingdog.models.beans.MyLocationArray;
|
|||
import fr.chteufleur.mytrackingdog.models.beans.TraceLocation;
|
||||
import fr.chteufleur.mytrackingdog.models.beans.WayPointLocation;
|
||||
|
||||
public class ServiceGps extends Observable implements IServiceGps, LocationListener {
|
||||
public class ServiceGps extends Observable implements LocationListener {
|
||||
|
||||
private static final String TAG = ServiceGps.class.getName();
|
||||
public static final String NOTIF_NEW_LOCATION = ServiceGps.class.getName()+".newlocation";
|
||||
|
|
@ -67,6 +67,24 @@ public class ServiceGps extends Observable implements IServiceGps, LocationListe
|
|||
return currentLocation;
|
||||
}
|
||||
|
||||
public void start() {
|
||||
try {
|
||||
// if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
|
||||
this.locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, this);
|
||||
Log.i(TAG, "Start location");
|
||||
// } else {
|
||||
// Log.i(TAG, "Start location failed (provider not enabled)");
|
||||
// }
|
||||
} catch (SecurityException ex) {
|
||||
Log.e(TAG, "Location permission is not activated.", ex);
|
||||
}
|
||||
}
|
||||
|
||||
public void stop() {
|
||||
this.locationManager.removeUpdates(this);
|
||||
Log.i(TAG, "Stop location");
|
||||
}
|
||||
|
||||
public float getOrientation(int deviceOrientation) {
|
||||
float ret = -1;
|
||||
if (currentLocation != null && currentLocation.getSpeed() >= 0.01) {
|
||||
|
|
@ -86,26 +104,7 @@ public class ServiceGps extends Observable implements IServiceGps, LocationListe
|
|||
return ret;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void start() {
|
||||
try {
|
||||
// if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
|
||||
this.locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, this);
|
||||
Log.i(TAG, "Start location");
|
||||
// } else {
|
||||
// Log.i(TAG, "Start location failed (provider not enabled)");
|
||||
// }
|
||||
} catch (SecurityException ex) {
|
||||
Log.e(TAG, "Location permission is not activated.", ex);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stop() {
|
||||
this.locationManager.removeUpdates(this);
|
||||
Log.i(TAG, "Stop location");
|
||||
}
|
||||
|
||||
//<editor-fold defaultstate="collapsed" desc="Vibration management">
|
||||
private final Vibrator vibrator;
|
||||
private boolean vibrationNearObjectEnabled = false;
|
||||
private boolean nearObjectVibration = false;
|
||||
|
|
@ -123,9 +122,18 @@ public class ServiceGps extends Observable implements IServiceGps, LocationListe
|
|||
return this.vibrationNearObjectEnabled;
|
||||
}
|
||||
|
||||
public void addPoint(MyLocation location) {
|
||||
traces.addCurrentPoint(location);
|
||||
private void vibrate(int timeVibrationMs) {
|
||||
if (this.vibrator != null) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
this.vibrator.vibrate(VibrationEffect.createOneShot(timeVibrationMs, VibrationEffect.DEFAULT_AMPLITUDE));
|
||||
} else {
|
||||
this.vibrator.vibrate(timeVibrationMs);
|
||||
}
|
||||
}
|
||||
}
|
||||
//</editor-fold>
|
||||
|
||||
//<editor-fold defaultstate="collapsed" desc="GPS Callback">
|
||||
@Override
|
||||
public void onLocationChanged(Location location) {
|
||||
Log.i(TAG, "onLocationChanged");
|
||||
|
|
@ -145,16 +153,6 @@ public class ServiceGps extends Observable implements IServiceGps, LocationListe
|
|||
}
|
||||
}
|
||||
|
||||
private void vibrate(int timeVibrationMs) {
|
||||
if (this.vibrator != null) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
this.vibrator.vibrate(VibrationEffect.createOneShot(timeVibrationMs, VibrationEffect.DEFAULT_AMPLITUDE));
|
||||
} else {
|
||||
this.vibrator.vibrate(timeVibrationMs);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStatusChanged(String s, int i, Bundle bundle) {
|
||||
Log.i(TAG, "onStatusChanged("+s+", "+i+", null)");
|
||||
|
|
@ -183,7 +181,10 @@ public class ServiceGps extends Observable implements IServiceGps, LocationListe
|
|||
stop();
|
||||
}
|
||||
}
|
||||
//</editor-fold>
|
||||
|
||||
//<editor-fold defaultstate="collapsed" desc="Trace management">
|
||||
//<editor-fold defaultstate="collapsed" desc="Trace activation">
|
||||
public void toggleTraceurActivation() {
|
||||
traces.toggleTraceurActivation();
|
||||
if (!isTraceurActivated()) {
|
||||
|
|
@ -203,7 +204,8 @@ public class ServiceGps extends Observable implements IServiceGps, LocationListe
|
|||
public boolean isDogActivated() {
|
||||
return traces.isDogActivated();
|
||||
}
|
||||
|
||||
//</editor-fold>
|
||||
//<editor-fold defaultstate="collapsed" desc="Objects">
|
||||
public WayPointLocation addPointObjectTrail() {
|
||||
return addPointObjectTrail(currentLocation);
|
||||
}
|
||||
|
|
@ -227,33 +229,14 @@ public class ServiceGps extends Observable implements IServiceGps, LocationListe
|
|||
return wpl;
|
||||
}
|
||||
|
||||
public MyLocationArray getListGeoPointTraceur() {
|
||||
return traces.getListPointTraceur();
|
||||
}
|
||||
public MyLocationArray getListGeoPointDog() {
|
||||
return traces.getListPointDog();
|
||||
}
|
||||
public MyLocationArray getListGeoPointObjectsTrail() {
|
||||
return traces.getListPointObjectsTrail();
|
||||
}
|
||||
public MyLocationArray getListGeoPointObjectsDog() {
|
||||
return traces.getListPointObjectsDog();
|
||||
}
|
||||
public WayPointLocation getPointTrail(double lat, double lon) {
|
||||
return traces.getPointObjectTrail(lat, lon);
|
||||
}
|
||||
public WayPointLocation getPointDog(double lat, double lon) {
|
||||
return traces.getPointObjectDog(lat, lon);
|
||||
}
|
||||
|
||||
public boolean isNearObjects() {
|
||||
return !foundNearObjects(20).isEmpty();
|
||||
}
|
||||
public List<WayPointLocation> foundNearObjects() {
|
||||
return foundNearObjects(10);
|
||||
}
|
||||
|
||||
public List<WayPointLocation> foundNearObjects(int distance) {
|
||||
private List<WayPointLocation> foundNearObjects(int distance) {
|
||||
List<WayPointLocation> ret = new ArrayList<>();
|
||||
MyLocation curLoc = currentLocation;
|
||||
for (MyLocation ml: getListGeoPointObjectsTrail()) {
|
||||
|
|
@ -263,8 +246,34 @@ public class ServiceGps extends Observable implements IServiceGps, LocationListe
|
|||
}
|
||||
return ret;
|
||||
}
|
||||
private boolean isNearObjects() {
|
||||
return !foundNearObjects(20).isEmpty();
|
||||
}
|
||||
public List<WayPointLocation> foundNearObjects() {
|
||||
return foundNearObjects(10);
|
||||
}
|
||||
//</editor-fold>
|
||||
//<editor-fold defaultstate="collapsed" desc="Traces">
|
||||
public void addPoint(MyLocation location) {
|
||||
traces.addCurrentPoint(location);
|
||||
}
|
||||
public MyLocationArray getListGeoPointTraceur() {
|
||||
return traces.getListPointTraceur();
|
||||
}
|
||||
public MyLocationArray getListGeoPointDog() {
|
||||
return traces.getListPointDog();
|
||||
}
|
||||
public WayPointLocation getPointTrail(double lat, double lon) {
|
||||
return traces.getPointObjectTrail(lat, lon);
|
||||
}
|
||||
public WayPointLocation getPointDog(double lat, double lon) {
|
||||
return traces.getPointObjectDog(lat, lon);
|
||||
}
|
||||
//</editor-fold>
|
||||
//</editor-fold>
|
||||
|
||||
public String getFileName(String prefix) {
|
||||
//<editor-fold defaultstate="collapsed" desc="Export file management">
|
||||
private String getFileName(String prefix) {
|
||||
SimpleDateFormat formater = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss");
|
||||
String date = formater.format(new Date());
|
||||
return Environment.getExternalStorageDirectory().getAbsolutePath() + "/"
|
||||
|
|
@ -272,7 +281,7 @@ public class ServiceGps extends Observable implements IServiceGps, LocationListe
|
|||
+ ".gpx";
|
||||
}
|
||||
|
||||
public boolean exportDogTraceToGpx() {
|
||||
private boolean exportDogTraceToGpx() {
|
||||
File file = new File(getFileName(Gpx.DOG_TRACE_NAME));
|
||||
ExportGpx exportGpx = new ExportGpx(file, Gpx.DOG_TRACE_NAME);
|
||||
exportGpx.setObjects(traces.getListPointObjectsDog());
|
||||
|
|
@ -280,7 +289,7 @@ public class ServiceGps extends Observable implements IServiceGps, LocationListe
|
|||
return exportGpx.export();
|
||||
}
|
||||
|
||||
public boolean exportTrailTraceToGpx() {
|
||||
private boolean exportTrailTraceToGpx() {
|
||||
File file = new File(getFileName(Gpx.TRAIL_TRACE_NAME));
|
||||
ExportGpx exportGpx = new ExportGpx(file, Gpx.TRAIL_TRACE_NAME);
|
||||
exportGpx.setObjects(traces.getListPointObjectsTrail());
|
||||
|
|
@ -323,4 +332,5 @@ public class ServiceGps extends Observable implements IServiceGps, LocationListe
|
|||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
//</editor-fold>
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue