From 4f1e84bf02a3b27c9e6fc99b4ac868d3efbe4c23 Mon Sep 17 00:00:00 2001 From: jannis Date: Mon, 26 Aug 2019 18:13:17 +0200 Subject: [PATCH] round Elevation values --- .../tadris/fitness/data/WorkoutManager.java | 20 ++++++++++++++++++- .../de/tadris/fitness/data/WorkoutSample.java | 4 ++++ 2 files changed, 23 insertions(+), 1 deletion(-) 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;