diff --git a/app/build.gradle b/app/build.gradle index 61dda2c..6368865 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -35,8 +35,8 @@ android { applicationId "de.tadris.fitness" minSdkVersion 21 targetSdkVersion 28 - versionCode 110 - versionName "1.1.0" + versionCode 111 + versionName "1.1.1" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { @@ -75,7 +75,7 @@ dependencies { implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.9.8' // Android Room - def room_version = "2.2.0-alpha02" + def room_version = "2.2.0-beta01" annotationProcessor "androidx.room:room-compiler:$room_version" implementation "androidx.room:room-runtime:$room_version" diff --git a/app/src/main/java/de/tadris/fitness/data/WorkoutManager.java b/app/src/main/java/de/tadris/fitness/data/WorkoutManager.java index 8aea9c6..ee559c2 100644 --- a/app/src/main/java/de/tadris/fitness/data/WorkoutManager.java +++ b/app/src/main/java/de/tadris/fitness/data/WorkoutManager.java @@ -95,7 +95,18 @@ public class WorkoutManager { SensorManager.getAltitude(SensorManager.PRESSURE_STANDARD_ATMOSPHERE, (float) avgPressure); sample.elevation= avgElevation + altitude_difference; } // Else: use already set GPS elevation in WorkoutSample.elevation + } + int range= 3; + for(i= 0; i < samples.size(); i++){ + int min= Math.max(i-range, 0); + int max= Math.min(i+range, samples.size()-1); + samples.get(i).tmpElevation= getAverageElevation(samples.subList(min, max)); + } + + for(i= 0; i < samples.size(); i++) { + WorkoutSample sample = samples.get(i); + sample.elevation= sample.tmpElevation; if(i >= 1){ WorkoutSample lastSample= samples.get(i-1); double diff= sample.elevation - lastSample.elevation; @@ -107,12 +118,19 @@ public class WorkoutManager { } } - // Saving workout and samples db.workoutDao().insertWorkoutAndSamples(workout, samples.toArray(new WorkoutSample[0])); } + public static double getAverageElevation(List samples){ + double sum= 0; + for(WorkoutSample sample : samples){ + sum+= sample.elevation; + } + return sum / samples.size(); + } + public static void roundSpeedValues(List samples){ for(int i= 0; i < samples.size(); i++){ WorkoutSample sample= samples.get(i); diff --git a/app/src/main/java/de/tadris/fitness/data/WorkoutSample.java b/app/src/main/java/de/tadris/fitness/data/WorkoutSample.java index 00ea796..a48c866 100644 --- a/app/src/main/java/de/tadris/fitness/data/WorkoutSample.java +++ b/app/src/main/java/de/tadris/fitness/data/WorkoutSample.java @@ -72,6 +72,10 @@ public class WorkoutSample{ @Ignore public double tmpRoundedSpeed; + @JsonIgnore + @Ignore + public double tmpElevation; + @JsonIgnore @Ignore public float tmpPressure; diff --git a/metadata/en-US/changelogs/111.txt b/metadata/en-US/changelogs/111.txt new file mode 100644 index 0000000..6703324 --- /dev/null +++ b/metadata/en-US/changelogs/111.txt @@ -0,0 +1,13 @@ +**1.1.1:** +- more accuracy in height data + +**1.1:** + +New: +- Height measurement via GPS and pressure sensor +- Show height diagram +- Show dialog if GPS is disabled + +Fix: +- Back-Button in Settings crashes on earlier Android versions (#20) +- Fix Unit system "Imperial with meters" \ No newline at end of file