ソースを参照

Merge pull request #1024 from nightscout/feat/dev-medtrum-bump-24032026

Bump MedtrumKit
Deniz Cengiz 1 ヶ月 前
コミット
7dc2eb4adb

+ 1 - 1
MedtrumKit

@@ -1 +1 @@
-Subproject commit f21d80863d290c1cae9d33d1b40ac836e754f8a4
+Subproject commit a4e8533ee9a2ce1aa2ea80cf966189f614b44834

+ 20 - 18
Trio/Sources/APS/DeviceDataManager.swift

@@ -125,17 +125,18 @@ final class BaseDeviceDataManager: DeviceDataManager, Injectable {
                     }
                     pumpExpiresAtDate.send(endTime)
                 }
-                if let medtrum = pumpManager as? MedtrumPumpManager {
-                    if medtrum.state.expirationTimer == 1 {
-                        pumpActivatedAtDate.send(nil)
-                        guard let endTime = medtrum.state.patchExpiresAt else {
-                            pumpExpiresAtDate.send(nil)
-                            return
-                        }
-                        pumpExpiresAtDate.send(endTime)
-                    } else {
-                        pumpActivatedAtDate.send(medtrum.state.patchActivatedAt)
+                if let medtrumPump = pumpManager as? MedtrumPumpManager {
+                    guard let endTime = medtrumPump.state.patchExpiresAt else {
                         pumpExpiresAtDate.send(nil)
+                        return
+                    }
+                    pumpExpiresAtDate.send(endTime)
+
+                    switch medtrumPump.state.expiryMode {
+                    case .default:
+                        pumpActivatedAtDate.send(nil)
+                    case .extended:
+                        pumpActivatedAtDate.send(medtrumPump.state.patchActivatedAt)
                     }
                 }
                 if let simulatorPump = pumpManager as? MockPumpManager {
@@ -533,16 +534,17 @@ extension BaseDeviceDataManager: PumpManagerDelegate {
                 $0.pumpReservoirDidChange(Decimal(medtrumPump.state.reservoir))
             }
 
-            if medtrumPump.state.expirationTimer == 1 {
+            guard let endTime = medtrumPump.state.patchExpiresAt else {
+                pumpExpiresAtDate.send(nil)
+                return
+            }
+            pumpExpiresAtDate.send(endTime)
+
+            switch medtrumPump.state.expiryMode {
+            case .default:
                 pumpActivatedAtDate.send(nil)
-                guard let endTime = medtrumPump.state.patchExpiresAt else {
-                    pumpExpiresAtDate.send(nil)
-                    return
-                }
-                pumpExpiresAtDate.send(endTime)
-            } else {
+            case .extended:
                 pumpActivatedAtDate.send(medtrumPump.state.patchActivatedAt)
-                pumpExpiresAtDate.send(nil)
             }
         }
 

+ 4 - 10
Trio/Sources/Modules/Home/View/Header/PumpView.swift

@@ -100,26 +100,20 @@ struct PumpView: View {
                 }
 
                 if let date = expiresAtDate {
-                    PatchTimer(date, isExpiration: true)
-                }
-
-                if let date = activatedAtDate {
-                    PatchTimer(date, isExpiration: false)
+                    PatchTimer(forDate: date)
                 }
             }
         }
     }
 
-    @ViewBuilder private func PatchTimer(_ date: Date, isExpiration: Bool) -> some View {
+    @ViewBuilder private func PatchTimer(forDate date: Date) -> some View {
         HStack {
             Image(systemName: hourglassIcon)
                 .font(.callout)
                 .foregroundStyle(timerColor, timerColorSecondary)
                 .symbolRenderingMode(.palette)
 
-            let remainingTimeString = isExpiration ?
-                remainingTimeString(time: date.timeIntervalSince(timerDate)) :
-                activeTimeString(time: timerDate.timeIntervalSince(date))
+            let remainingTimeString = remainingTimeString(time: date.timeIntervalSince(timerDate))
 
             Text(remainingTimeString)
                 .font(date.timeIntervalSince(timerDate) > 0 ? .callout : .subheadline)
@@ -135,7 +129,7 @@ struct PumpView: View {
                 )
         }
         // aligns the stopwatch icon exactly with the first pixel of the reservoir icon
-        .padding(.leading, date.timeIntervalSince(timerDate) > 0 || !isExpiration ? 12 : 0)
+        .padding(.leading, date.timeIntervalSince(timerDate) > 0 || activatedAtDate != nil ? 12 : 0)
     }
 
     private func remainingTimeString(time: TimeInterval) -> String {