瀏覽代碼

Merge branch 'UI' into UI-superBolus

polscm32 2 年之前
父節點
當前提交
bf0f398dde

+ 5 - 1
FreeAPS/Sources/Modules/Home/View/Header/CurrentGlucoseView.swift

@@ -210,7 +210,11 @@ struct CircleShape: View {
 
         Circle()
             .stroke(gradient, lineWidth: 10)
-            .shadow(radius: 3)
+            .shadow(
+                color: colorScheme == .dark ? Color(red: 0.02745098039, green: 0.1098039216, blue: 0.1411764706) :
+                    Color.black.opacity(0.33),
+                radius: 3
+            )
             .background(Circle().fill(colorBackground))
             .frame(width: 110, height: 110)
     }

+ 28 - 0
FreeAPS/Sources/Modules/Home/View/Header/PumpView.swift

@@ -6,9 +6,12 @@ struct PumpView: View {
     @Binding var name: String
     @Binding var expiresAtDate: Date?
     @Binding var timerDate: Date
+    @Binding var boluses: [PumpHistoryEvent]
 
     @State var state: Home.StateModel
 
+    @State var totalBolus: Decimal = 0
+
     private var reservoirFormatter: NumberFormatter {
         let formatter = NumberFormatter()
         formatter.numberStyle = .decimal
@@ -80,6 +83,8 @@ struct PumpView: View {
                         .foregroundColor(batteryColor)
                     Text("\(Int(battery.percent ?? 100)) %").font(.callout)
                         .fontWeight(.bold)
+                    Text(calculateTINS())
+                        .font(.callout).fontWeight(.bold)
                 }
             }
 
@@ -97,6 +102,29 @@ struct PumpView: View {
             }
         }
     }
+    
+    //MARK: WORKS....BUT MAYBE TIMEZONE PROBLEMS COULD OCCUR
+    //DEFINETELY SOMETHING FOR OUR TIMEZONE EXPERT.....
+
+    func calculateTINS() -> String {
+        let date = Date()
+        let calendar = Calendar.current
+        let offset = state.scale
+        
+        var offsetComponents = DateComponents()
+        offsetComponents.hour = -offset.rawValue
+
+        let startTime = calendar.date(byAdding: offsetComponents, to: date)!
+        print("******************")
+        print("die voll krasse start time ist: \(startTime)")
+
+        let bolusesForCurrentDay = boluses.filter { $0.timestamp >= startTime && $0.type == .bolus }
+
+        let totalBolus = bolusesForCurrentDay.map { $0.amount ?? 0 }.reduce(0, +)
+        let roundedTotalBolus = Decimal(round(100 * Double(totalBolus)) / 100)
+
+        return "\(roundedTotalBolus) U"
+    }
 
     private func remainingTimeString(time: TimeInterval) -> String {
         guard time > 0 else {

+ 31 - 19
FreeAPS/Sources/Modules/Home/View/HomeRootView.swift

@@ -166,6 +166,7 @@ extension Home {
                 name: $state.pumpName,
                 expiresAtDate: $state.pumpExpiresAtDate,
                 timerDate: $state.timerDate,
+                boluses: $state.boluses,
                 state: state
             )
             .onTapGesture {
@@ -460,7 +461,11 @@ extension Home {
                             )
                             .cornerRadius(20)
                     }
-                    .shadow(radius: 3)
+                    .shadow(
+                        color: colorScheme == .dark ? Color(red: 0.02745098039, green: 0.1098039216, blue: 0.1411764706) : Color
+                            .black.opacity(0.33),
+                        radius: 3
+                    )
                 }
             }
             .padding()
