Ivan Valkou пре 4 година
родитељ
комит
294b61086c
1 измењених фајлова са 9 додато и 3 уклоњено
  1. 9 3
      FreeAPS/Sources/APS/DeviceDataManager.swift

+ 9 - 3
FreeAPS/Sources/APS/DeviceDataManager.swift

@@ -179,8 +179,10 @@ final class BaseDeviceDataManager: DeviceDataManager, Injectable {
                     case let .newData(glucose):
                         let directions: [BloodGlucose.Direction?] = [nil]
                             + glucose.windows(ofCount: 2).map { window -> BloodGlucose.Direction? in
-                                let firstValue = Int(window[0].quantity.doubleValue(for: .milligramsPerDeciliter))
-                                let secondValue = Int(window[1].quantity.doubleValue(for: .milligramsPerDeciliter))
+                                let pair = Array(window)
+                                guard pair.count == 2 else { return nil }
+                                let firstValue = Int(pair[0].quantity.doubleValue(for: .milligramsPerDeciliter))
+                                let secondValue = Int(pair[1].quantity.doubleValue(for: .milligramsPerDeciliter))
                                 return .init(trend: secondValue - firstValue)
                             }
 
@@ -199,7 +201,10 @@ final class BaseDeviceDataManager: DeviceDataManager, Injectable {
                                 type: "sgv"
                             )
                         }
-                        self.lastFetchGlucoseDate = Date()
+                        if let lastDate = results.last?.dateString {
+                            self.lastFetchGlucoseDate = lastDate
+                        }
+
                         promise(.success(results))
                     case let .error(error):
                         warning(.deviceManager, "Fetch minilink glucose failed", error: error)
@@ -210,6 +215,7 @@ final class BaseDeviceDataManager: DeviceDataManager, Injectable {
         }
         .timeout(60, scheduler: processQueue, options: nil, customError: nil)
         .replaceError(with: [])
+        .replaceEmpty(with: [])
         .eraseToAnyPublisher()
     }
 }