Skip to content

Commit b0abf5f

Browse files
committed
Merge pull request #113 from chb/feature/motionhistory-dep
Feature/motionhistory dep
2 parents 4566a9a + 4207489 commit b0abf5f

File tree

1 file changed

+48
-86
lines changed

1 file changed

+48
-86
lines changed

APCAppCore/APCAppCore/Library/APCMotionHistoryReporter.m

Lines changed: 48 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
#import <CoreMotion/CoreMotion.h>
3636
#import "APCMotionHistoryData.h"
3737
#import "APCConstants.h"
38-
#import "APCAppCore.h"
38+
#import "APCLog.h"
3939

4040
static NSInteger const kSleepBlocksInSeconds = 10800; // 3 hours
4141

@@ -95,15 +95,11 @@ - (void)startMotionCoProcessorDataFrom:(NSDate * __nonnull)startDate andEndDate:
9595
andNumberOfDays:numberOfDays
9696
callback:^(NSArray *reports, NSError *error)
9797
{
98-
if (reports == nil)
99-
{
100-
if (error)
101-
{
98+
if (reports == nil) {
99+
if (error) {
102100
APCLogError2(error);
103101
}
104-
}
105-
else
106-
{
102+
} else {
107103
[[NSNotificationCenter defaultCenter] postNotificationName:APCMotionHistoryReporterDoneNotification object:nil];
108104
}
109105
}];
@@ -138,7 +134,6 @@ -(void)getMotionCoProcessorDataFrom:(NSDate * __nonnull)startDate andEndDate:(NS
138134

139135
NSInteger numberOfDaysBack = numberOfDays * -1;
140136
NSDateComponents *components = [[NSDateComponents alloc] init];
141-
142137
[components setDay:numberOfDaysBack];
143138

144139
NSDate *newStartDate = [[NSCalendar currentCalendar] dateByAddingComponents:components
@@ -161,129 +156,103 @@ -(void)getMotionCoProcessorDataFrom:(NSDate * __nonnull)startDate andEndDate:(NS
161156
toQueue:[NSOperationQueue new]
162157
withHandler:^(NSArray* activities, NSError* error)
163158
{
164-
if (activities == nil)
165-
{
166-
if (error)
167-
{
159+
if (activities == nil) {
160+
if (error) {
168161
APCLogError2(error);
169162
}
170163
}
171-
else
172-
{
173-
NSDate* lastActivity_started = nil;
174-
175-
NSTimeInterval totalUnknownTime = 0.0;
176-
NSTimeInterval totalRunningTime = 0.0;
177-
NSTimeInterval totalSleepTime = 0.0;
178-
NSTimeInterval totalLightActivityTime = 0.0;
179-
NSTimeInterval totalSedentaryTime = 0.0;
180-
NSTimeInterval totalModerateTime = 0.0;
164+
else {
165+
NSDate* lastActivity_started = nil;
166+
167+
NSTimeInterval totalUnknownTime = 0.0;
168+
NSTimeInterval totalRunningTime = 0.0;
169+
NSTimeInterval totalSleepTime = 0.0;
170+
NSTimeInterval totalLightActivityTime = 0.0;
171+
NSTimeInterval totalSedentaryTime = 0.0;
172+
NSTimeInterval totalModerateTime = 0.0;
181173

182174
//CMMotionActivity is generated every time the state of motion changes. Assuming this, given two CMMMotionActivity objects you can calculate the duration between the two events thereby determining how long the activity of stationary/walking/running/driving/uknowning was.
183175

184176
//Setting lastMotionActivityType to 0 which is essentially an unknown.
185177
NSInteger lastMotionActivityType = 0;
186178
NSMutableArray* motionDayValues = [NSMutableArray new];
187179

188-
for(CMMotionActivity *activity in activities)
189-
{
190-
if((lastMotionActivityType == MotionActivityWalking && activity.confidence == CMMotionActivityConfidenceHigh) ||
191-
(lastMotionActivityType == MotionActivityWalking && activity.confidence == CMMotionActivityConfidenceMedium))
192-
{
180+
for (CMMotionActivity *activity in activities) {
181+
if ((lastMotionActivityType == MotionActivityWalking && activity.confidence == CMMotionActivityConfidenceHigh) ||
182+
(lastMotionActivityType == MotionActivityWalking && activity.confidence == CMMotionActivityConfidenceMedium)) {
193183
NSTimeInterval activityLength = 0.0;
194184

195185
activityLength = fabs([lastActivity_started timeIntervalSinceDate:activity.startDate]);
196186
totalModerateTime += fabs(activityLength);
197187
}
198-
else if(lastMotionActivityType == MotionActivityWalking && activity.confidence == CMMotionActivityConfidenceLow)
199-
{
188+
else if (lastMotionActivityType == MotionActivityWalking && activity.confidence == CMMotionActivityConfidenceLow) {
200189
totalLightActivityTime += fabs([lastActivity_started timeIntervalSinceDate:activity.startDate]);
201190
}
202-
else if(lastMotionActivityType == MotionActivityRunning)
203-
{
204-
if ((lastMotionActivityType == MotionActivityRunning && activity.confidence == CMMotionActivityConfidenceLow))
205-
{
191+
else if (lastMotionActivityType == MotionActivityRunning) {
192+
if ((lastMotionActivityType == MotionActivityRunning && activity.confidence == CMMotionActivityConfidenceLow)) {
206193
totalModerateTime += fabs([lastActivity_started timeIntervalSinceDate:activity.startDate]);
207194
}
208-
else
209-
{
195+
else {
210196
totalRunningTime += fabs([lastActivity_started timeIntervalSinceDate:activity.startDate]);
211197
}
212198
}
213-
else if(lastMotionActivityType == MotionActivityAutomotive)
214-
{
199+
else if (lastMotionActivityType == MotionActivityAutomotive) {
215200
totalSedentaryTime += fabs([lastActivity_started timeIntervalSinceDate:activity.startDate]);
216201
}
217-
else if(lastMotionActivityType == MotionActivityCycling)
218-
{
219-
if ((lastMotionActivityType == MotionActivityCycling && activity.confidence == CMMotionActivityConfidenceLow))
220-
{
202+
else if (lastMotionActivityType == MotionActivityCycling) {
203+
if ((lastMotionActivityType == MotionActivityCycling && activity.confidence == CMMotionActivityConfidenceLow)) {
221204
totalModerateTime += fabs([lastActivity_started timeIntervalSinceDate:activity.startDate]);
222205
}
223-
else
224-
{
206+
else {
225207
totalRunningTime += fabs([lastActivity_started timeIntervalSinceDate:activity.startDate]);
226208
}
227209
}
228-
else if((lastMotionActivityType == MotionActivityStationary && activity.confidence == CMMotionActivityConfidenceMedium) ||
229-
(lastMotionActivityType == MotionActivityStationary && activity.confidence == CMMotionActivityConfidenceHigh))
230-
{
210+
else if ((lastMotionActivityType == MotionActivityStationary && activity.confidence == CMMotionActivityConfidenceMedium) ||
211+
(lastMotionActivityType == MotionActivityStationary && activity.confidence == CMMotionActivityConfidenceHigh)) {
231212
//now we need to figure out if its sleep time
232213
// anything over 3 hours will be sleep time
233214
NSTimeInterval activityLength = 0.0;
234215

235216
activityLength = fabs([lastActivity_started timeIntervalSinceDate:activity.startDate]);
236217

237-
if(activityLength >= kSleepBlocksInSeconds) // 3 hours in seconds
218+
if (activityLength >= kSleepBlocksInSeconds) // 3 hours in seconds
238219
{
239220
totalSleepTime += fabs([lastActivity_started timeIntervalSinceDate:activity.startDate]);
240221

241222
}
242-
else
243-
{
223+
else {
244224
totalSedentaryTime += fabs([lastActivity_started timeIntervalSinceDate:activity.startDate]);
245225
}
246226
}
247-
else if(lastMotionActivityType == MotionActivityUnknown)
248-
{
227+
else if (lastMotionActivityType == MotionActivityUnknown) {
249228
NSTimeInterval lastActivityDuration = fabs([lastActivity_started timeIntervalSinceDate:activity.startDate]);
250229

251-
if (activity.stationary)
252-
{
230+
if (activity.stationary) {
253231
totalSedentaryTime += lastActivityDuration;
254232
}
255-
else if (activity.walking && activity.confidence == CMMotionActivityConfidenceLow)
256-
{
233+
else if (activity.walking && activity.confidence == CMMotionActivityConfidenceLow) {
257234
totalLightActivityTime += lastActivityDuration;
258235
}
259-
else if (activity.walking)
260-
{
236+
else if (activity.walking) {
261237
totalModerateTime += lastActivityDuration;
262238
}
263-
else if (activity.running)
264-
{
265-
if (activity.confidence == CMMotionActivityConfidenceLow)
266-
{
239+
else if (activity.running) {
240+
if (activity.confidence == CMMotionActivityConfidenceLow) {
267241
totalModerateTime += lastActivityDuration;
268242
}
269-
else
270-
{
243+
else {
271244
totalRunningTime += lastActivityDuration;
272245
}
273246
}
274-
else if (activity.cycling)
275-
{
276-
if (activity.confidence == CMMotionActivityConfidenceLow)
277-
{
247+
else if (activity.cycling) {
248+
if (activity.confidence == CMMotionActivityConfidenceLow) {
278249
totalModerateTime += lastActivityDuration;
279250
}
280-
else
281-
{
251+
else {
282252
totalRunningTime += lastActivityDuration;
283253
}
284254
}
285-
else if (activity.automotive)
286-
{
255+
else if (activity.automotive) {
287256
totalSedentaryTime += lastActivityDuration;
288257
}
289258
}
@@ -352,28 +321,22 @@ - (MotionActivity)lastMotionActivity:(CMMotionActivity*)activity
352321
{
353322
MotionActivity lastMotionActivityType;
354323

355-
if (activity.stationary)
356-
{
324+
if (activity.stationary) {
357325
lastMotionActivityType = MotionActivityStationary;
358326
}
359-
else if (activity.walking)
360-
{
327+
else if (activity.walking) {
361328
lastMotionActivityType = MotionActivityWalking;
362329
}
363-
else if (activity.running)
364-
{
330+
else if (activity.running) {
365331
lastMotionActivityType = MotionActivityRunning;
366332
}
367-
else if (activity.automotive)
368-
{
333+
else if (activity.automotive) {
369334
lastMotionActivityType = MotionActivityAutomotive;
370335
}
371-
else if (activity.cycling)
372-
{
336+
else if (activity.cycling) {
373337
lastMotionActivityType = MotionActivityCycling;
374338
}
375-
else
376-
{
339+
else {
377340
lastMotionActivityType = MotionActivityUnknown;
378341
}
379342

@@ -382,8 +345,7 @@ - (MotionActivity)lastMotionActivity:(CMMotionActivity*)activity
382345

383346
- (void)callDoneCallbackWithReports:(NSArray * __nullable )reports error:(NSError * __nullable )error
384347
{
385-
if (_doneCallback)
386-
{
348+
if (_doneCallback) {
387349
_doneCallback(reports, error);
388350
self.doneCallback = nil;
389351
}

0 commit comments

Comments
 (0)