@@ -16,9 +16,11 @@ class InterfaceController: WKInterfaceController {
1616
1717 @IBOutlet var stepsLabel : WKInterfaceLabel !
1818 @IBOutlet var averageLabel : WKInterfaceLabel !
19+ @IBOutlet var yesterdayLabel : WKInterfaceLabel !
1920
2021
2122 var stepsToday : Double = 0.0
23+ var stepsYesterday : Double = 0.0
2224 var sevenDayStepAverage : Double = 100000.0
2325 var sevenDayStepAverageLastUpdated : Date = Date . distantPast
2426
@@ -111,6 +113,17 @@ class InterfaceController: WKInterfaceController {
111113 }
112114 }
113115 } )
116+
117+ getYesterdayStepCount ( completion: { ( steps) in
118+ if steps != - 1.0 {
119+ self . stepsYesterday = steps!
120+ OperationQueue . main. addOperation {
121+ let numberString = self . numberFormatter. string ( from: steps! as NSNumber )
122+ self . yesterdayLabel. setText ( numberString!)
123+ }
124+ }
125+ } )
126+
114127 }
115128 }
116129
@@ -143,6 +156,34 @@ class InterfaceController: WKInterfaceController {
143156 }
144157
145158
159+ func getYesterdayStepCount( completion: @escaping ( Double ? ) -> ( ) )
160+ {
161+ // Define the sample type
162+ let type = HKQuantityType . quantityType ( forIdentifier: HKQuantityTypeIdentifier . stepCount)
163+
164+ let cal = Calendar . current
165+ let endDate = cal. startOfDay ( for: Date ( ) )
166+ let startDate = cal. date ( byAdding: . day, value: - 1 , to: endDate)
167+
168+ // Set the predicate
169+ let predicate = HKQuery . predicateForSamples ( withStart: startDate, end: endDate, options: [ ] )
170+
171+ let query = HKStatisticsQuery ( quantityType: type!, quantitySamplePredicate: predicate, options: . cumulativeSum) { query, results, error in
172+ let quantity = results? . sumQuantity ( )
173+ let unit = HKUnit . count ( )
174+ let steps = quantity? . doubleValue ( for: unit)
175+
176+ if steps != nil {
177+ completion ( steps)
178+ } else {
179+ print ( " getTodayStepCount: results are nil - returning nil steps " )
180+ completion ( - 1.0 )
181+ }
182+ }
183+ healthStore. execute ( query)
184+ }
185+
186+
146187 func getSevenDayStepAverage( completion: @escaping ( Double ? ) -> ( ) )
147188 {
148189 // Define the sample type
0 commit comments