Kaynağa Gözat

Bug fix for missing key

Jon Mårtensson 3 yıl önce
ebeveyn
işleme
80e650e2c3

+ 1 - 1
Core_Data.xcdatamodeld/Core_Data.xcdatamodel/contents

@@ -64,7 +64,7 @@
         <attribute name="glucose" optional="YES" attributeType="Integer 16" defaultValueString="0" usesScalarValueType="YES"/>
     </entity>
     <entity name="StatsData" representedClassName="StatsData" syncable="YES" codeGenerationType="class">
-        <attribute name="lastrun" optional="YES" attributeType="Date" defaultDateTimeInterval="704497620" usesScalarValueType="NO"/>
+        <attribute name="lastrun" attributeType="Date" defaultDateTimeInterval="704497620" usesScalarValueType="NO"/>
     </entity>
     <entity name="Target" representedClassName="Target" syncable="YES" codeGenerationType="class">
         <attribute name="current" optional="YES" attributeType="Decimal" defaultValueString="100"/>

+ 5 - 4
FreeAPS/Sources/APS/APSManager.swift

@@ -731,20 +731,21 @@ final class BaseAPSManager: APSManager, Injectable {
 
     // Add to statistics.JSON
     private func statistics() {
+        let now = Date()
         if settingsManager.settings.uploadStats {
-            let now = Date()
-            let hour = Calendar.current.component(.hour, from: Date())
+            let hour = Calendar.current.component(.hour, from: now)
             guard hour > 20 else {
                 return
             }
             coredataContext.performAndWait { [self] in
                 var stats = [StatsData]()
                 let requestStats = StatsData.fetchRequest() as NSFetchRequest<StatsData>
-                let sortStats = NSSortDescriptor(key: "date", ascending: false)
+                let sortStats = NSSortDescriptor(key: "lastrun", ascending: false)
                 requestStats.sortDescriptors = [sortStats]
                 requestStats.fetchLimit = 1
                 try? stats = coredataContext.fetch(requestStats)
-                guard (stats.first?.lastrun ?? now).addingTimeInterval(22.hours.timeInterval) < now else { return }
+                // Only save and upload once per day
+                guard (-1 * (stats.first?.lastrun ?? now).timeIntervalSinceNow.hours) > 22 else { return }
 
                 let units = self.settingsManager.settings.units
                 let preferences = settingsManager.preferences

+ 1 - 1
FreeAPS/Sources/Modules/Home/View/Chart/MainChartView.swift

@@ -861,7 +861,7 @@ extension MainChartView {
     }
 
     private func fullGlucoseWidth(viewWidth: CGFloat) -> CGFloat {
-        viewWidth * CGFloat(hours) / CGFloat(max(screenHours, 6))
+        viewWidth * CGFloat(hours) / CGFloat(min(max(screenHours, 6), 24))
     }
 
     private func additionalWidth(viewWidth: CGFloat) -> CGFloat {