From 51def0d497c3cf05d6a1098fb8d5922e0fd720fb Mon Sep 17 00:00:00 2001
From: Daniele Gobbetti <daniele+github@gobbetti.name>
Date: Mon, 4 Apr 2016 23:33:17 +0200
Subject: [PATCH] Add light intensity to the known steps datalog message. Add
 support for record version 6 introduced with firmware 3.11. There are more
 data in each record now, but we still do not know what they mean. Close #270

---
 .../devices/pebble/DatalogSessionHealthSteps.java        | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/DatalogSessionHealthSteps.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/DatalogSessionHealthSteps.java
index 81bb43192..f89f03639 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/DatalogSessionHealthSteps.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/DatalogSessionHealthSteps.java
@@ -46,7 +46,7 @@ public class DatalogSessionHealthSteps extends DatalogSession {
 
             recordVersion = datalogMessage.getShort();
 
-            if (recordVersion != 5)
+            if ((recordVersion != 5) && (recordVersion != 6))
                 return false; //we don't know how to deal with the data TODO: this is not ideal because we will get the same message again and again since we NACK it
 
             timestamp = datalogMessage.getInt();
@@ -59,8 +59,7 @@ public class DatalogSessionHealthSteps extends DatalogSession {
 
             for (int recordIdx = 0; recordIdx < recordNum; recordIdx++) {
                 datalogMessage.position(beginOfRecordPosition + recordIdx * recordLength); //we may not consume all the bytes of a record
-                stepsRecords[recordIdx] = new StepsRecord(timestamp, datalogMessage.get() & 0xff, datalogMessage.get() & 0xff, datalogMessage.getShort() & 0xffff);
-                datalogMessage.getShort(); // skip
+                stepsRecords[recordIdx] = new StepsRecord(timestamp, datalogMessage.get() & 0xff, datalogMessage.get() & 0xff, datalogMessage.getShort() & 0xffff, datalogMessage.get() & 0xff);
                 timestamp += 60;
             }
 
@@ -102,12 +101,14 @@ public class DatalogSessionHealthSteps extends DatalogSession {
         int steps;
         int orientation;
         int intensity;
+        int light_intensity;
 
-        public StepsRecord(int timestamp, int steps, int orientation, int intensity) {
+        public StepsRecord(int timestamp, int steps, int orientation, int intensity, int light_intensity) {
             this.timestamp = timestamp;
             this.steps = steps;
             this.orientation = orientation;
             this.intensity = intensity;
+            this.light_intensity = light_intensity;
         }
     }