This commit is contained in:
Chumva 2019-11-05 16:38:49 +02:00
parent 934d0e8ab9
commit 816882d086
7 changed files with 35 additions and 48 deletions

View file

@ -38,7 +38,6 @@ import net.osmand.plus.inapp.InAppPurchaseHelper;
import net.osmand.plus.liveupdates.LiveUpdatesHelper; import net.osmand.plus.liveupdates.LiveUpdatesHelper;
import net.osmand.plus.mapmarkers.MapMarkersDbHelper; import net.osmand.plus.mapmarkers.MapMarkersDbHelper;
import net.osmand.plus.monitoring.LiveMonitoringHelper; import net.osmand.plus.monitoring.LiveMonitoringHelper;
import net.osmand.plus.monitoring.OsmandMonitoringPlugin;
import net.osmand.plus.poi.PoiFiltersHelper; import net.osmand.plus.poi.PoiFiltersHelper;
import net.osmand.plus.render.MapRenderRepositories; import net.osmand.plus.render.MapRenderRepositories;
import net.osmand.plus.render.NativeOsmandLibrary; import net.osmand.plus.render.NativeOsmandLibrary;
@ -766,7 +765,7 @@ public class AppInitializer implements IProgress {
app.savingTrackHelper.loadGpxFromDatabase(); app.savingTrackHelper.loadGpxFromDatabase();
} }
} }
if(app.getSettings().SAVE_GLOBAL_TRACK_TO_GPX.get() && OsmandPlugin.getEnabledPlugin(OsmandMonitoringPlugin.class) != null){ if (app.savingTrackHelper.getIsRecording()) {
int interval = app.getSettings().SAVE_GLOBAL_TRACK_INTERVAL.get(); int interval = app.getSettings().SAVE_GLOBAL_TRACK_INTERVAL.get();
app.startNavigationService(NavigationService.USED_BY_GPX, app.navigationServiceGpsInterval(interval)); app.startNavigationService(NavigationService.USED_BY_GPX, app.navigationServiceGpsInterval(interval));
} }

View file

@ -182,8 +182,8 @@ public abstract class OsmandPlugin {
LOG.error("Plugin initialization failed " + plugin.getId(), e); LOG.error("Plugin initialization failed " + plugin.getId(), e);
} }
} else if (plugin.isActive()) { } else if (plugin.isActive()) {
plugin.disable(app);
plugin.setActive(false); plugin.setActive(false);
plugin.disable(app);
} }
} }
} }

View file

