Commit 1afd591625864dafd918ee9c979027cf401b34c0
1 parent
39b57938e7
Exists in
master
update performance
Showing 2 changed files with 76 additions and 39 deletions Side-by-side Diff
LifeLog/LifeLog/HomeViewController.m
... | ... | @@ -15,8 +15,6 @@ |
15 | 15 | #import <MBProgressHUD/MBProgressHUD.h> |
16 | 16 | #import "ServerAPI.h" |
17 | 17 | |
18 | -static NSInteger numberTotal = 10000; | |
19 | - | |
20 | 18 | @interface HomeViewController () |
21 | 19 | { |
22 | 20 | MBProgressHUD *progressHud; |
... | ... | @@ -42,6 +40,7 @@ |
42 | 40 | |
43 | 41 | @property (nonatomic, assign) int totalRequest; |
44 | 42 | @property (nonatomic, assign) int countComplete; |
43 | +@property (nonatomic, assign) int currentIndex; | |
45 | 44 | |
46 | 45 | @end |
47 | 46 | |
48 | 47 | |
... | ... | @@ -111,13 +110,12 @@ |
111 | 110 | progressHud = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; |
112 | 111 | progressHud.mode = MBProgressHUDModeIndeterminate; |
113 | 112 | progressHud.detailsLabel.text = NSLocalizedString(@"lifelog.home.progressHud.title", nil); |
114 | - [self saveDataStep7LastDay]; | |
113 | + // [self saveDataStep7LastDay]; | |
115 | 114 | } |
116 | 115 | |
117 | 116 | - (void)viewWillAppear:(BOOL)animated { |
118 | 117 | [super viewWillAppear:animated]; |
119 | 118 | [self saveStepForDay:self.dateCurrent]; |
120 | - [self requestTopByDate:self.dateCurrent]; | |
121 | 119 | } |
122 | 120 | |
123 | 121 | - (void)requestTopByDate:(NSDate *)date { |
124 | 122 | |
125 | 123 | |
126 | 124 | |
... | ... | @@ -191,20 +189,21 @@ |
191 | 189 | { |
192 | 190 | self.dateCurrent = [self.dateCurrent dateByAddingTimeInterval:-(24*60*60)]; |
193 | 191 | self.lblDateCurrent.text = [NSString stringWithFormat:@"%ld%@%ld%@%ld%@", (long)[_dateCurrent getYear], NSLocalizedString(@"lifelog.common.year", nil), (long)[_dateCurrent getMonth], NSLocalizedString(@"lifelog.common.month", nil), (long)[_dateCurrent getDay], NSLocalizedString(@"lifelog.common.day", nil)]; |
192 | + [self resetStepUI]; | |
194 | 193 | [self saveStepForDay:self.dateCurrent]; |
195 | - [self requestTopByDate:self.dateCurrent]; | |
196 | 194 | } |
197 | 195 | |
198 | 196 | - (IBAction)rightButtonTouchUpInside:(id)sender |
199 | 197 | { |
200 | 198 | self.dateCurrent = [self.dateCurrent dateByAddingTimeInterval:24*60*60]; |
201 | 199 | self.lblDateCurrent.text = [NSString stringWithFormat:@"%ld%@%ld%@%ld%@", (long)[_dateCurrent getYear], NSLocalizedString(@"lifelog.common.year", nil), (long)[_dateCurrent getMonth], NSLocalizedString(@"lifelog.common.month", nil), (long)[_dateCurrent getDay], NSLocalizedString(@"lifelog.common.day", nil)]; |
202 | - [self saveStepForDay:self.dateCurrent]; | |
200 | + [self resetStepUI]; | |
201 | + //[self saveStepForDay:self.dateCurrent]; | |
203 | 202 | [self requestTopByDate:self.dateCurrent]; |
204 | 203 | } |
205 | 204 | |
206 | 205 | - (IBAction)segmentValueChange:(id)sender { |
207 | - // [self updateStepUI]; | |
206 | + [self resetStepUI]; | |
208 | 207 | [self requestTopByDate:self.dateCurrent]; |
209 | 208 | } |
210 | 209 | |
... | ... | @@ -212,8 +211,8 @@ |
212 | 211 | - (void)saveStepForDay:(NSDate *)date |
213 | 212 | { |
214 | 213 | if ([CMMotionActivityManager isActivityAvailable]) { |
215 | -// [progressHud showAnimated:YES]; | |
216 | -// [progressHud setHidden:NO]; | |
214 | + [progressHud showAnimated:YES]; | |
215 | + [progressHud setHidden:NO]; | |
217 | 216 | self.bike = 0; |
218 | 217 | self.walking = 0; |
219 | 218 | self.running = 0; |
... | ... | @@ -252,6 +251,9 @@ |
252 | 251 | } |
253 | 252 | [arrayActivities addObject:activityExtra]; |
254 | 253 | } |
254 | + // PhongNV | |
255 | + // weakSelf.currentIndex = 0; | |
256 | + // [weakSelf saveStepFromActivityExtras:arrayActivities]; | |
255 | 257 | |
256 | 258 | for (CMMotionActivityExtra *activityExtra in arrayActivities) { |
257 | 259 | [weakSelf.pedometer queryPedometerDataFromDate:activityExtra.activity.startDate toDate:activityExtra.endDate withHandler:^(CMPedometerData * _Nullable pedometerData, NSError * _Nullable error) { |
258 | 260 | |
259 | 261 | |
260 | 262 | |
261 | 263 | |
... | ... | @@ -293,44 +295,69 @@ |
293 | 295 | }); |
294 | 296 | }]; |
295 | 297 | } |
298 | + | |
296 | 299 | }]; |
297 | 300 | }); |
298 | 301 | } |
299 | -// else { | |
300 | -// [progressHud setHidden:YES]; | |
301 | -// } | |
302 | 302 | } |
303 | 303 | |
304 | +- (void)saveStepFromActivityExtras:(NSArray *)activities | |
305 | +{ | |
306 | + if (self.currentIndex >= activities.count) { | |
307 | + self.currentIndex = 0; | |
308 | + dispatch_async(dispatch_get_main_queue(), ^{ | |
309 | + [self updateStepUI]; | |
310 | + }); | |
311 | + return; | |
312 | + } | |
313 | + HomeViewController __weak *weakSelf = self; | |
314 | + CMMotionActivityExtra *activityExtra = [activities objectAtIndex:self.currentIndex]; | |
315 | + [self.pedometer queryPedometerDataFromDate:activityExtra.activity.startDate toDate:activityExtra.endDate withHandler:^(CMPedometerData * _Nullable pedometerData, NSError * _Nullable error) { | |
316 | + if (weakSelf == nil) { | |
317 | + return ; | |
318 | + } | |
319 | + NSInteger numberStep = [pedometerData.numberOfSteps integerValue]; | |
320 | + int mode = 1; | |
321 | + if (activityExtra.activity.cycling) { | |
322 | + mode = 3; | |
323 | + } | |
324 | + else if (activityExtra.activity.walking) { | |
325 | + mode = 1; | |
326 | + } | |
327 | + else if (activityExtra.activity.running) { | |
328 | + mode = 2; | |
329 | + } | |
330 | + else { | |
331 | + // unknown | |
332 | + } | |
333 | + self.countComplete += 1; | |
334 | + // save step to server | |
335 | + if (numberStep > 0) { | |
336 | + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; | |
337 | + [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; | |
338 | + NSString *dateBegin = [dateFormatter stringFromDate:activityExtra.activity.startDate]; | |
339 | + NSString *dateEnd = [dateFormatter stringFromDate:activityExtra.endDate]; | |
340 | + [[ServerAPI server] requestCreateLog:mode withStep:(int)numberStep startDate:dateBegin endDate:dateEnd CompletionHandler:^(NSError *error) { | |
341 | + if (error) { | |
342 | + NSLog(@"Error: %@", error); | |
343 | + } | |
344 | + weakSelf.currentIndex += 1; | |
345 | + [weakSelf saveStepFromActivityExtras:activities]; | |
346 | + }]; | |
347 | + } | |
348 | + else { | |
349 | + weakSelf.currentIndex += 1; | |
350 | + [weakSelf saveStepFromActivityExtras:activities]; | |
351 | + } | |
352 | + }]; | |
353 | +} | |
354 | + | |
304 | 355 | - (void)updateStepUI |
305 | 356 | { |
306 | 357 | if (self.totalRequest == self.countComplete) { |
307 | - /* | |
308 | - switch (self.segmentHome.selectedSegmentIndex) { | |
309 | - case 0: | |
310 | - self.lblValueStep.text = [Utilities addCommaFromNumber:self.bike]; | |
311 | - self.lblValueStepOther.text = [NSString stringWithFormat:@"%@ %ld", NSLocalizedString(@"lifelog.today.remaining.other", nil), numberTotal - self.bike]; | |
312 | - self.lblPercent.text = [NSString stringWithFormat:@"%@ %i%@", NSLocalizedString(@"lifelog.today.text.percent", nil), (int)(self.bike*100/numberTotal), NSLocalizedString(@"lifelog.today.percent", nil)]; | |
313 | - break; | |
314 | - | |
315 | - case 1: | |
316 | - self.lblValueStep.text = [Utilities addCommaFromNumber:self.walking]; | |
317 | - self.lblValueStepOther.text = [NSString stringWithFormat:@"%@ %ld", NSLocalizedString(@"lifelog.today.remaining.other", nil), numberTotal - self.walking]; | |
318 | - self.lblPercent.text = [NSString stringWithFormat:@"%@ %i%@", NSLocalizedString(@"lifelog.today.text.percent", nil), (int)(self.walking*100/numberTotal), NSLocalizedString(@"lifelog.today.percent", nil)]; | |
319 | - break; | |
320 | - | |
321 | - case 2: | |
322 | - self.lblValueStep.text = [Utilities addCommaFromNumber:self.running]; | |
323 | - self.lblValueStepOther.text = [NSString stringWithFormat:@"%@ %ld", NSLocalizedString(@"lifelog.today.remaining.other", nil), numberTotal - self.running]; | |
324 | - self.lblPercent.text = [NSString stringWithFormat:@"%@ %i%@", NSLocalizedString(@"lifelog.today.text.percent", nil), (int)(self.running*100/numberTotal), NSLocalizedString(@"lifelog.today.percent", nil)]; | |
325 | - break; | |
326 | - | |
327 | - default: | |
328 | - break; | |
329 | - } | |
330 | - */ | |
358 | + [self requestTopByDate:self.dateCurrent]; | |
331 | 359 | self.countComplete = 0; |
332 | 360 | self.totalRequest = 0; |
333 | - //[progressHud setHidden:YES]; | |
334 | 361 | } |
335 | 362 | } |
336 | 363 | |
... | ... | @@ -417,6 +444,13 @@ |
417 | 444 | self.lblValueStep.text = targetInfor.num_step; |
418 | 445 | self.lblValueStepOther.text = [NSString stringWithFormat:@"%@ %@", NSLocalizedString(@"lifelog.today.remaining.other", nil), targetInfor.remaining_step]; |
419 | 446 | self.lblPercent.text = [NSString stringWithFormat:@"%@ %i%@", NSLocalizedString(@"lifelog.today.text.percent", nil), [targetInfor.complete_percent intValue], NSLocalizedString(@"lifelog.today.percent", nil)]; |
447 | +} | |
448 | + | |
449 | +- (void)resetStepUI | |
450 | +{ | |
451 | + self.lblValueStep.text = @""; | |
452 | + self.lblValueStepOther.text = @""; | |
453 | + self.lblPercent.text = @""; | |
420 | 454 | } |
421 | 455 | |
422 | 456 | @end |
LifeLog/LifeLog/ServerAPI.m
... | ... | @@ -57,7 +57,7 @@ |
57 | 57 | { |
58 | 58 | self = [super init]; |
59 | 59 | if (self != nil) { |
60 | - self.timeOutInterval = 150; | |
60 | + self.timeOutInterval = 60; | |
61 | 61 | } |
62 | 62 | return self; |
63 | 63 | } |
... | ... | @@ -1035,7 +1035,10 @@ |
1035 | 1035 | [request setHTTPBody: encodedData]; |
1036 | 1036 | } |
1037 | 1037 | |
1038 | - NSURLSession *session = [NSURLSession sharedSession]; | |
1038 | + //NSURLSession *session = [NSURLSession sharedSession]; | |
1039 | + NSURLSessionConfiguration *defaultConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration]; | |
1040 | + NSOperationQueue *operationQueue = [NSOperationQueue mainQueue]; | |
1041 | + NSURLSession *session = [NSURLSession sessionWithConfiguration:defaultConfiguration delegate:nil delegateQueue:operationQueue]; | |
1039 | 1042 | NSURLSessionDataTask *task = [session dataTaskWithRequest:request |
1040 | 1043 | completionHandler: |
1041 | 1044 | ^(NSData *data, NSURLResponse *response, NSError *error) { |