Просмотр исходного кода

Correctly show future temp target

Ivan Valkou 5 лет назад
Родитель
Сommit
f6d10ddc39
1 измененных файлов с 10 добавлено и 3 удалено
  1. 10 3
      FreeAPS/Sources/APS/Storage/TempTargetsStorage.swift

+ 10 - 3
FreeAPS/Sources/APS/Storage/TempTargetsStorage.swift

@@ -58,13 +58,20 @@ final class BaseTempTargetsStorage: TempTargetsStorage, Injectable {
     }
 
     func current() -> TempTarget? {
-        guard let last = recent().last else {
+        guard let currentTarget = recent()
+            .last(where: {
+                $0.createdAt.addingTimeInterval(Int($0.duration).minutes.timeInterval) > Date()
+                    && $0.createdAt <= Date()
+            })
+        else {
             return nil
         }
-        guard last.createdAt.addingTimeInterval(Int(last.duration).minutes.timeInterval) > Date() else {
+
+        if let cancel = recent().last(where: { $0.createdAt <= Date() }), cancel.duration == 0 {
             return nil
         }
-        return last
+
+        return currentTarget
     }
 
     func nightscoutTretmentsNotUploaded() -> [NigtscoutTreatment] {