From 47c63b277702c7d1c42df94f368363e75c796492 Mon Sep 17 00:00:00 2001
From: Volker Richert <v.richert@addmore.de>
Date: Mon, 27 Feb 2017 17:30:00 +0100
Subject: [PATCH] Merge branch 'develop' into feature/history

# Conflicts:
#	app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlIntentService.java
---
 .../nightscout/android/medtronic/MainActivity.java   |  2 --
 .../message/AbstractBinaryRequestMessage.java        |  2 +-
 .../medtronic/message/AbstractRequestMessage.java    |  2 +-
 .../medtronic/message/MedtronicRequestMessage.java   |  2 +-
 .../pump/MedtronicSendMessageRequestMessage.java     |  2 +-
 .../message/pump/ReadHistoryBaseRequestMessage.java  | 12 ++++++++++++
 6 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/app/src/main/java/info/nightscout/android/medtronic/MainActivity.java b/app/src/main/java/info/nightscout/android/medtronic/MainActivity.java
index 6599935..6a493ac 100644
--- a/app/src/main/java/info/nightscout/android/medtronic/MainActivity.java
+++ b/app/src/main/java/info/nightscout/android/medtronic/MainActivity.java
@@ -738,8 +738,6 @@ public class MainActivity extends AppCompatActivity implements OnSharedPreferenc
             PumpInfo pump = getActivePump();
 
             if (pump != null && pump.isValid()) {
-                Log.d(TAG, "history display refresh size: " + pump.getPumpHistory().size());
-                Log.d(TAG, "history display refresh date: " + pump.getPumpHistory().last().getEventDate());
                 pumpStatusData = pump.getPumpHistory().last();
             }
 
diff --git a/app/src/main/java/info/nightscout/android/medtronic/message/AbstractBinaryRequestMessage.java b/app/src/main/java/info/nightscout/android/medtronic/message/AbstractBinaryRequestMessage.java
index dbb4f3f..ac99190 100644
--- a/app/src/main/java/info/nightscout/android/medtronic/message/AbstractBinaryRequestMessage.java
+++ b/app/src/main/java/info/nightscout/android/medtronic/message/AbstractBinaryRequestMessage.java
@@ -12,7 +12,7 @@ import info.nightscout.android.medtronic.exception.ChecksumException;
 /**
  * Created by lgoedhart on 26/03/2016.
  */
-public abstract class AbstractBinaryRequestMessage<T extends AbstractResponseMessage> extends AbstractRequestMessage<T> {
+public abstract class AbstractBinaryRequestMessage<T> extends AbstractRequestMessage<T> {
     private final static int ENVELOPE_SIZE = 33;
 
     //protected ByteBuffer mBayerEnvelope;
diff --git a/app/src/main/java/info/nightscout/android/medtronic/message/AbstractRequestMessage.java b/app/src/main/java/info/nightscout/android/medtronic/message/AbstractRequestMessage.java
index 45e710d..72851b9 100644
--- a/app/src/main/java/info/nightscout/android/medtronic/message/AbstractRequestMessage.java
+++ b/app/src/main/java/info/nightscout/android/medtronic/message/AbstractRequestMessage.java
@@ -12,7 +12,7 @@ import info.nightscout.android.medtronic.exception.InvalidMessageException;
  * Created by volker on 12.12.2016.
  */
 
-public abstract class AbstractRequestMessage<T extends AbstractResponseMessage> extends AbstractBaseMessage {
+public abstract class AbstractRequestMessage<T> extends AbstractBaseMessage {
     private static final String TAG = AbstractRequestMessage.class.getSimpleName();
 
     protected AbstractRequestMessage(byte[] bytes) {
diff --git a/app/src/main/java/info/nightscout/android/medtronic/message/MedtronicRequestMessage.java b/app/src/main/java/info/nightscout/android/medtronic/message/MedtronicRequestMessage.java
index 1953149..fe899a5 100644
--- a/app/src/main/java/info/nightscout/android/medtronic/message/MedtronicRequestMessage.java
+++ b/app/src/main/java/info/nightscout/android/medtronic/message/MedtronicRequestMessage.java
@@ -16,7 +16,7 @@ import info.nightscout.android.medtronic.exception.EncryptionException;
 /**
  * Created by lgoedhart on 26/03/2016.
  */
-public abstract class MedtronicRequestMessage<T extends AbstractResponseMessage> extends AbstractBinaryRequestMessage<T> {
+public abstract class MedtronicRequestMessage<T> extends AbstractBinaryRequestMessage<T> {
     static int ENVELOPE_SIZE = 2;
     static int CRC_SIZE = 2;
 
diff --git a/app/src/main/java/info/nightscout/android/medtronic/message/pump/MedtronicSendMessageRequestMessage.java b/app/src/main/java/info/nightscout/android/medtronic/message/pump/MedtronicSendMessageRequestMessage.java
index b9e8ca1..26fde13 100644
--- a/app/src/main/java/info/nightscout/android/medtronic/message/pump/MedtronicSendMessageRequestMessage.java
+++ b/app/src/main/java/info/nightscout/android/medtronic/message/pump/MedtronicSendMessageRequestMessage.java
@@ -14,7 +14,7 @@ import info.nightscout.android.medtronic.message.MessageUtils;
  * Created by volker on 18.12.2016.
  */
 
-public abstract class MedtronicSendMessageRequestMessage<T>  extends MedtronicRequestMessage {
+public abstract class MedtronicSendMessageRequestMessage<T>  extends MedtronicRequestMessage<T> {
     static int ENVELOPE_SIZE = 11;
     static int ENCRYPTED_ENVELOPE_SIZE = 3;
     static int CRC_SIZE = 2;
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 1e7c1aa..4a81c27 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
@@ -5,6 +5,7 @@ import android.util.Log;
 import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.nio.ByteOrder;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.concurrent.TimeoutException;
 
@@ -126,6 +127,17 @@ public abstract class ReadHistoryBaseRequestMessage<T extends AbstractResponseMe
         return count;
     }
 
+    protected int[] missingSegmentKeys() {
+        ArrayList<Integer> keys = new ArrayList<>(this.segments.length);
+        int count = 0;
+        for ( byte[] segment: this.segments){
+            if (segment==null) {
+                keys.add(count);
+            };
+            count ++;
+        }
+        return keys.toArray();
+    }
     /*
     get missingSegmentKeys() {
         return this.segments.filter(value => value === undefined).keys();
-- 
GitLab