From ee204f35ef0d9568874e4b38907a696c6d321bde Mon Sep 17 00:00:00 2001 From: Dominik R?ttsches Date: Thu, 25 Aug 2011 13:16:02 +0300 Subject: [PATCH] Addressing review comments for revision ca3651f10063. + limiting RunCadence to 254, same as it was done for cycling Cadence. --- .../apps/mytracks/io/file/TcxTrackWriter.java | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/file/TcxTrackWriter.java b/MyTracks/src/com/google/android/apps/mytracks/io/file/TcxTrackWriter.java index 8222def1b..49961fbae 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/file/TcxTrackWriter.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/file/TcxTrackWriter.java @@ -65,6 +65,9 @@ public class TcxTrackWriter implements TrackFormatWriter { private PrintWriter pw = null; private Track track; + // Determines whether to encode cadence value as running or cycling cadence. + private boolean sportIsCycling; + public TcxTrackWriter(Context context) { this.context = context; @@ -77,7 +80,7 @@ public class TcxTrackWriter implements TrackFormatWriter { public void prepare(Track track, OutputStream out) { this.track = track; this.pw = new PrintWriter(out); - + this.sportIsCycling = categoryToTcxSport(track.getCategory()).equals(TCX_SPORT_BIKING); } @Override @@ -176,41 +179,38 @@ public class TcxTrackWriter implements TrackFormatWriter { pw.println(""); } - boolean cadenceAsCyclingCadence = categoryToTcxSport(track.getCategory()).equals(TCX_SPORT_BIKING); - - boolean cadenceValueAvailable = sensorData.hasCadence() + boolean cadenceAvailable = sensorData.hasCadence() && sensorData.getCadence().getState() == Sensor.SensorState.SENDING && sensorData.getCadence().hasValue(); - // TCX Trackpoint_t contains a sequence, - // legacy XML element needs to be put before - // Only for the case that activity was marked as biking. - // Otherwise cadence we interpret it as running cadence data - // and put it into . - if (cadenceAsCyclingCadence && cadenceValueAvailable) { + // TCX Trackpoint_t contains a sequence. Thus, the legacy XML element + // needs to be put before . + // This field should only be used for the case that activity was marked as biking. + // Otherwise cadence is interpreted as running cadence data which + // is written in the as . + if (sportIsCycling && cadenceAvailable) { pw.print(" "); pw.print(Math.min(254, sensorData.getCadence().getValue())); pw.println(""); } - boolean powerValueAvailable = sensorData.hasPower() + boolean powerAvailable = sensorData.hasPower() && sensorData.getPower().getState() == Sensor.SensorState.SENDING && sensorData.getPower().hasValue(); - if(powerValueAvailable - || (!cadenceAsCyclingCadence && cadenceValueAvailable)) { + if(powerAvailable || (!sportIsCycling && cadenceAvailable)) { pw.print(" "); pw.print(""); // RunCadence needs to be put before power in order to be understood // by Garmin Training Center. - if (!cadenceAsCyclingCadence && cadenceValueAvailable) { + if (!sportIsCycling && cadenceAvailable) { pw.print(""); - pw.print(sensorData.getCadence().getValue()); + pw.print(Math.min(254, sensorData.getCadence().getValue())); pw.print(""); } - if (powerValueAvailable) { + if (powerAvailable) { pw.print(""); pw.print(sensorData.getPower().getValue()); pw.print("");