@ -1499,6 +1499,7 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
} }
}); });
getMapView().refreshMap(true); getMapView().refreshMap(true);
getMyApplication().getNotificationHelper().refreshNotifications();
} }
public void updateMapSettings() { public void updateMapSettings() {

View file

@ -5,22 +5,20 @@ import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteOpenHelper;
import android.text.format.DateFormat; import android.text.format.DateFormat;
import net.osmand.PlatformUtil;
import net.osmand.data.LatLon;
import net.osmand.plus.GPXDatabase.GpxDataItem;
import net.osmand.GPXUtilities; import net.osmand.GPXUtilities;
import net.osmand.GPXUtilities.GPXFile; import net.osmand.GPXUtilities.GPXFile;
import net.osmand.GPXUtilities.GPXTrackAnalysis; import net.osmand.GPXUtilities.GPXTrackAnalysis;
import net.osmand.GPXUtilities.Track; import net.osmand.GPXUtilities.Track;
import net.osmand.GPXUtilities.TrkSegment; import net.osmand.GPXUtilities.TrkSegment;
import net.osmand.GPXUtilities.WptPt; import net.osmand.GPXUtilities.WptPt;
import net.osmand.PlatformUtil;
import net.osmand.data.LatLon;
import net.osmand.plus.GPXDatabase.GpxDataItem;
import net.osmand.plus.GpxSelectionHelper.SelectedGpxFile; import net.osmand.plus.GpxSelectionHelper.SelectedGpxFile;
import net.osmand.plus.OsmAndLocationProvider; import net.osmand.plus.OsmAndLocationProvider;
import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.OsmandSettings; import net.osmand.plus.OsmandSettings;
import net.osmand.plus.Version; import net.osmand.plus.Version;
import net.osmand.plus.monitoring.OsmandMonitoringPlugin;
import net.osmand.plus.notifications.OsmandNotification.NotificationType; import net.osmand.plus.notifications.OsmandNotification.NotificationType;
import net.osmand.util.MapUtils; import net.osmand.util.MapUtils;
@ -409,9 +407,7 @@ public class SavingTrackHelper extends SQLiteOpenHelper {
long locationTime = System.currentTimeMillis(); long locationTime = System.currentTimeMillis();
OsmandSettings settings = ctx.getSettings(); OsmandSettings settings = ctx.getSettings();
boolean record = false; boolean record = false;
if(location != null && if (location != null && OsmAndLocationProvider.isNotSimulatedLocation(location)) {
OsmAndLocationProvider.isNotSimulatedLocation(location) ) {
if (OsmandPlugin.getEnabledPlugin(OsmandMonitoringPlugin.class) != null) {
if (settings.SAVE_TRACK_TO_GPX.get() if (settings.SAVE_TRACK_TO_GPX.get()
&& locationTime - lastTimeUpdated > settings.SAVE_TRACK_INTERVAL.get() && locationTime - lastTimeUpdated > settings.SAVE_TRACK_INTERVAL.get()
&& ctx.getRoutingHelper().isFollowingMode()) { && ctx.getRoutingHelper().isFollowingMode()) {
@ -421,20 +417,19 @@ public class SavingTrackHelper extends SQLiteOpenHelper {
record = true; record = true;
} }
float minDistance = settings.SAVE_TRACK_MIN_DISTANCE.get(); float minDistance = settings.SAVE_TRACK_MIN_DISTANCE.get();
if(minDistance > 0 && lastPoint != null && MapUtils.getDistance(lastPoint, location.getLatitude(), location.getLongitude()) < if (minDistance > 0 && lastPoint != null && MapUtils.getDistance(lastPoint, location.getLatitude(), location.getLongitude()) <
minDistance) { minDistance) {
record = false; record = false;
} }
float precision = settings.SAVE_TRACK_PRECISION.get(); float precision = settings.SAVE_TRACK_PRECISION.get();
if(precision > 0 && (!location.hasAccuracy() || location.getAccuracy() > precision)) { if (precision > 0 && (!location.hasAccuracy() || location.getAccuracy() > precision)) {
record = false; record = false;
} }
float minSpeed = settings.SAVE_TRACK_MIN_SPEED.get(); float minSpeed = settings.SAVE_TRACK_MIN_SPEED.get();
if(minSpeed > 0 && (!location.hasSpeed() || location.getSpeed() < minSpeed)) { if (minSpeed > 0 && (!location.hasSpeed() || location.getSpeed() < minSpeed)) {
record = false; record = false;
} }
} }
}
if (record) { if (record) {
insertData(location.getLatitude(), location.getLongitude(), location.getAltitude(), location.getSpeed(), insertData(location.getLatitude(), location.getLongitude(), location.getAltitude(), location.getSpeed(),
location.getAccuracy(), locationTime, settings); location.getAccuracy(), locationTime, settings);
@ -654,13 +649,8 @@ public class SavingTrackHelper extends SQLiteOpenHelper {
} }
public boolean getIsRecording() { public boolean getIsRecording() {
if (OsmandPlugin.getEnabledPlugin(OsmandMonitoringPlugin.class) != null) { return ctx.getSettings().SAVE_GLOBAL_TRACK_TO_GPX.get() ||
if (ctx.getSettings().SAVE_GLOBAL_TRACK_TO_GPX.get() || (ctx.getSettings().SAVE_TRACK_TO_GPX.get() && ctx.getRoutingHelper().isFollowingMode());
(ctx.getSettings().SAVE_TRACK_TO_GPX.get() && ctx.getRoutingHelper().isFollowingMode())) {
return true;
}
}
return false;
} }
public float getDistance() { public float getDistance() {

View file

@ -7,7 +7,6 @@ import net.osmand.PlatformUtil;
import net.osmand.data.LatLon; import net.osmand.data.LatLon;
import net.osmand.plus.OsmAndLocationProvider; import net.osmand.plus.OsmAndLocationProvider;
import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.OsmandSettings; import net.osmand.plus.OsmandSettings;
import net.osmand.util.MapUtils; import net.osmand.util.MapUtils;
@ -47,9 +46,7 @@ public class LiveMonitoringHelper {
public void updateLocation(net.osmand.Location location) { public void updateLocation(net.osmand.Location location) {
boolean record = false; boolean record = false;
long locationTime = System.currentTimeMillis(); long locationTime = System.currentTimeMillis();
if (location != null && isLiveMonitoringEnabled() if (location != null && isLiveMonitoringEnabled() && OsmAndLocationProvider.isNotSimulatedLocation(location)) {
&& OsmAndLocationProvider.isNotSimulatedLocation(location)
&& OsmandPlugin.getEnabledPlugin(OsmandMonitoringPlugin.class) != null) {
if (locationTime - lastTimeUpdated > settings.LIVE_MONITORING_INTERVAL.get()) { if (locationTime - lastTimeUpdated > settings.LIVE_MONITORING_INTERVAL.get()) {
record = true; record = true;
} }

View file

@ -62,7 +62,7 @@ public class ErrorNotification extends OsmandNotification {
boolean planning = routingHelper.isRoutePlanningMode(); boolean planning = routingHelper.isRoutePlanningMode();
boolean pause = routingHelper.isPauseNavigation(); boolean pause = routingHelper.isPauseNavigation();
boolean gpxEnabled = OsmandPlugin.getEnabledPlugin(OsmandMonitoringPlugin.class) != null; boolean gpxEnabled = app.getSavingTrackHelper().getIsRecording() || OsmandPlugin.getEnabledPlugin(OsmandMonitoringPlugin.class) != null;
String usedBy = service != null ? "" + service.getUsedBy() : "X"; String usedBy = service != null ? "" + service.getUsedBy() : "X";
notificationText = "Info: " + (following ? "1" : "") + (planning ? "2" : "") + (pause ? "3" : "") + (gpxEnabled ? "4" : "") + "-" + usedBy + ". " notificationText = "Info: " + (following ? "1" : "") + (planning ? "2" : "") + (pause ? "3" : "") + (gpxEnabled ? "4" : "") + "-" + usedBy + ". "

View file

@ -40,7 +40,7 @@ public class GpxNotification extends OsmandNotification {
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
final OsmandMonitoringPlugin plugin = OsmandPlugin.getEnabledPlugin(OsmandMonitoringPlugin.class); final OsmandMonitoringPlugin plugin = OsmandPlugin.getPlugin(OsmandMonitoringPlugin.class);
if (plugin != null) { if (plugin != null) {
plugin.saveCurrentTrack(); plugin.saveCurrentTrack();
if (!app.getSettings().SAVE_GLOBAL_TRACK_TO_GPX.get()) { if (!app.getSettings().SAVE_GLOBAL_TRACK_TO_GPX.get()) {
@ -54,7 +54,7 @@ public class GpxNotification extends OsmandNotification {
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
final OsmandMonitoringPlugin plugin = OsmandPlugin.getEnabledPlugin(OsmandMonitoringPlugin.class); final OsmandMonitoringPlugin plugin = OsmandPlugin.getPlugin(OsmandMonitoringPlugin.class);
if (plugin != null) { if (plugin != null) {
plugin.startGPXMonitoring(null); plugin.startGPXMonitoring(null);
plugin.updateControl(); plugin.updateControl();
@ -66,7 +66,7 @@ public class GpxNotification extends OsmandNotification {
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
final OsmandMonitoringPlugin plugin = OsmandPlugin.getEnabledPlugin(OsmandMonitoringPlugin.class); final OsmandMonitoringPlugin plugin = OsmandPlugin.getPlugin(OsmandMonitoringPlugin.class);
if (plugin != null) { if (plugin != null) {
plugin.stopRecording(); plugin.stopRecording();
plugin.updateControl(); plugin.updateControl();
@ -95,7 +95,7 @@ public class GpxNotification extends OsmandNotification {
@Override @Override
public boolean isEnabled() { public boolean isEnabled() {
return OsmandPlugin.getEnabledPlugin(OsmandMonitoringPlugin.class) != null; return app.getSavingTrackHelper().getIsRecording() || OsmandPlugin.getEnabledPlugin(OsmandMonitoringPlugin.class) != null;
} }
@Override @Override