Skip to content

Commit 82ef779

Browse files
Graziano CapelliGraziano Capelli
Graziano Capelli
authored and
Graziano Capelli
committed
Update to v2.0.3
1 parent b5ddb6f commit 82ef779

16 files changed

+205
-101
lines changed

apk/GPSLogger-2.0.3.apk

1.72 MB
Binary file not shown.

apk/GPSLogger-latest.apk

1.12 KB
Binary file not shown.

app/app.iml

-8
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,6 @@
8484
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
8585
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
8686
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
87-
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/builds" />
8887
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
8988
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dependency-cache" />
9089
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/animated-vector-drawable/23.4.0/jars" />
@@ -97,18 +96,11 @@
9796
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-v4/23.4.0/jars" />
9897
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-vector-drawable/23.4.0/jars" />
9998
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
100-
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-classes" />
101-
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-runtime-classes" />
10299
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-safeguard" />
103-
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-verifier" />
104-
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant-run-resources" />
105-
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant-run-support" />
106100
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" />
107101
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
108102
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/pre-dexed" />
109-
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/reload-dex" />
110103
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
111-
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/restart-dex" />
112104
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
113105
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/shaders" />
114106
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />

app/build.gradle

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ android {
88
applicationId "eu.basicairdata.graziano.gpslogger"
99
minSdkVersion 8
1010
targetSdkVersion 23
11-
versionCode 9
12-
versionName '2.0.2'
11+
versionCode 10
12+
versionName '2.0.3'
1313
}
1414
buildTypes {
1515
release {

app/src/main/AndroidManifest.xml

+2
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@
3636
android:icon="@mipmap/gps_logger"
3737
android:label="@string/app_name"
3838
android:supportsRtl="true"
39+
android:alwaysRetainTaskState="true"
40+
android:launchMode="singleTask"
3941
android:theme="@style/MyMaterialTheme">
4042
<activity android:name=".GPSActivity">
4143
<intent-filter>

app/src/main/java/eu/basicairdata/graziano/gpslogger/DatabaseHandler.java

+67-8
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,71 @@ public void onCreate(SQLiteDatabase db) {
203203
+ KEY_LOCATION_TYPE + " INTEGER," // 11
204204
+ KEY_LOCATION_NAME + " TEXT" + ")"; // 12
205205
db.execSQL(CREATE_PLACEMARKS_TABLE);
206+
207+
// -------------------------------------- Insert the first empty track
208+
/*
209+
Track track = new Track();
210+
211+
ContentValues trkvalues = new ContentValues();
212+
trkvalues.put(KEY_TRACK_NAME, track.getName());
213+
trkvalues.put(KEY_TRACK_FROM, "");
214+
trkvalues.put(KEY_TRACK_TO, "");
215+
216+
trkvalues.put(KEY_TRACK_START_LATITUDE, track.getStart_Latitude());
217+
trkvalues.put(KEY_TRACK_START_LONGITUDE, track.getStart_Longitude());
218+
trkvalues.put(KEY_TRACK_START_ALTITUDE, track.getStart_Altitude());
219+
trkvalues.put(KEY_TRACK_START_ACCURACY, track.getStart_Accuracy());
220+
trkvalues.put(KEY_TRACK_START_SPEED, track.getStart_Speed());
221+
trkvalues.put(KEY_TRACK_START_TIME, track.getStart_Time());
222+
223+
trkvalues.put(KEY_TRACK_LASTFIX_TIME, track.getLastFix_Time());
224+
225+
trkvalues.put(KEY_TRACK_END_LATITUDE, track.getEnd_Latitude());
226+
trkvalues.put(KEY_TRACK_END_LONGITUDE, track.getEnd_Longitude());
227+
trkvalues.put(KEY_TRACK_END_ALTITUDE, track.getEnd_Altitude());
228+
trkvalues.put(KEY_TRACK_END_ACCURACY, track.getEnd_Accuracy());
229+
trkvalues.put(KEY_TRACK_END_SPEED, track.getEnd_Speed());
230+
trkvalues.put(KEY_TRACK_END_TIME, track.getEnd_Time());
231+
232+
trkvalues.put(KEY_TRACK_LASTSTEPDST_LATITUDE, track.getLastStepDistance_Latitude());
233+
trkvalues.put(KEY_TRACK_LASTSTEPDST_LONGITUDE, track.getLastStepDistance_Longitude());
234+
trkvalues.put(KEY_TRACK_LASTSTEPDST_ACCURACY, track.getLastStepDistance_Accuracy());
235+
236+
trkvalues.put(KEY_TRACK_LASTSTEPALT_ALTITUDE, track.getLastStepAltitude_Altitude());
237+
trkvalues.put(KEY_TRACK_LASTSTEPALT_ACCURACY, track.getLastStepAltitude_Accuracy());
238+
239+
trkvalues.put(KEY_TRACK_MIN_LATITUDE, track.getMin_Latitude());
240+
trkvalues.put(KEY_TRACK_MIN_LONGITUDE, track.getMin_Longitude());
241+
242+
trkvalues.put(KEY_TRACK_MAX_LATITUDE, track.getMax_Latitude());
243+
trkvalues.put(KEY_TRACK_MAX_LONGITUDE, track.getMax_Longitude());
244+
245+
trkvalues.put(KEY_TRACK_DURATION, track.getDuration());
246+
trkvalues.put(KEY_TRACK_DURATION_MOVING, track.getDuration_Moving());
247+
248+
trkvalues.put(KEY_TRACK_DISTANCE, track.getDistance());
249+
trkvalues.put(KEY_TRACK_DISTANCE_INPROGRESS, track.getDistanceInProgress());
250+
trkvalues.put(KEY_TRACK_DISTANCE_LASTALTITUDE, track.getDistanceLastAltitude());
251+
252+
trkvalues.put(KEY_TRACK_ALTITUDE_UP, track.getAltitude_Up());
253+
trkvalues.put(KEY_TRACK_ALTITUDE_DOWN, track.getAltitude_Down());
254+
trkvalues.put(KEY_TRACK_ALTITUDE_INPROGRESS, track.getAltitude_InProgress());
255+
256+
trkvalues.put(KEY_TRACK_SPEED_MAX, track.getSpeedMax());
257+
trkvalues.put(KEY_TRACK_SPEED_AVERAGE, track.getSpeedAverage());
258+
trkvalues.put(KEY_TRACK_SPEED_AVERAGEMOVING, track.getSpeedAverageMoving());
259+
260+
trkvalues.put(KEY_TRACK_NUMBEROFLOCATIONS, track.getNumberOfLocations());
261+
trkvalues.put(KEY_TRACK_NUMBEROFPLACEMARKS, track.getNumberOfPlacemarks());
262+
trkvalues.put(KEY_TRACK_TYPE, track.getType());
263+
264+
trkvalues.put(KEY_TRACK_VALIDMAP, track.getValidMap());
265+
266+
db.insert(TABLE_TRACKS, null, trkvalues);
267+
*/
268+
269+
//Track track = new Track();
270+
//addTrack(track);
206271
}
207272

208273
// Upgrading database
@@ -221,12 +286,6 @@ public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
221286
onCreate(db);
222287
}
223288

224-
// Ensure DB creation!
225-
public boolean CreateDBifNeeded() {
226-
SQLiteDatabase db = this.getWritableDatabase();
227-
return (db != null);
228-
}
229-
230289
// ----------------------------------------------------------------------- LOCATIONS AND PLACEMARKS
231290

232291
// Add new Location and update the corresponding track
@@ -801,7 +860,6 @@ public Track getTrack(long TrackID) {
801860
// Get last TrackID
802861
public long getLastTrackID() {
803862
SQLiteDatabase db = this.getWritableDatabase();
804-
Track trk = null;
805863
long result = 0;
806864

807865
String query = "SELECT " + KEY_ID + " FROM " + TABLE_TRACKS + " ORDER BY " + KEY_ID + " DESC LIMIT 1";
@@ -912,6 +970,7 @@ public List<Track> getTracksList(long startNumber, long endNumber) {
912970

913971

914972
// Getting the list of all Tracks in the DB
973+
/* NOT USED, COMMENTED OUT !!
915974
public List<Track> getTracksList() {
916975
917976
List<Track> trackList = new ArrayList<Track>();
@@ -988,5 +1047,5 @@ public List<Track> getTracksList() {
9881047
cursor.close();
9891048
}
9901049
return trackList;
991-
}
1050+
} */
9921051
}

app/src/main/java/eu/basicairdata/graziano/gpslogger/Exporter.java

+34-24
Original file line numberDiff line numberDiff line change
@@ -164,15 +164,15 @@ public void run() {
164164
KMLbw.write(" <IconStyle>" + newLine);
165165
KMLbw.write(" <Icon> <href>http://maps.google.com/mapfiles/kml/shapes/placemark_circle_highlight.png</href> </Icon>" + newLine);
166166
KMLbw.write(" </IconStyle>" + newLine);
167-
KMLbw.write(" </Style>" + newLine);
167+
KMLbw.write(" </Style>" + newLine + newLine);
168168
}
169169

170170
if (ExportGPX) {
171171
// Writing head of GPX file
172172

173173
GPXbw.write("<?xml version=\"1.0\"?>" + newLine);
174174
GPXbw.write("<!-- Created with BasicAirData GPS Logger for Android - ver. " + versionName + " -->" + newLine);
175-
GPXbw.write("<gpx creator=\"BasicAirData GPS Logger\" version=\"" + versionName + "\" xmlns=\"http://www.topografix.com/GPX/1/0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd\">" + newLine);
175+
GPXbw.write("<gpx creator=\"BasicAirData GPS Logger\" version=\"" + versionName + "\" xmlns=\"http://www.topografix.com/GPX/1/0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd\">" + newLine + newLine);
176176
}
177177

178178

@@ -208,7 +208,7 @@ public void run() {
208208

209209
List<LocationExtended> locationList = new ArrayList<LocationExtended>();
210210

211-
for (int i = 0; i < track.getNumberOfLocations(); i += GroupOfLocations) {
211+
for (int i = 0; i <= track.getNumberOfLocations(); i += GroupOfLocations) {
212212
//Log.w("myApp", "[#] Exporter.java - " + (i + GroupOfLocations));
213213
if (!locationList.isEmpty()) locationList.clear();
214214
//Log.w("myApp", "[#] Exporter.java - DB query + list.addall(...)");
@@ -231,21 +231,26 @@ public void run() {
231231
}
232232
// GPX
233233
if (ExportGPX) {
234-
GPXbw.write(" <trkpt lat=\"" + formattedLatitude + "\" lon=\"" + formattedLongitude + "\">" + newLine);
234+
GPXbw.write(" <trkpt lat=\"" + formattedLatitude + "\" lon=\"" + formattedLongitude + "\">");
235235
if (loc.getLocation().hasAltitude()) {
236-
GPXbw.write(" <ele>"); // Elevation
236+
GPXbw.write("<ele>"); // Elevation
237237
GPXbw.write(formattedAltitude);
238-
GPXbw.write("</ele>" + newLine);
238+
GPXbw.write("</ele>");
239239
}
240240
if (loc.getLocation().hasSpeed()) {
241-
GPXbw.write(" <speed>"); // Speed
241+
GPXbw.write("<speed>"); // Speed
242242
GPXbw.write(String.format(Locale.US, "%.3f", loc.getLocation().getSpeed()));
243-
GPXbw.write("</speed>" + newLine);
243+
GPXbw.write("</speed>");
244244
}
245-
GPXbw.write(" <time>"); // Time
245+
GPXbw.write("<time>"); // Time
246246
GPXbw.write(dfdt.format(loc.getLocation().getTime()));
247-
GPXbw.write("</time>" + newLine);
248-
GPXbw.write(" </trkpt>" + newLine);
247+
GPXbw.write("</time>");
248+
//if (loc.getNumberOfSatellites() > 0) {
249+
// GPXbw.write("<sat>");
250+
// GPXbw.write(String.valueOf(loc.getNumberOfSatellites()));
251+
// GPXbw.write("</sat>");
252+
//}
253+
GPXbw.write("</trkpt>" + newLine);
249254
}
250255
}
251256
}
@@ -276,7 +281,7 @@ public void run() {
276281

277282
List<LocationExtended> placemarkList = new ArrayList<LocationExtended>();
278283

279-
for (int i = 0; i < track.getNumberOfPlacemarks(); i += GroupOfLocations) {
284+
for (int i = 0; i <= track.getNumberOfPlacemarks(); i += GroupOfLocations) {
280285
//Log.w("myApp", "[#] Exporter.java - " + (i + GroupOfLocations));
281286
if (!placemarkList.isEmpty()) placemarkList.clear();
282287
placemarkList.addAll(GPSApplication.getInstance().GPSDataBase.getPlacemarksList(track.getId(), i, i + GroupOfLocations - 1));
@@ -286,7 +291,7 @@ public void run() {
286291

287292
// KML
288293
if (ExportKML) {
289-
KMLbw.write(newLine + " <Placemark>" + newLine);
294+
KMLbw.write(" <Placemark>" + newLine);
290295
KMLbw.write(" <name>");
291296
KMLbw.write(loc.getDescription()
292297
.replace("<","&lt;")
@@ -311,36 +316,41 @@ public void run() {
311316
KMLbw.write("</coordinates>" + newLine);
312317
KMLbw.write(" <extrude>1</extrude>" + newLine);
313318
KMLbw.write(" </Point>" + newLine);
314-
KMLbw.write(" </Placemark>" + newLine);
319+
KMLbw.write(" </Placemark>" + newLine + newLine);
315320
}
316321

317322

318323
// GPX
319324
if (ExportGPX) {
320-
GPXbw.write(newLine + "<wpt lat=\"");
325+
GPXbw.write("<wpt lat=\"");
321326
GPXbw.write(String.format(Locale.US, "%.8f", loc.getLocation().getLatitude()) + "\" lon=\"" +
322-
String.format(Locale.US, "%.8f", loc.getLocation().getLongitude()) + "\">" + newLine);
327+
String.format(Locale.US, "%.8f", loc.getLocation().getLongitude()) + "\">");
323328

324329
if (loc.getLocation().hasAltitude()) {
325-
GPXbw.write(" <ele>"); // Elevation
330+
GPXbw.write("<ele>"); // Elevation
326331
GPXbw.write(String.format(Locale.US, "%.3f", loc.getLocation().getAltitude() + AltitudeManualCorrection - (((loc.getAltitudeEGM96Correction() == NOT_AVAILABLE) || (!EGMAltitudeCorrection)) ? 0 : loc.getAltitudeEGM96Correction())));
327-
GPXbw.write("</ele>" + newLine);
332+
GPXbw.write("</ele>");
328333
}
329334

330-
GPXbw.write(" <time>"); // Time
335+
GPXbw.write("<time>"); // Time
331336
GPXbw.write(dfdt.format(loc.getLocation().getTime()));
332-
GPXbw.write("</time>" + newLine);
337+
GPXbw.write("</time>");
338+
333339

334-
GPXbw.write(" <name>"); // Name
340+
//if (loc.getNumberOfSatellites() > 0) {
341+
// GPXbw.write("<sat>");
342+
// GPXbw.write(String.valueOf(loc.getNumberOfSatellites()));
343+
// GPXbw.write("</sat>");
344+
///
345+
346+
GPXbw.write("<name>"); // Name
335347
GPXbw.write(loc.getDescription()
336348
.replace("<","&lt;")
337349
.replace("&","&amp;")
338350
.replace(">","&gt;")
339351
.replace("\"","&quot;")
340352
.replace("'","&apos;"));
341-
GPXbw.write("</name>" + newLine);
342-
343-
GPXbw.write("</wpt>" + newLine);
353+
GPXbw.write("</name></wpt>" + newLine + newLine);
344354
}
345355
}
346356
}

app/src/main/java/eu/basicairdata/graziano/gpslogger/FragmentRecordingControls.java

+10-12
Original file line numberDiff line numberDiff line change
@@ -90,22 +90,20 @@ public void onPause() {
9090

9191
public void ontoggleRecordGeoPoint(View view) {
9292
if (isAdded()) {
93-
final GPSApplication GlobalVariables = (GPSApplication) getActivity().getApplicationContext();
94-
final Boolean grs = GlobalVariables.getRecording();
93+
GPSApplication gpsApplication = GPSApplication.getInstance();
94+
final Boolean grs = gpsApplication.getRecording();
9595
boolean newRecordingState = !grs;
96-
97-
GlobalVariables.setRecording(newRecordingState);
96+
gpsApplication.setRecording(newRecordingState);
9897
tableLayoutGeoPoints.setBackgroundColor(newRecordingState ? getResources().getColor(R.color.colorPrimary) : getResources().getColor(R.color.colorTrackBackground));
9998
}
10099
}
101100

102101
public void onPlacemarkRequest(View view) {
103102
if (isAdded()) {
104-
final GPSApplication GlobalVariables = (GPSApplication) getActivity().getApplicationContext();
105-
final Boolean pr = GlobalVariables.getPlacemarkRequest();
103+
GPSApplication gpsApplication = GPSApplication.getInstance();
104+
final Boolean pr = gpsApplication.getPlacemarkRequest();
106105
boolean newPlacemarkRequestState = !pr;
107-
108-
GlobalVariables.setPlacemarkRequest(newPlacemarkRequestState);
106+
gpsApplication.setPlacemarkRequest(newPlacemarkRequestState);
109107
tableLayoutPlacemarks.setBackgroundColor(newPlacemarkRequestState ? getResources().getColor(R.color.colorPrimary) : getResources().getColor(R.color.colorTrackBackground));
110108
}
111109
}
@@ -124,10 +122,10 @@ public void run() {
124122

125123
public void Update() {
126124
if (isAdded()) {
127-
final GPSApplication GlobalVariables = (GPSApplication) getActivity().getApplicationContext();
128-
final Track track = GlobalVariables.getCurrentTrack();
129-
final Boolean grs = GlobalVariables.getRecording();
130-
final Boolean pr = GlobalVariables.getPlacemarkRequest();
125+
GPSApplication gpsApplication = GPSApplication.getInstance();
126+
final Track track = gpsApplication.getCurrentTrack();
127+
final Boolean grs = gpsApplication.getRecording();
128+
final Boolean pr = gpsApplication.getPlacemarkRequest();
131129
if (track != null) {
132130
if (TVGeoPoints != null)
133131
TVGeoPoints.setText(String.valueOf(track.getNumberOfLocations()));

app/src/main/java/eu/basicairdata/graziano/gpslogger/FragmentSettings.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, Strin
135135
/* new AlertDialog.Builder(this) // Confirmation dialog for file download
136136
.setIcon(android.R.drawable.ic_dialog_alert)
137137
.setTitle("Question")
138-
.setMessage("Download 2MBz EGM96 coefficients (2 MB)?")
138+
.setMessage("Download EGM96 coefficients (file size 2 MB)?")
139139
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
140140
@Override
141141
public void onClick(DialogInterface dialog, int which) {

0 commit comments

Comments
 (0)