Fix creating group when selecting gpx
This commit is contained in:
parent
f4023816c6
commit
7ce58add2d
4 changed files with 42 additions and 19 deletions
|
@ -519,7 +519,6 @@ public class AppInitializer implements IProgress {
|
||||||
indexRegionsBoundaries(warnings);
|
indexRegionsBoundaries(warnings);
|
||||||
notifyEvent(InitEvents.INDEX_REGION_BOUNDARIES);
|
notifyEvent(InitEvents.INDEX_REGION_BOUNDARIES);
|
||||||
app.selectedGpxHelper.loadGPXTracks(this);
|
app.selectedGpxHelper.loadGPXTracks(this);
|
||||||
app.mapMarkersHelper.loadMapMarkersFromSelectedGpx();
|
|
||||||
notifyEvent(InitEvents.LOAD_GPX_TRACKS);
|
notifyEvent(InitEvents.LOAD_GPX_TRACKS);
|
||||||
saveGPXTracks();
|
saveGPXTracks();
|
||||||
notifyEvent(InitEvents.SAVE_GPX_TRACKS);
|
notifyEvent(InitEvents.SAVE_GPX_TRACKS);
|
||||||
|
|
|
@ -482,7 +482,7 @@ public class GpxSelectionHelper {
|
||||||
selectedGPXFiles.remove(sf);
|
selectedGPXFiles.remove(sf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
syncGpx(gpx);
|
syncGpx(gpx, true);
|
||||||
return sf;
|
return sf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -514,10 +514,25 @@ public class GpxSelectionHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void syncGpx(GPXFile gpxFile) {
|
private void syncGpx(GPXFile gpxFile) {
|
||||||
|
syncGpx(gpxFile, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void syncGpx(GPXFile gpxFile, boolean createOrDeleteGroup) {
|
||||||
File gpx = new File(gpxFile.path);
|
File gpx = new File(gpxFile.path);
|
||||||
if (gpx.exists()) {
|
if (gpx.exists()) {
|
||||||
app.getMapMarkersHelper().syncGroup(new MarkersSyncGroup(gpx.getAbsolutePath(),
|
MapMarkersHelper mapMarkersHelper = app.getMapMarkersHelper();
|
||||||
AndroidUtils.trimExtension(gpx.getName()), MarkersSyncGroup.GPX_TYPE));
|
MarkersSyncGroup syncGroup = new MarkersSyncGroup(gpx.getAbsolutePath(), AndroidUtils.trimExtension(gpx.getName()), MarkersSyncGroup.GPX_TYPE);
|
||||||
|
boolean enabled = true;
|
||||||
|
if (createOrDeleteGroup) {
|
||||||
|
boolean show = getSelectedFileByPath(gpx.getAbsolutePath()) != null;
|
||||||
|
enabled = mapMarkersHelper.isGroupSynced(gpx.getAbsolutePath());
|
||||||
|
if (show && !enabled) {
|
||||||
|
mapMarkersHelper.addMarkersSyncGroup(syncGroup);
|
||||||
|
} else if (!show && mapMarkersHelper.isGroupDisabled(gpx.getAbsolutePath())) {
|
||||||
|
mapMarkersHelper.removeMarkersSyncGroup(gpx.getAbsolutePath(), true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mapMarkersHelper.syncGroup(syncGroup, enabled);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -390,6 +390,10 @@ public class MapMarkersHelper {
|
||||||
return markersDbHelper.getGroup(id) != null;
|
return markersDbHelper.getGroup(id) != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isGroupDisabled(String id) {
|
||||||
|
return markersDbHelper.isGroupDisabled(id);
|
||||||
|
}
|
||||||
|
|
||||||
public void syncAllGroups() {
|
public void syncAllGroups() {
|
||||||
List<MarkersSyncGroup> groups = markersDbHelper.getAllGroups();
|
List<MarkersSyncGroup> groups = markersDbHelper.getAllGroups();
|
||||||
for (MarkersSyncGroup gr : groups) {
|
for (MarkersSyncGroup gr : groups) {
|
||||||
|
@ -721,7 +725,7 @@ public class MapMarkersHelper {
|
||||||
if (removeActiveMarkers) {
|
if (removeActiveMarkers) {
|
||||||
removeActiveMarkersFromSyncGroup(id);
|
removeActiveMarkersFromSyncGroup(id);
|
||||||
}
|
}
|
||||||
MapMarkersGroup group = getMapMarkerGroupByName(id);
|
MapMarkersGroup group = getMapMarkerGroupByKey(id);
|
||||||
if (group != null) {
|
if (group != null) {
|
||||||
mapMarkersGroups.remove(group);
|
mapMarkersGroups.remove(group);
|
||||||
}
|
}
|
||||||
|
@ -1164,19 +1168,6 @@ public class MapMarkersHelper {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void loadMapMarkersFromSelectedGpx() {
|
|
||||||
List<SelectedGpxFile> selectedGpxFiles = ctx.getSelectedGpxHelper().getSelectedGPXFiles();
|
|
||||||
for (SelectedGpxFile selectedGpxFile : selectedGpxFiles) {
|
|
||||||
GPXFile gpx = selectedGpxFile.getGpxFile();
|
|
||||||
if (gpx.getPoints().size() > 0) {
|
|
||||||
File gpxFile = new File(gpx.path);
|
|
||||||
final MarkersSyncGroup syncGroup = new MarkersSyncGroup(gpxFile.getAbsolutePath(), AndroidUtils.trimExtension(gpxFile.getName()), MarkersSyncGroup.GPX_TYPE);
|
|
||||||
addMarkersSyncGroup(syncGroup);
|
|
||||||
syncGroup(syncGroup, false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void sortGroups() {
|
private void sortGroups() {
|
||||||
if (mapMarkersGroups.size() > 0) {
|
if (mapMarkersGroups.size() > 0) {
|
||||||
MapMarkersGroup noGroup = null;
|
MapMarkersGroup noGroup = null;
|
||||||
|
|
|
@ -87,7 +87,8 @@ public class MapMarkersDbHelper {
|
||||||
private static final String GROUPS_TABLE_SELECT = "SELECT " +
|
private static final String GROUPS_TABLE_SELECT = "SELECT " +
|
||||||
GROUPS_COL_ID + ", " +
|
GROUPS_COL_ID + ", " +
|
||||||
GROUPS_COL_NAME + ", " +
|
GROUPS_COL_NAME + ", " +
|
||||||
GROUPS_COL_TYPE +
|
GROUPS_COL_TYPE + ", " +
|
||||||
|
GROUPS_COL_DISABLED +
|
||||||
" FROM " + GROUPS_TABLE_NAME;
|
" FROM " + GROUPS_TABLE_NAME;
|
||||||
|
|
||||||
public static final String TAIL_NEXT_VALUE = "tail_next";
|
public static final String TAIL_NEXT_VALUE = "tail_next";
|
||||||
|
@ -275,6 +276,23 @@ public class MapMarkersDbHelper {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isGroupDisabled(String id) {
|
||||||
|
boolean disabled = false;
|
||||||
|
SQLiteConnection db = openConnection(true);
|
||||||
|
if (db != null) {
|
||||||
|
try {
|
||||||
|
SQLiteCursor query = db.rawQuery(GROUPS_TABLE_SELECT + " WHERE " + GROUPS_COL_ID + " = ?", new String[]{id});
|
||||||
|
if (query.moveToFirst()) {
|
||||||
|
disabled = query.getInt(3) == 1;
|
||||||
|
}
|
||||||
|
query.close();
|
||||||
|
} finally {
|
||||||
|
db.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return disabled;
|
||||||
|
}
|
||||||
|
|
||||||
public void removeDisabledGroups() {
|
public void removeDisabledGroups() {
|
||||||
SQLiteConnection db = openConnection(false);
|
SQLiteConnection db = openConnection(false);
|
||||||
if (db != null) {
|
if (db != null) {
|
||||||
|
|
Loading…
Reference in a new issue