@@ -29,7 +29,7 @@ class G7SettingsViewModel: ObservableObject {
2929 }
3030 }
3131
32- var displayGlucoseUnitObservable : DisplayGlucoseUnitObservable
32+ let displayGlucosePreference : DisplayGlucosePreference
3333
3434 private var lastReading : G7GlucoseMessage ?
3535
@@ -40,15 +40,6 @@ class G7SettingsViewModel: ObservableObject {
4040 return formatter
4141 } ( )
4242
43- private lazy var glucoseFormatter : QuantityFormatter = {
44- let formatter = QuantityFormatter ( )
45- formatter. setPreferredNumberFormatter ( for: displayGlucoseUnitObservable. displayGlucoseUnit)
46- formatter. numberFormatter. notANumberSymbol = " – "
47- return formatter
48- } ( )
49-
50- private let quantityFormatter = QuantityFormatter ( )
51-
5243 private var cgmManager : G7CGMManager
5344
5445 var progressBarState : G7ProgressBarState {
@@ -68,9 +59,9 @@ class G7SettingsViewModel: ObservableObject {
6859 }
6960 }
7061
71- init ( cgmManager: G7CGMManager , displayGlucoseUnitObservable : DisplayGlucoseUnitObservable ) {
62+ init ( cgmManager: G7CGMManager , displayGlucosePreference : DisplayGlucosePreference ) {
7263 self . cgmManager = cgmManager
73- self . displayGlucoseUnitObservable = displayGlucoseUnitObservable
64+ self . displayGlucosePreference = displayGlucosePreference
7465 updateValues ( )
7566
7667 self . cgmManager. addStateObserver ( self , queue: DispatchQueue . main)
@@ -188,19 +179,13 @@ class G7SettingsViewModel: ObservableObject {
188179 case . some( . aboveRange) :
189180 return LocalizedString ( " HIGH " , comment: " String displayed instead of a glucose value above the CGM range " )
190181 default :
191- quantityFormatter. setPreferredNumberFormatter ( for: displayGlucoseUnitObservable. displayGlucoseUnit)
192- let valueStr = quantityFormatter. string ( from: quantity, for: displayGlucoseUnitObservable. displayGlucoseUnit, includeUnit: false ) ?? " "
193- return String ( format: " %@ %@ " , valueStr, displayGlucoseUnitObservable. displayGlucoseUnit. shortLocalizedUnitString ( ) )
182+ return displayGlucosePreference. formatter. string ( from: quantity) !
194183 }
195184 }
196185
197186 var lastGlucoseTrendString : String {
198187 if let lastReading = lastReading, lastReading. hasReliableGlucose, let trendRate = lastReading. trendRate {
199- let glucoseUnitPerMinute = displayGlucoseUnitObservable. displayGlucoseUnit. unitDivided ( by: . minute( ) )
200- // This seemingly strange replacement of glucose units is only to display the unit string correctly
201- let trendPerMinute = HKQuantity ( unit: displayGlucoseUnitObservable. displayGlucoseUnit, doubleValue: trendRate. doubleValue ( for: glucoseUnitPerMinute) )
202- let formatted = glucoseFormatter. string ( from: trendPerMinute, for: displayGlucoseUnitObservable. displayGlucoseUnit) !
203- return String ( format: LocalizedString ( " %@/min " , comment: " Format string for glucose trend per minute. (1: glucose value and unit) " ) , formatted)
188+ return displayGlucosePreference. minuteRateFormatter. string ( from: trendRate) !
204189 } else {
205190 return " "
206191 }
0 commit comments