From 699a38ecb3038dbe834a110b9dd686c8dbad2870 Mon Sep 17 00:00:00 2001
From: Volker Richert <v.richert@addmore.de>
Date: Mon, 6 Mar 2017 10:01:02 +0100
Subject: [PATCH] updates

---
 app/build.gradle                                   |  2 +-
 .../pump/ReadHistoryBaseRequestMessage.java        | 14 ++++++++------
 build.gradle                                       |  2 +-
 gradle/wrapper/gradle-wrapper.properties           |  4 ++--
 4 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/app/build.gradle b/app/build.gradle
index 027d93d..b48e315 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -55,7 +55,7 @@ def getBugfenderApiKey() {
 
 android {
     compileSdkVersion 23
-    buildToolsVersion "23.0.3"
+    buildToolsVersion '25.0.0'
     // FIXME - replace with URLConnection. This is used in ManageCNLActivity.
     useLibrary 'org.apache.http.legacy'
 
diff --git a/app/src/main/java/info/nightscout/android/medtronic/message/pump/ReadHistoryBaseRequestMessage.java b/app/src/main/java/info/nightscout/android/medtronic/message/pump/ReadHistoryBaseRequestMessage.java
index 4a81c27..39e3168 100644
--- a/app/src/main/java/info/nightscout/android/medtronic/message/pump/ReadHistoryBaseRequestMessage.java
+++ b/app/src/main/java/info/nightscout/android/medtronic/message/pump/ReadHistoryBaseRequestMessage.java
@@ -165,9 +165,6 @@ public abstract class ReadHistoryBaseRequestMessage<T extends AbstractResponseMe
         Log.d(TAG, "*** GOT A MULTIPACKET SEGMENT "+ packetNumber + ", count:" + this.segmentCount());
         Log.d(TAG, "*** PAYLOAD:" + HexDump.dumpHexString(segmentPayload));
 
-        // multiByteSegments don't always come back in a consecutive order.
-        this.segments[packetNumber] = segmentPayload;
-
         if (packetNumber == this.lastPacketNumber() &&
                 segmentPayload.length != this.lastPacketSize) {
             throw new InvalidMessageException("Multipacket Transfer last packet size mismatch");
@@ -183,9 +180,16 @@ public abstract class ReadHistoryBaseRequestMessage<T extends AbstractResponseMe
                 throw new InvalidMessageException("Total segment size mismatch");
             }
 
+            ByteBuffer buffer = ByteBuffer.allocate(segmentPayload.length);
+            buffer.order(ByteOrder.BIG_ENDIAN);
+            buffer.put(segmentPayload);
+
+            // multiByteSegments don't always come back in a consecutive order.
+            this.segments[packetNumber] = buffer.array();
+
             // TODO - all of this should go into different classes...
             // Decompress the message
-            if (segmentPayload.readUInt16BE(0x00) === 0x030E) {
+            if ((buffer.getInt(0x00) & 0xffffffffl) == 0x030E) {
                 const HEADER_SIZE = 12; // TODO should be a static get.
                 // It's an UnmergedHistoryUpdateCompressed response. We need to decompress it
                 const dataType = segmentPayload[0x02]; // Returns a HISTORY_DATA_TYPE
@@ -244,8 +248,6 @@ public abstract class ReadHistoryBaseRequestMessage<T extends AbstractResponseMe
                     AckMultipacketCommand.SEGMENT_COMMAND.SEND_NEXT_SEGMENT)
                     .send(hidDevice)
                     .then(() => resolve());
-        } else {
-            resolve();
         }
     }
 
diff --git a/build.gradle b/build.gradle
index fa34379..887ff56 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,7 +5,7 @@ buildscript {
         jcenter()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.2.3'
+        classpath 'com.android.tools.build:gradle:2.3.0'
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files
         classpath 'io.realm:realm-gradle-plugin:2.2.2'
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 3d5435e..9644428 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Sat Nov 12 11:44:13 AEDT 2016
+#Fri Mar 03 15:37:47 CET 2017
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
-- 
GitLab