diff --git a/LifeLog/LifeLog/HomeViewController.m b/LifeLog/LifeLog/HomeViewController.m index 4b7ddd1..f0f6f01 100644 --- a/LifeLog/LifeLog/HomeViewController.m +++ b/LifeLog/LifeLog/HomeViewController.m @@ -40,7 +40,6 @@ static NSInteger numberTotal = 10000; @property (nonatomic, assign) NSInteger running; @property (nonatomic, strong) NSDate *dateCurrent; -//@property (nonatomic, assign) BOOL isRequesting; @property (nonatomic, assign) int totalRequest; @property (nonatomic, assign) int countComplete; @@ -50,7 +49,7 @@ static NSInteger numberTotal = 10000; - (void)viewDidLoad { [super viewDidLoad]; - // Do any additional setup after loading the view from its nib. + self.lblTitle.text = NSLocalizedString(@"lifelog.home.title", nil); [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.topLayoutGuide attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.lblTitle attribute:NSLayoutAttributeTop multiplier:1 constant:0]]; @@ -106,27 +105,45 @@ static NSInteger numberTotal = 10000; _walking = 0; _running = 0; _segmentHome.selectedSegmentIndex = 1; -// _isRequesting = NO; _totalRequest = 0; _countComplete = 0; progressHud = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; progressHud.mode = MBProgressHUDModeIndeterminate; progressHud.detailsLabel.text = NSLocalizedString(@"lifelog.home.progressHud.title", nil); + [self saveDataStep7LastDay]; } - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; -// _timer = [NSTimer scheduledTimerWithTimeInterval:1.5f target:self selector:@selector(countStep) userInfo:nil repeats:YES]; -// [_timer fire]; - [self countStep]; - + [self saveStepForDay:self.dateCurrent]; + [self requestTopByDate:_dateCurrent]; +} + +- (void)requestTopByDate:(NSDate *)date { NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd"]; - NSString *dateString = [dateFormatter stringFromDate:_dateCurrent]; + NSString *dateString = [dateFormatter stringFromDate:date]; HomeViewController __weak *weakSelf = self; - [[ServerAPI server] requestTopWithMode:(int)_segmentHome.selectedSegmentIndex andDate:dateString CompletionHandler:^(TopObject *topObject, NSError *error) { + int mode = 1; + switch (_segmentHome.selectedSegmentIndex) { + case 0: + mode = 3; + break; + + case 1: + mode = 1; + break; + + case 2: + mode = 2; + break; + + default: + break; + } + [[ServerAPI server] requestTopWithMode:mode andDate:dateString CompletionHandler:^(TopObject *topObject, NSError *error) { if(weakSelf == nil) { return ; } @@ -144,7 +161,6 @@ static NSInteger numberTotal = 10000; - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; - //[_timer invalidate]; } - (void)didReceiveMemoryWarning { @@ -168,14 +184,14 @@ static NSInteger numberTotal = 10000; { self.dateCurrent = [self.dateCurrent dateByAddingTimeInterval:-(24*60*60)]; 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)]; - [self countStep]; + [self saveStepForDay:self.dateCurrent]; } - (IBAction)rightButtonTouchUpInside:(id)sender { self.dateCurrent = [self.dateCurrent dateByAddingTimeInterval:24*60*60]; 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)]; - [self countStep]; + [self saveStepForDay:self.dateCurrent]; } - (IBAction)segmentValueChange:(id)sender { @@ -183,23 +199,19 @@ static NSInteger numberTotal = 10000; } #pragma mark - Functions Private -- (void)countStep +- (void)saveStepForDay:(NSDate *)date { -// if (self.isRequesting == YES) { -// return; -// } if ([CMMotionActivityManager isActivityAvailable]) { [progressHud showAnimated:YES]; [progressHud setHidden:NO]; - // self.isRequesting = YES; self.bike = 0; self.walking = 0; self.running = 0; - NSDate *startDate = [self.dateCurrent beginningAtMidnightOfDay]; + NSDate *startDate = [date beginningAtMidnightOfDay]; NSDate *endDate = [startDate dateByAddingTimeInterval:(24*60*60 - 1)]; HomeViewController __weak *weakSelf = self; - dispatch_queue_t myQueue = dispatch_queue_create("mobileworld.jp.lifelog", NULL); + dispatch_queue_t myQueue = dispatch_queue_create("mobileworld.jp.lifelog.forDay", NULL); dispatch_async(myQueue, ^{ if (weakSelf == nil) { return ; @@ -232,32 +244,26 @@ static NSInteger numberTotal = 10000; } for (CMMotionActivityExtra *activityExtra in arrayActivities) { - // NSLog(@"%@", activityExtra.activity.startDate); [weakSelf.pedometer queryPedometerDataFromDate:activityExtra.activity.startDate toDate:activityExtra.endDate withHandler:^(CMPedometerData * _Nullable pedometerData, NSError * _Nullable error) { NSInteger numberStep = [pedometerData.numberOfSteps integerValue]; int mode = 1; if (activityExtra.activity.cycling) { // self.bike weakSelf.bike += numberStep; - //NSLog(@"Step cycling"); mode = 3; } else if (activityExtra.activity.walking) { // self.walking weakSelf.walking += numberStep; - //NSLog(@"Step walking"); mode = 1; } else if (activityExtra.activity.running) { weakSelf.running += numberStep; - //NSLog(@"Step running"); mode = 2; } else { // unknown - //NSLog(@"Step unknown"); } - // NSLog(@"Number of step--> %ld", numberStep); weakSelf.countComplete += 1; // save step to server @@ -277,7 +283,6 @@ static NSInteger numberTotal = 10000; }); }]; } - // NSLog(@"-----------------------------------------------------"); }]; }); } @@ -286,7 +291,7 @@ static NSInteger numberTotal = 10000; } } -- (void)updateStepUI //:(NSInteger)numberStep +- (void)updateStepUI { if (self.totalRequest == self.countComplete) { switch (self.segmentHome.selectedSegmentIndex) { @@ -311,12 +316,88 @@ static NSInteger numberTotal = 10000; default: break; } - // NSLog(@"Walking: %ld || Running: %ld || Bike: %ld", self.walking, self.running, self.bike); - // self.isRequesting = NO; self.countComplete = 0; self.totalRequest = 0; [progressHud setHidden:YES]; } } +- (void)saveDataStep7LastDay +{ + NSDate *dateNow = [NSDate date]; + for (int index = 0; index < 7; index++) { + dateNow = [dateNow dateByAddingTimeInterval:-(24*60*60)]; + [self saveStepByDate:dateNow]; + } +} + +- (void)saveStepByDate:(NSDate *)date +{ + if ([CMMotionActivityManager isActivityAvailable]) { + NSDate *startDate = [date beginningAtMidnightOfDay]; + NSDate *endDate = [startDate dateByAddingTimeInterval:(24*60*60 - 1)]; + + HomeViewController __weak *weakSelf = self; + dispatch_queue_t myQueue = dispatch_queue_create("mobileworld.jp.lifelog.7lastday", NULL); + dispatch_async(myQueue, ^{ + if (weakSelf == nil) { + return ; + } + + [weakSelf.motionActivityManager queryActivityStartingFromDate:startDate toDate:endDate toQueue:_operationQueue withHandler:^(NSArray * _Nullable activities, NSError * _Nullable error) { + if (error || activities.count <= 0) { + return ; + } + // set EndDate + NSMutableArray *arrayActivities = [[NSMutableArray alloc] init]; + for (int i = 0; i < activities.count; i++) { + CMMotionActivity *activity = [activities objectAtIndex:i]; + CMMotionActivityExtra *activityExtra = [[CMMotionActivityExtra alloc] init]; + activityExtra.activity = activity; + if (i == activities.count - 1) { + activityExtra.endDate = endDate; + } + else { + CMMotionActivity *activityNext = [activities objectAtIndex:i+1]; + activityExtra.endDate = activityNext.startDate; + } + [arrayActivities addObject:activityExtra]; + } + + for (CMMotionActivityExtra *activityExtra in arrayActivities) { + [weakSelf.pedometer queryPedometerDataFromDate:activityExtra.activity.startDate toDate:activityExtra.endDate withHandler:^(CMPedometerData * _Nullable pedometerData, NSError * _Nullable error) { + NSInteger numberStep = [pedometerData.numberOfSteps integerValue]; + int mode = 1; + if (activityExtra.activity.cycling) { + mode = 3; + } + else if (activityExtra.activity.walking) { + mode = 1; + } + else if (activityExtra.activity.running) { + mode = 2; + } + else { + // unknown + } + + // save step to server + if (numberStep > 0) { + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; + [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; + NSString *dateBegin = [dateFormatter stringFromDate:activityExtra.activity.startDate]; + NSString *dateEnd = [dateFormatter stringFromDate:activityExtra.endDate]; + [[ServerAPI server] requestCreateLog:mode withStep:(int)numberStep startDate:dateBegin endDate:dateEnd CompletionHandler:^(NSError *error) { + if (error) { + NSLog(@"Error: %@", error); + } + }]; + } + }]; + } + }]; + }); + } +} + @end diff --git a/LifeLog/LifeLog/MapViewController.m b/LifeLog/LifeLog/MapViewController.m index d261ec5..46f3f98 100644 --- a/LifeLog/LifeLog/MapViewController.m +++ b/LifeLog/LifeLog/MapViewController.m @@ -70,10 +70,10 @@ [_timer fire]; } -- (void)viewWillDisappear:(BOOL)animated { - [super viewWillDisappear:animated]; - [_timer invalidate]; -} +//- (void)viewWillDisappear:(BOOL)animated { +// [super viewWillDisappear:animated]; +// [_timer invalidate]; +//} #pragma mark - CLLocationManagerDelegate -(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { diff --git a/LifeLog/LifeLog/TodayViewController.m b/LifeLog/LifeLog/TodayViewController.m index a47e951..43bb1a7 100644 --- a/LifeLog/LifeLog/TodayViewController.m +++ b/LifeLog/LifeLog/TodayViewController.m @@ -77,6 +77,22 @@ static NSInteger numberTotal = 10000; [self.navigationController popViewControllerAnimated:YES]; } +- (IBAction)buttonShareTouchUpInside:(id)sender { + +} + +- (IBAction)buttonFacebookTouchUpInside:(id)sender { + NSString * content = @"Finish 500 steps"; + TodayViewController __weak *weakSelf = self; + [Utilities shareFacebook:content withViewController:weakSelf]; +} + +- (IBAction)buttonLineTouchUpInside:(id)sender { + NSString * content = @"Finish 500 steps"; + TodayViewController __weak *weakSelf = self; + [Utilities shareLine:content withViewController:weakSelf]; +} + #pragma mark - Functions Private - (void)countStep { diff --git a/LifeLog/LifeLog/TodayViewController.xib b/LifeLog/LifeLog/TodayViewController.xib index 664c521..64743e7 100644 --- a/LifeLog/LifeLog/TodayViewController.xib +++ b/LifeLog/LifeLog/TodayViewController.xib @@ -1,5 +1,5 @@ - + @@ -67,6 +67,12 @@ + @@ -74,6 +80,12 @@ + @@ -81,6 +93,12 @@ + @@ -195,25 +213,37 @@ + + + + + + + + + + + +