From c0fd2dfde2626e2adf4263a84ad67e1554626998 Mon Sep 17 00:00:00 2001
From: Johannes Mockenhaupt <git@jotomo.de>
Date: Tue, 27 Jun 2017 16:10:25 +0200
Subject: [PATCH] Extract method acquireUsbDevice.

---
 .../service/MedtronicCnlIntentService.java    | 53 ++++++++++---------
 1 file changed, 29 insertions(+), 24 deletions(-)

diff --git a/app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlIntentService.java b/app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlIntentService.java
index e897ef8..778c781 100644
--- a/app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlIntentService.java
+++ b/app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlIntentService.java
@@ -128,30 +128,7 @@ public class MedtronicCnlIntentService extends IntentService {
                 pollInterval = configurationStore.getLowBatteryPollInterval();
             }
 
-            if (!hasUsbHostFeature()) {
-                sendStatus("It appears that this device doesn't support USB OTG.");
-                Log.e(TAG, "Device does not support USB OTG");
-                // TODO - throw, don't return
-                return;
-            }
-
-            UsbDevice cnlStick = UsbHidDriver.getUsbDevice(mUsbManager, USB_VID, USB_PID);
-            if (cnlStick == null) {
-                sendStatus("USB connection error. Is the Contour Next Link plugged in?");
-                Log.w(TAG, "USB connection error. Is the CNL plugged in?");
-
-                // TODO - set status if offline or Nightscout not reachable
-                uploadToNightscout();
-                // TODO - throw, don't return
-                return;
-            }
-
-            if (!mUsbManager.hasPermission(UsbHidDriver.getUsbDevice(mUsbManager, USB_VID, USB_PID))) {
-                sendMessage(Constants.ACTION_NO_USB_PERMISSION);
-                // TODO - throw, don't return
-                return;
-            }
-            mHidDevice = UsbHidDriver.acquire(mUsbManager, cnlStick);
+            if (!acquireUsbDevice()) return;
 
             try {
                 mHidDevice.open();
@@ -366,6 +343,34 @@ public class MedtronicCnlIntentService extends IntentService {
         }
     }
 
+    private boolean acquireUsbDevice() {
+        if (!hasUsbHostFeature()) {
+            sendStatus("It appears that this device doesn't support USB OTG.");
+            Log.e(TAG, "Device does not support USB OTG");
+            // TODO - throw, don't return
+            return false;
+        }
+
+        UsbDevice cnlStick = UsbHidDriver.getUsbDevice(mUsbManager, USB_VID, USB_PID);
+        if (cnlStick == null) {
+            sendStatus("USB connection error. Is the Contour Next Link plugged in?");
+            Log.w(TAG, "USB connection error. Is the CNL plugged in?");
+
+            // TODO - set status if offline or Nightscout not reachable
+            uploadToNightscout();
+            // TODO - throw, don't return
+            return false;
+        }
+
+        if (!mUsbManager.hasPermission(UsbHidDriver.getUsbDevice(mUsbManager, USB_VID, USB_PID))) {
+            sendMessage(Constants.ACTION_NO_USB_PERMISSION);
+            // TODO - throw, don't return
+            return false;
+        }
+        mHidDevice = UsbHidDriver.acquire(mUsbManager, cnlStick);
+        return true;
+    }
+
     // reliable wake alarm manager wake up for all android versions
     public static void wakeUpIntent(Context context, long wakeTime, PendingIntent pendingIntent) {
         final AlarmManager alarm = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
-- 
GitLab