@@ -539,14 +544,19 @@ extension Home {
         }
 
         @ViewBuilder private func bottomPanel(_: GeometryProxy) -> some View {
-            let colorRectangle: Color = colorScheme == .dark ? .black.opacity(0.8) : .white
+            let colorRectangle: Color = colorScheme == .dark ? Color.black.opacity(0.8) : Color.white
+            let colorIcon: Color = (colorScheme == .dark ? Color.white : Color.black).opacity(0.9)
 
             ZStack {
                 Rectangle()
                     .fill(colorRectangle)
                     .frame(height: UIScreen.main.bounds.height / 13)
                     .cornerRadius(15)
-                    .shadow(radius: 3)
+                    .shadow(
+                        color: colorScheme == .dark ? Color(red: 0.02745098039, green: 0.1098039216, blue: 0.1411764706) : Color
+                            .black.opacity(0.33),
+                        radius: 3
+                    )
                     .padding([.leading, .trailing], 10)
 
                 HStack {
@@ -557,7 +567,7 @@ extension Home {
                                 .renderingMode(.template)
                                 .resizable()
                                 .frame(width: 24, height: 24)
-                                .foregroundColor(.loopYellow)
+                                .foregroundColor(colorIcon)
                                 .padding(8)
                             if let carbsReq = state.carbsRequired {
                                 Text(numberFormatter.string(from: carbsReq as NSNumber)!)
@@ -582,7 +592,7 @@ extension Home {
                             .frame(width: 24, height: 24)
                             .padding(8)
                     }
-                    .foregroundColor(.insulin)
+                    .foregroundColor(colorIcon)
                     .buttonStyle(.borderless)
                     Spacer()
                     if state.allowManualTemp {
@@ -594,7 +604,7 @@ extension Home {
                                 .frame(width: 24, height: 24)
                                 .padding(8)
                         }
-                        .foregroundColor(.insulin)
+                        .foregroundColor(colorIcon)
                         .buttonStyle(.borderless)
                         Spacer()
                     }
@@ -606,7 +616,7 @@ extension Home {
                             .frame(width: 24, height: 24)
                             .padding(8)
                     }
-                    .foregroundColor(.loopGreen)
+                    .foregroundColor(colorIcon)
                     .buttonStyle(.borderless)
                     Spacer()
 
@@ -622,7 +632,7 @@ extension Home {
                             .frame(width: 24, height: 24)
                             .padding(8)
                     }
-                    .foregroundColor(.cyan)
+                    .foregroundColor(colorIcon)
                     .buttonStyle(.borderless)
                     Spacer()
                     Button { state.showModal(for: .statistics)
@@ -634,7 +644,7 @@ extension Home {
                             .frame(width: 24, height: 24)
                             .padding(8)
                     }
-                    .foregroundColor(.purple)
+                    .foregroundColor(colorIcon)
                     .buttonStyle(.borderless)
                     Spacer()
                     Button { state.showModal(for: .settings) }
@@ -645,10 +655,11 @@ extension Home {
                             .frame(width: 24, height: 24)
                             .padding(8)
                     }
-                    .foregroundColor(.loopGray)
+                    .foregroundColor(colorIcon)
                     .buttonStyle(.borderless)
                 }
                 .padding(.horizontal, 24)
+                .padding(.bottom, 16)
             }
         }
 
@@ -657,11 +668,12 @@ extension Home {
                 gradient: Gradient(colors: [
                     // RGB(3, 15, 28)
                     Color(red: 0.011, green: 0.058, blue: 0.109),
+                    Color(red: 0.011, green: 0.058, blue: 0.109),
                     // RGB(1, 3, 8)
                     Color(red: 0.003, green: 0.011, blue: 0.031)
                 ]),
-                startPoint: .top,
-                endPoint: .bottom
+                startPoint: .bottom,
+                endPoint: .top
             )
                 :
                 LinearGradient(gradient: Gradient(colors: [Color.gray.opacity(0.1)]), startPoint: .top, endPoint: .bottom)
@@ -669,6 +681,8 @@ extension Home {
 
             GeometryReader { geo in
                 VStack(spacing: 0) {
+                    Spacer()
+
                     ZStack {
                         glucoseView
 
@@ -681,8 +695,6 @@ extension Home {
 
                     Spacer()
 
-                    Spacer()
-
                     header(geo)
                         .padding(.top, 15)
                         .padding(.horizontal, 10)
@@ -696,16 +708,16 @@ extension Home {
                         .fill(colourChart)
                         .overlay(mainChart)
                         .clipShape(RoundedRectangle(cornerRadius: 15))
-                        .shadow(radius: 3)
+                        .shadow(
+                            color: colorScheme == .dark ? Color(red: 0.02745098039, green: 0.1098039216, blue: 0.1411764706) :
+                                Color.black.opacity(0.33),
+                            radius: 3
+                        )
                         .padding(.horizontal, 10)
                         .frame(maxHeight: UIScreen.main.bounds.height / 2.2)
 
-                    Spacer()
-
                     pickerPanel(geo)
 
-                    Spacer()
-
                     legendPanel
 
                     Spacer()