瀏覽代碼

Add Override Name to LA

polscm32 aka Marvout 1 年之前
父節點
當前提交
f73653a332

+ 2 - 2
FreeAPS/Sources/Services/LiveActivity/Data/DataManager.swift

@@ -59,7 +59,7 @@ extension LiveActivityBridge {
             key: "date",
             ascending: false,
             fetchLimit: 1,
-            propertiesToFetch: ["enabled"]
+            propertiesToFetch: ["enabled", "name"]
         )
 
         guard let overrideResults = results as? [[String: Any]] else {
@@ -68,7 +68,7 @@ extension LiveActivityBridge {
 
         await context.perform {
             self.isOverridesActive = overrideResults.first.map {
-                OverrideData(isActive: $0["enabled"] as? Bool ?? false)
+                OverrideData(isActive: $0["enabled"] as? Bool ?? false, overrideName: $0["name"] as? String ?? "Override")
             }
         }
     }

+ 1 - 0
FreeAPS/Sources/Services/LiveActivity/Data/OverrideData.swift

@@ -2,4 +2,5 @@ import Foundation
 
 struct OverrideData {
     let isActive: Bool
+    let overrideName: String
 }

+ 1 - 0
FreeAPS/Sources/Services/LiveActivity/LiveActitiyAttributes.swift

@@ -32,6 +32,7 @@ struct LiveActivityAttributes: ActivityAttributes {
         let iob: Decimal
         let unit: String
         let isOverrideActive: Bool
+        let overrideName: String
     }
 
     let startDate: Date

+ 2 - 1
FreeAPS/Sources/Services/LiveActivity/LiveActivityAttributes+Helper.swift

@@ -103,7 +103,8 @@ extension LiveActivityAttributes.ContentState {
                 cob: Decimal(determination?.cob ?? 0),
                 iob: determination?.iob ?? 0 as Decimal,
                 unit: settings.units.rawValue,
-                isOverrideActive: override?.isActive ?? false
+                isOverrideActive: override?.isActive ?? false,
+                overrideName: override?.overrideName ?? "Override"
             )
 
         case .simple:

+ 15 - 0
LiveActivity/LiveActivity.swift

@@ -348,6 +348,21 @@ struct LiveActivity: Widget {
                 chart(context: context, additionalState: detailedViewState)
                     .frame(maxWidth: UIScreen.main.bounds.width * 0.9)
                     .frame(height: 80)
+                    .overlay(alignment: .topTrailing) {
+                        if detailedViewState.isOverrideActive {
+                            HStack {
+                                Text("\(detailedViewState.overrideName)")
+                                    .font(.footnote)
+                                    .fontWeight(.bold)
+                                    .foregroundStyle(.primary)
+                            }
+                            .padding(6)
+                            .background {
+                                RoundedRectangle(cornerRadius: 10)
+                                    .fill(Color.purple.opacity(0.6))
+                            }
+                        }
+                    }
 
                 HStack {
                     ForEach(context.state.itemOrder, id: \.self) { item in