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

Adjust remaining time string handling after rework

Deniz Cengiz 1 месяц назад
Родитель
Сommit
fec67f699e

+ 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)
             }
         }
 

+ 6 - 7
Trio/Sources/Modules/Home/View/Header/PumpView.swift

@@ -1,4 +1,5 @@
 import CoreData
+import MedtrumKit
 import SwiftUI
 
 struct PumpView: View {
@@ -100,26 +101,24 @@ struct PumpView: View {
                 }
 
                 if let date = expiresAtDate {
-                    PatchTimer(date, isExpiration: true)
+                    PatchTimer(date, expiryMode: ExpiryMode.default)
                 }
 
                 if let date = activatedAtDate {
-                    PatchTimer(date, isExpiration: false)
+                    PatchTimer(date, expiryMode: ExpiryMode.extended)
                 }
             }
         }
     }
 
-    @ViewBuilder private func PatchTimer(_ date: Date, isExpiration: Bool) -> some View {
+    @ViewBuilder private func PatchTimer(_ date: Date, expiryMode: ExpiryMode) -> 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 +134,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 || expiryMode == ExpiryMode.extended ? 12 : 0)
     }
 
     private func remainingTimeString(time: TimeInterval) -> String {