Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions LoopFollow/Controllers/Alarms.swift
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ extension MainViewController {
let date = Date()
let now = date.timeIntervalSince1970
let currentBG = bgs[bgs.count - 1].sgv
let lastBG = bgs[bgs.count - 2].sgv
//let lastBG = bgs[bgs.count - 2].sgv // not used, protect index out of bounds

var skipZero = false
if UserDefaultsRepository.alertIgnoreZero.value && currentBG == 0 {
Expand Down Expand Up @@ -185,8 +185,8 @@ extension MainViewController {
}
}

// Check Low
let persistentLowReadings = Int(UserDefaultsRepository.alertLowPersistent.value / 5)
// Check Low, protect index out of bounds
let persistentLowReadings = min(Int(UserDefaultsRepository.alertLowPersistent.value / 5), bgData.count - 1)
let persistentLowBG = bgData[bgData.count - 1 - persistentLowReadings].sgv
let persistentLowTriggerImmediatelyBG = UserDefaultsRepository.alertLowBG.value - UserDefaultsRepository.alertLowPersistenceMax.value

Expand Down Expand Up @@ -241,8 +241,8 @@ extension MainViewController {

}

// Check High
let persistentHighReadings = Int(UserDefaultsRepository.alertHighPersistent.value / 5)
// Check High, protect index out of bounds
let persistentHighReadings = min(Int(UserDefaultsRepository.alertHighPersistent.value / 5), bgData.count-1)
let persistentHighBG = bgData[bgData.count - 1 - persistentHighReadings].sgv
if UserDefaultsRepository.alertHighActive.value &&
!UserDefaultsRepository.alertHighIsSnoozed.value &&
Expand Down
2 changes: 1 addition & 1 deletion LoopFollow/Controllers/Nightscout/BGData.swift
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@ extension MainViewController {
self.writeDebugLog(value: "Num BG: " + self.bgData.count.description)
}
let entries = self.bgData
if entries.count < 1 { return }
if entries.count < 2 { return } // protect index out of bounds

self.updateBGGraph()
self.updateStats()
Expand Down
5 changes: 4 additions & 1 deletion LoopFollow/ViewControllers/MainViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -688,7 +688,10 @@ class MainViewController: UIViewController, UITableViewDataSource, ChartViewDele
}

// Create Event info
let deltaBG = self.bgData[self.bgData.count - 1].sgv - self.bgData[self.bgData.count - 2].sgv as Int
var deltaBG = 0 // protect index out of bounds
if self.bgData.count > 1 {
deltaBG = self.bgData[self.bgData.count - 1].sgv - self.bgData[self.bgData.count - 2].sgv as Int
}
let deltaTime = (TimeInterval(Date().timeIntervalSince1970) - self.bgData[self.bgData.count - 1].date) / 60
var deltaString = ""
if deltaBG < 0 {
Expand Down