From 2eaf6c7fae8664e134c7727155bbc931ed4aee80 Mon Sep 17 00:00:00 2001
From: Volker Richert <v.richert@addmore.de>
Date: Fri, 16 Dec 2016 14:36:56 +0100
Subject: [PATCH] refactor fixes I

---
 .../android/medtronic/MedtronicCnlReader.java          |  2 +-
 .../message/CloseConnectionRequestMessage.java         |  4 ++--
 .../medtronic/message/ContourNextLinkMessage.java      |  7 -------
 .../message/DeviceInfoRequestCommandMessage.java       | 10 +++++-----
 .../message/DeviceInfoResponseCommandMessage.java      |  6 +++---
 .../medtronic/message/MedtronicResponseMessage.java    |  4 ++++
 6 files changed, 15 insertions(+), 18 deletions(-)

diff --git a/app/src/main/java/info/nightscout/android/medtronic/MedtronicCnlReader.java b/app/src/main/java/info/nightscout/android/medtronic/MedtronicCnlReader.java
index ca2629e..77d57c0 100644
--- a/app/src/main/java/info/nightscout/android/medtronic/MedtronicCnlReader.java
+++ b/app/src/main/java/info/nightscout/android/medtronic/MedtronicCnlReader.java
@@ -67,7 +67,7 @@ public class MedtronicCnlReader {
 
     public void requestDeviceInfo()
             throws IOException, TimeoutException, UnexpectedMessageException, ChecksumException, EncryptionException {
-        DeviceInfoResponseCommandMessage response = new DeviceInfoRequestCommandMessage(mPumpSession).send(mDevice);
+        DeviceInfoResponseCommandMessage response = new DeviceInfoRequestCommandMessage().send(mDevice);
 
         //TODO - extract more details form the device info.
         mStickSerial = response.getSerial();
diff --git a/app/src/main/java/info/nightscout/android/medtronic/message/CloseConnectionRequestMessage.java b/app/src/main/java/info/nightscout/android/medtronic/message/CloseConnectionRequestMessage.java
index a822ce7..6a4e5f5 100644
--- a/app/src/main/java/info/nightscout/android/medtronic/message/CloseConnectionRequestMessage.java
+++ b/app/src/main/java/info/nightscout/android/medtronic/message/CloseConnectionRequestMessage.java
@@ -15,10 +15,10 @@ public class CloseConnectionRequestMessage extends ContourNextLinkBinaryRequestM
         super(CommandType.CLOSE_CONNECTION, pumpSession, payload);
     }
 
-    public OpenConnectionResponseMessage send(UsbHidDriver mDevice) throws IOException, TimeoutException, EncryptionException, ChecksumException {
+    public CloseConnectionResponseMessage send(UsbHidDriver mDevice) throws IOException, TimeoutException, EncryptionException, ChecksumException {
         sendMessage(mDevice);
 
-        OpenConnectionResponseMessage response = new OpenConnectionResponseMessage(mPumpSession, readMessage(mDevice));
+        CloseConnectionResponseMessage response = new CloseConnectionResponseMessage(mPumpSession, readMessage(mDevice));
 
         // FIXME - We need to care what the response message is - wrong MAC and all that
         return response;
diff --git a/app/src/main/java/info/nightscout/android/medtronic/message/ContourNextLinkMessage.java b/app/src/main/java/info/nightscout/android/medtronic/message/ContourNextLinkMessage.java
index 1c8d92a..f548900 100644
--- a/app/src/main/java/info/nightscout/android/medtronic/message/ContourNextLinkMessage.java
+++ b/app/src/main/java/info/nightscout/android/medtronic/message/ContourNextLinkMessage.java
@@ -43,7 +43,6 @@ public class ContourNextLinkMessage {
         }
     }
 
-
     public enum CommandType {
         NO_TYPE(0x0),
         OPEN_CONNECTION(0x10),
@@ -79,12 +78,6 @@ public class ContourNextLinkMessage {
         return mPayload.array();
     }
 
-    // TODO refactor
-    public void send(ContourNextLinkMessageHandler handler) throws IOException {
-        handler.sendMessage(this);
-    }
-
-
     // FIXME - get rid of this - make a Builder instead
     protected void setPayload(byte[] payload) {
         if (payload != null) {
diff --git a/app/src/main/java/info/nightscout/android/medtronic/message/DeviceInfoRequestCommandMessage.java b/app/src/main/java/info/nightscout/android/medtronic/message/DeviceInfoRequestCommandMessage.java
index 3dc9eb0..df7dfa4 100644
--- a/app/src/main/java/info/nightscout/android/medtronic/message/DeviceInfoRequestCommandMessage.java
+++ b/app/src/main/java/info/nightscout/android/medtronic/message/DeviceInfoRequestCommandMessage.java
@@ -10,9 +10,9 @@ import info.nightscout.android.medtronic.MedtronicCnlSession;
  * Created by volker on 10.12.2016.
  */
 
-public class DeviceInfoRequestCommandMessage extends ContourNextLinkMessage {
-    public DeviceInfoRequestCommandMessage(MedtronicCnlSession pumpSession) {
-        super(pumpSession, "X".getBytes());
+public class DeviceInfoRequestCommandMessage extends ContourNextLinkRequestMessage {
+    public DeviceInfoRequestCommandMessage() {
+        super("X".getBytes());
     }
 
     public DeviceInfoResponseCommandMessage send(UsbHidDriver mDevice) throws IOException, TimeoutException, EncryptionException, ChecksumException, UnexpectedMessageException {
@@ -28,12 +28,12 @@ public class DeviceInfoRequestCommandMessage extends ContourNextLinkMessage {
             try {
                 if (ASCII.EOT.equals(response1[0])) {
                     // response 1 is the ASTM message
-                    response = new DeviceInfoResponseCommandMessage(mPumpSession, response1);
+                    response = new DeviceInfoResponseCommandMessage(response1);
                     // ugly....
                     response.checkControlMessage(response2, ASCII.ENQ);
                 } else {
                     // response 2 is the ASTM message
-                    response = new DeviceInfoResponseCommandMessage(mPumpSession, response1);
+                    response = new DeviceInfoResponseCommandMessage(response1);
                     // ugly, too....
                     response.checkControlMessage(response1, ASCII.ENQ);
                 }
diff --git a/app/src/main/java/info/nightscout/android/medtronic/message/DeviceInfoResponseCommandMessage.java b/app/src/main/java/info/nightscout/android/medtronic/message/DeviceInfoResponseCommandMessage.java
index fec7c00..03a2be4 100644
--- a/app/src/main/java/info/nightscout/android/medtronic/message/DeviceInfoResponseCommandMessage.java
+++ b/app/src/main/java/info/nightscout/android/medtronic/message/DeviceInfoResponseCommandMessage.java
@@ -10,13 +10,13 @@ import info.nightscout.android.medtronic.MedtronicCnlSession;
 /**
  * Created by lgoedhart on 10/05/2016.
  */
-public class DeviceInfoResponseCommandMessage extends MedtronicResponseMessage {
+public class DeviceInfoResponseCommandMessage extends ContourNextLinkResponseMessage {
     private String serial = "";
     private final Pattern pattern = Pattern.compile(".*?\\^(\\d{4}-\\d{7})\\^.*");
 
-    protected DeviceInfoResponseCommandMessage(MedtronicCnlSession pumpSession, byte[] payload)
+    protected DeviceInfoResponseCommandMessage(byte[] payload)
             throws ChecksumException, EncryptionException, TimeoutException, UnexpectedMessageException, IOException {
-        super(pumpSession, payload);
+        super(payload);
 
         extractStickSerial(new String(payload));
     }
diff --git a/app/src/main/java/info/nightscout/android/medtronic/message/MedtronicResponseMessage.java b/app/src/main/java/info/nightscout/android/medtronic/message/MedtronicResponseMessage.java
index dcc926c..780358d 100644
--- a/app/src/main/java/info/nightscout/android/medtronic/message/MedtronicResponseMessage.java
+++ b/app/src/main/java/info/nightscout/android/medtronic/message/MedtronicResponseMessage.java
@@ -16,9 +16,13 @@ public class MedtronicResponseMessage extends ContourNextLinkResponseMessage {
     static int ENCRYPTED_ENVELOPE_SIZE = 3;
     static int CRC_SIZE = 2;
 
+    protected MedtronicCnlSession mPumpSession;
+
     protected MedtronicResponseMessage(MedtronicCnlSession pumpSession, byte[] payload) throws EncryptionException, ChecksumException {
         super(payload);
 
+        mPumpSession = pumpSession;
+
         // TODO - Validate the message, inner CCITT, serial numbers, etc
         // If there's not 57 bytes, then we got back a bad message. Not sure how to process these yet.
         // Also, READ_INFO and REQUEST_LINK_KEY are not encrypted
-- 
GitLab