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

Remove badge for stale bg data

Jonas Björkert 2 лет назад
Родитель
Сommit
f6040916ba

+ 2 - 1
LoopFollow/Controllers/Nightscout/BGData.swift

@@ -176,7 +176,6 @@ extension MainViewController {
                 self.startBGTimer(time: 300 - secondsAgo + Double(UserDefaultsRepository.bgUpdateDelay.value))
                 let timerVal = 310 - secondsAgo
                 print("##### started 5:10 bg timer: \(timerVal)")
-                self.updateBadge(val: data[0].sgv)
                 self.evaluateSpeakConditions(currentValue: data[0].sgv, previousValue: data[1].sgv)
             }
         }
@@ -276,8 +275,10 @@ extension MainViewController {
             attributeString.addAttribute(.strikethroughStyle, value: NSUnderlineStyle.single.rawValue, range: NSRange(location: 0, length: attributeString.length))
             if deltaTime >= 12 { // Data is stale
                 attributeString.addAttribute(.strikethroughColor, value: UIColor.systemRed, range: NSRange(location: 0, length: attributeString.length))
+                self.updateBadge(val: 0)
             } else { // Data is fresh
                 attributeString.addAttribute(.strikethroughColor, value: UIColor.clear, range: NSRange(location: 0, length: attributeString.length))
+                self.updateBadge(val: latestBG)
             }
             self.BGText.attributedText = attributeString
             

+ 2 - 4
LoopFollow/ViewControllers/MainViewController.swift

@@ -473,13 +473,11 @@ class MainViewController: UIViewController, UITableViewDataSource, ChartViewDele
     }
     
     func updateBadge(val: Int) {
-        DispatchQueue.main.async {
         if UserDefaultsRepository.appBadge.value {
             let latestBG = String(val)
             UIApplication.shared.applicationIconBadgeNumber = Int(bgUnits.removePeriodAndCommaForBadge(bgUnits.toDisplayUnits(latestBG))) ?? val
-            } else {
-                UIApplication.shared.applicationIconBadgeNumber = 0
-            }
+        } else {
+            UIApplication.shared.applicationIconBadgeNumber = 0
         }
     }