Skip to content

Commit

Permalink
3.0.1 (#519)
Browse files Browse the repository at this point in the history
Missing commit. Confirm bolus quicker on Apple Watch.
Fix for UI glitch (for saving active override illustration before replacing with a new remote override).

---------

Co-authored-by: MikePlante1 <82073483+MikePlante1@users.noreply.github.com>
  • Loading branch information
Jon-b-m and MikePlante1 authored Feb 10, 2024
1 parent 7d6614c commit dd2ded3
Show file tree
Hide file tree
Showing 10 changed files with 35 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
"rulerMarks" : false,
"maxCarbs": 1000,
"displayFatAndProteinOnWatch": false,
"confirmBolusFaster": false,
"overrideFactor": 0.8,
"useCalc": false,
"fattyMeals": false,
Expand Down
5 changes: 5 additions & 0 deletions FreeAPS/Sources/APS/APSManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -661,6 +661,11 @@ final class BaseAPSManager: APSManager, Injectable {
}

guard let override = CoreDataStorage().fetchProfile(name) else { return }

// Cancel current active first (for the UI to update)
if CoreDataStorage().isActive() {
OverrideStorage().cancelProfile()
}
CoreDataStorage().activateOverride(override)
announcementsStorage.storeAnnouncements([announcement], enacted: true)
debug(.apsManager, "Remote Override by Announcement succeeded.")
Expand Down
15 changes: 15 additions & 0 deletions FreeAPS/Sources/APS/Storage/CoreDataStorage.swift
Original file line number Diff line number Diff line change
Expand Up @@ -87,4 +87,19 @@ final class CoreDataStorage {
try? coredataContext.save()
}
}

func isActive() -> Bool {
var overrideArray = [Override]()
coredataContext.performAndWait {
let requestOverrides = Override.fetchRequest() as NSFetchRequest<Override>
let sortOverride = NSSortDescriptor(key: "date", ascending: false)
requestOverrides.sortDescriptors = [sortOverride]
requestOverrides.fetchLimit = 1
try? overrideArray = self.coredataContext.fetch(requestOverrides)
}
guard let lastOverride = overrideArray.first else {
return false
}
return lastOverride.enabled
}
}
5 changes: 5 additions & 0 deletions FreeAPS/Sources/Models/FreeAPSSettings.swift
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ struct FreeAPSSettings: JSON, Equatable {
var rulerMarks: Bool = false
var maxCarbs: Decimal = 1000
var displayFatAndProteinOnWatch: Bool = false
var confirmBolusFaster: Bool = false
var onlyAutotuneBasals: Bool = false
var overrideFactor: Decimal = 0.8
var useCalc: Bool = false
Expand Down Expand Up @@ -255,6 +256,10 @@ extension FreeAPSSettings: Decodable {
settings.displayFatAndProteinOnWatch = displayFatAndProteinOnWatch
}

if let confirmBolusFaster = try? container.decode(Bool.self, forKey: .confirmBolusFaster) {
settings.confirmBolusFaster = confirmBolusFaster
}

if let onlyAutotuneBasals = try? container.decode(Bool.self, forKey: .onlyAutotuneBasals) {
settings.onlyAutotuneBasals = onlyAutotuneBasals
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ extension WatchConfig {

Toggle("Display Protein & Fat", isOn: $state.displayFatAndProteinOnWatch)

Toggle("Confirm Bolus Faster", isOn: $state.confirmBolusFaster)

Section(header: Text("Garmin Watch")) {
List {
ForEach(state.devices, id: \.uuid) { device in
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,15 @@ extension WatchConfig {
@Published var devices: [IQDevice] = []
@Published var selectedAwConfig: AwConfig = .HR
@Published var displayFatAndProteinOnWatch = false
@Published var confirmBolusFaster = false

private(set) var preferences = Preferences()

override func subscribe() {
preferences = provider.preferences

subscribeSetting(\.displayFatAndProteinOnWatch, on: $displayFatAndProteinOnWatch) { displayFatAndProteinOnWatch = $0 }
subscribeSetting(\.confirmBolusFaster, on: $confirmBolusFaster) { confirmBolusFaster = $0 }
subscribeSetting(\.displayOnWatch, on: $selectedAwConfig) { selectedAwConfig = $0 }
didSet: { [weak self] value in
// for compatibility with old displayHR
Expand Down
1 change: 1 addition & 0 deletions FreeAPS/Sources/Services/WatchManager/WatchManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,7 @@ final class BaseWatchManager: NSObject, WatchManager, Injectable {
self.state.bolusAfterCarbs = !self.settingsManager.settings.skipBolusScreenAfterCarbs
self.state.displayOnWatch = self.settingsManager.settings.displayOnWatch
self.state.displayFatAndProteinOnWatch = self.settingsManager.settings.displayFatAndProteinOnWatch
self.state.confirmBolusFaster = self.settingsManager.settings.confirmBolusFaster

let eBG = self.eventualBGString()
self.state.eventualBG = eBG.map { "" + $0 }
Expand Down
1 change: 1 addition & 0 deletions FreeAPSWatch WatchKit Extension/DataFlow.swift
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ struct WatchState: Codable {
var eventualBGRaw: String?
var displayOnWatch: AwConfig?
var displayFatAndProteinOnWatch: Bool?
var confirmBolusFaster: Bool?
var useNewCalc: Bool?
var isf: Decimal?
var override: String?
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ struct BolusConfirmationView: View {
$crownProgress,
from: 0.0,
through: 100.0,
by: 0.5,
by: state.confirmBolusFaster ? 5 : 0.5,
sensitivity: .high,
isContinuous: false,
isHapticFeedbackEnabled: true
Expand Down
2 changes: 2 additions & 0 deletions FreeAPSWatch WatchKit Extension/WatchStateModel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ class WatchStateModel: NSObject, ObservableObject {
@Published var isBolusViewActive = false
@Published var displayOnWatch: AwConfig = .BGTarget
@Published var displayFatAndProteinOnWatch = false
@Published var confirmBolusFaster = false
@Published var useNewCalc = false
@Published var eventualBG = ""
@Published var isConfirmationViewActive = false {
Expand Down Expand Up @@ -175,6 +176,7 @@ class WatchStateModel: NSObject, ObservableObject {
eventualBG = state.eventualBG ?? ""
displayOnWatch = state.displayOnWatch ?? .BGTarget
displayFatAndProteinOnWatch = state.displayFatAndProteinOnWatch ?? false
confirmBolusFaster = state.confirmBolusFaster ?? false
useNewCalc = state.useNewCalc ?? false
isf = state.isf
override = state.override
Expand Down

0 comments on commit dd2ded3

Please sign in to comment.