From da40f74562216b71a4de342a9c2f80b10d2dfe20 Mon Sep 17 00:00:00 2001 From: nvtu Date: Fri, 18 Aug 2017 23:36:48 +0700 Subject: [PATCH] Finish group detail screen, load tweet list, friend list, join group --- LifeLog/LifeLog/GroupDetailViewController.m | 52 ++++++++++++-- LifeLog/LifeLog/GroupDetailViewController.xib | 4 +- LifeLog/LifeLog/GroupObject.h | 10 ++- LifeLog/LifeLog/GroupObject.m | 93 +++++++++++++++++++------- LifeLog/LifeLog/Localizable.strings | Bin 4660 -> 5005 bytes LifeLog/LifeLog/SNSViewController.m | 3 + LifeLog/LifeLog/SearchGroupViewController.m | 3 + LifeLog/LifeLog/ServerAPI.m | 2 +- 8 files changed, 132 insertions(+), 35 deletions(-) diff --git a/LifeLog/LifeLog/GroupDetailViewController.m b/LifeLog/LifeLog/GroupDetailViewController.m index 51a40c4..8b037fe 100644 --- a/LifeLog/LifeLog/GroupDetailViewController.m +++ b/LifeLog/LifeLog/GroupDetailViewController.m @@ -49,13 +49,32 @@ [self.btJoinGrp setHidden:_curGroup.isJoin]; NSString *mode = @""; if(_curGroup.runMode) { - mode = [mode stringByAppendingString:@"ランニング\n"]; + mode = [mode stringByAppendingString:NSLocalizedString(@"lifelog.grDetail.mode.running", nil)]; + mode = [mode stringByAppendingString:@"\n"]; } if(_curGroup.walkMode) { - mode = [mode stringByAppendingString:@"ウォーキング\n"]; + mode = [mode stringByAppendingString:NSLocalizedString(@"lifelog.grDetail.mode.walking", nil)]; + mode = [mode stringByAppendingString:@"\n"]; } if(_curGroup.bikeMode) { - mode = [mode stringByAppendingString:@"バイク\n"]; + mode = [mode stringByAppendingString:NSLocalizedString(@"lifelog.grDetail.mode.bike", nil)]; + mode = [mode stringByAppendingString:@"\n"]; + } + if(_curGroup.stepMode) { + mode = [mode stringByAppendingString:NSLocalizedString(@"lifelog.grDetail.mode.step", nil)]; + mode = [mode stringByAppendingString:@"\n"]; + } + if(_curGroup.beginMode) { + mode = [mode stringByAppendingString:NSLocalizedString(@"lifelog.grDetail.mode.begin", nil)]; + mode = [mode stringByAppendingString:@"\n"]; + } + if(_curGroup.gymMode) { + mode = [mode stringByAppendingString:NSLocalizedString(@"lifelog.grDetail.mode.gym", nil)]; + mode = [mode stringByAppendingString:@"\n"]; + } + NSRange range = [mode rangeOfString:@"\n" options:NSBackwardsSearch]; + if(range.length > 0) { + mode = [mode stringByReplacingOccurrencesOfString:@"\n" withString:@"" options:NSBackwardsSearch range:range]; } self.lbbGrpActiveMode.text = mode; } @@ -68,19 +87,30 @@ - (IBAction)clickSwitch:(AutoTransButton *)sender { isMemberList = !isMemberList; + if(isMemberList) { + [sender setTitle:NSLocalizedString(@"lifelog.grDetail.bt.viewTweet", nil) forState:UIControlStateNormal]; + } + else { + [sender setTitle:NSLocalizedString(@"lifelog.grDetail.bt.viewMem", nil) forState:UIControlStateNormal]; + } + [sender setUserInteractionEnabled:false]; [self resetData]; } - (IBAction)clickJoin:(AutoTransButton *)sender { NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken]; MBProgressHUD *hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true]; - [[ServerAPI server] requestTweetsList:token groupID:_curGroup.groupID withPage:_curPage CompletionHandler:^(NSArray *array, NSError *error){ + [[ServerAPI server] requestJoinGroup:token groupID:_curGroup.groupID CompletionHandler:^(NSError *error){ + GroupDetailViewController __weak *weakSelf = self; dispatch_async(dispatch_get_main_queue(), ^{ - if(hudView != nil) { - [hudView hideAnimated:true]; + [hudView hideAnimated:true]; + if(error == nil) { + _curGroup.isJoin = true; + [weakSelf.btJoinGrp setHidden:_curGroup.isJoin]; } }); }]; + } @@ -93,6 +123,9 @@ if(object.avatar && ![object.avatar isKindOfClass:[NSNull class]]) { [cell.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatar]]]; } + else { + [cell.imgAvatar setImage:[UIImage imageNamed:@"avatar_default"]]; + } cell.lblUsername.text = @""; cell.lblDateTime.text = @""; cell.lblDes.text = object.userName; @@ -105,6 +138,9 @@ if(object.avatar && ![object.avatar isKindOfClass:[NSNull class]]) { [cell.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatar]]]; } + else { + [cell.imgAvatar setImage:[UIImage imageNamed:@"avatar_default"]]; + } cell.lblDateTime.text = [Utilities stringFromDate:object.createDate withFormat:@"YYYY/MM/dd hh:mm"]; cell.lblUsername.text = object.userName; cell.lblDes.text = object.content; @@ -123,7 +159,7 @@ MBProgressHUD *hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true]; [[ServerAPI server] getGroupDetail:token withGroupID:_curGroup.groupID CompletionHandler:^(GroupObject *object, NSError *error) { GroupDetailViewController __weak *weakSelf = self; - _curGroup = object; + [_curGroup updateDate:object]; dispatch_async(dispatch_get_main_queue(), ^{ [hudView hideAnimated:true]; [weakSelf setupView]; @@ -149,6 +185,7 @@ }); GroupDetailViewController __weak *weakSelf = self; [weakSelf updateTableData:array error:error]; + [weakSelf.btSwitch setUserInteractionEnabled:true]; }]; } else { @@ -160,6 +197,7 @@ }); GroupDetailViewController __weak *weakSelf = self; [weakSelf updateTableData:array error:error]; + [weakSelf.btSwitch setUserInteractionEnabled:true]; }]; } } diff --git a/LifeLog/LifeLog/GroupDetailViewController.xib b/LifeLog/LifeLog/GroupDetailViewController.xib index af6c811..2d48257 100644 --- a/LifeLog/LifeLog/GroupDetailViewController.xib +++ b/LifeLog/LifeLog/GroupDetailViewController.xib @@ -1,10 +1,10 @@ - + - + diff --git a/LifeLog/LifeLog/GroupObject.h b/LifeLog/LifeLog/GroupObject.h index 8a6e0ce..804e9b0 100644 --- a/LifeLog/LifeLog/GroupObject.h +++ b/LifeLog/LifeLog/GroupObject.h @@ -13,6 +13,13 @@ @property (nonatomic) int groupID; @property (nonatomic) int numSearch; +@property (nonatomic) int walkGoal; +@property (nonatomic) int runGoal; +@property (nonatomic) int bikeGoal; +@property (nonatomic) int stepGoal; +@property (nonatomic) int gymGoal; +@property (nonatomic) int beginGoal; + @property (nonatomic) BOOL isJoin; @property (nonatomic) BOOL walkMode; @property (nonatomic) BOOL runMode; @@ -28,5 +35,6 @@ @property (nonatomic, strong) NSDate * createDate; -(id) initWithData : (NSDictionary *) dict; - +-(id) initWithData : (NSDictionary *) dict andGroupID : (int) groupID; +-(void) updateDate : (GroupObject *) obj; @end diff --git a/LifeLog/LifeLog/GroupObject.m b/LifeLog/LifeLog/GroupObject.m index 1bfae97..598c81a 100644 --- a/LifeLog/LifeLog/GroupObject.m +++ b/LifeLog/LifeLog/GroupObject.m @@ -10,17 +10,64 @@ #import "Utilities.h" @implementation GroupObject - -(id) initWithData : (NSDictionary *) dict { if([dict objectForKey:@"group_id"] != nil) { self.groupID = [dict[@"group_id"] intValue]; } - if([dict objectForKey:@"group_name"] != nil) { - self.name = dict[@"group_name"]; - } if([dict objectForKey:@"group_avatar"] != nil) { self.avatar = dict[@"group_avatar"]; } + if([dict objectForKey:@"created_at"] != nil) { + NSString *dateString = dict[@"created_at"]; + self.createDate = [Utilities dateFromString:dateString withFormat:@"yyyy-MM-dd hh:mm:ss"]; + } + else { + self.createDate = [NSDate date]; + } + if([dict objectForKey:@"num_search"] != nil) { + self.numSearch = [dict[@"num_search"] intValue]; + } + [self parseData:dict]; + return self; +} + +-(id) initWithData : (NSDictionary *) dict andGroupID : (int) groupID { + self.groupID = groupID; + if([dict objectForKey:@"join_group"] != nil && ![[dict objectForKey:@"join_group"] isKindOfClass:[NSNull class]]) { + self.isJoin = [dict[@"join_group"] boolValue]; + } + if([dict objectForKey:@"goal"] != nil && ![[dict objectForKey:@"goal"] isKindOfClass:[NSNull class]]) { + self.goal = dict[@"goal"]; + } + else { + self.goal = @""; + } + if([dict objectForKey:@"walk_mode_goal"] != nil && ![[dict objectForKey:@"walk_mode_goal"] isKindOfClass:[NSNull class]]) { + self.walkGoal = [dict[@"walk_mode_goal"] intValue]; + } + if([dict objectForKey:@"run_mode_goal"] != nil && ![[dict objectForKey:@"run_mode_goal"] isKindOfClass:[NSNull class]]) { + self.runGoal = [dict[@"run_mode_goal"] intValue]; + } + if([dict objectForKey:@"bike_mode_goal"] != nil && ![[dict objectForKey:@"bike_mode_goal"] isKindOfClass:[NSNull class]]) { + self.bikeGoal = [dict[@"bike_mode_goal"] intValue]; + } + if([dict objectForKey:@"step_mode_goal"] != nil && ![[dict objectForKey:@"step_mode_goal"] isKindOfClass:[NSNull class]]) { + self.stepGoal = [dict[@"step_mode_goal"] intValue]; + } + if([dict objectForKey:@"gym_mode_goal"] != nil && ![[dict objectForKey:@"gym_mode_goal"] isKindOfClass:[NSNull class]]) { + self.gymGoal = [dict[@"gym_mode_goal"] intValue]; + } + if([dict objectForKey:@"beginer_mode_goal"] != nil && ![[dict objectForKey:@"beginer_mode_goal"] isKindOfClass:[NSNull class]]) { + self.beginGoal = [dict[@"beginer_mode_goal"] intValue]; + } + [self parseData:dict]; + return self; +} + +-(void) parseData : (NSDictionary *) dict { + if([dict objectForKey:@"group_name"] != nil) { + self.name = dict[@"group_name"]; + } if([dict objectForKey:@"walk_mode_active"] != nil && ![[dict objectForKey:@"walk_mode_active"] isKindOfClass:[NSNull class]]) { self.walkMode = [dict[@"walk_mode_active"] boolValue]; } @@ -39,26 +86,24 @@ if([dict objectForKey:@"beginer_mode_active"] != nil && ![[dict objectForKey:@"beginer_mode_active"] isKindOfClass:[NSNull class]]) { self.beginMode = [dict[@"beginer_mode_active"] boolValue]; } - if([dict objectForKey:@"join_group"] != nil && ![[dict objectForKey:@"join_group"] isKindOfClass:[NSNull class]]) { - self.isJoin = [dict[@"join_group"] boolValue]; - } - if([dict objectForKey:@"created_at"] != nil) { - NSString *dateString = dict[@"created_at"]; - self.createDate = [Utilities dateFromString:dateString withFormat:@"yyyy-MM-dd hh:mm:ss"]; - } - else { - self.createDate = [NSDate date]; - } - if([dict objectForKey:@"num_search"] != nil) { - self.numSearch = [dict[@"num_search"] intValue]; - } - if([dict objectForKey:@"goal"] != nil && ![[dict objectForKey:@"goal"] isKindOfClass:[NSNull class]]) { - self.goal = dict[@"goal"]; - } - else { - self.goal = @""; - } - return self; +} + +-(void) updateDate : (GroupObject *) obj { + self.name = obj.name; + self.walkMode = obj.walkMode; + self.runMode = obj.runMode; + self.bikeMode = obj.bikeMode; + self.stepMode = obj.stepMode; + self.gymMode = obj.gymMode; + self.beginMode = obj.beginMode; + self.isJoin = obj.isJoin; + self.goal = obj.goal; + self.walkGoal = obj.walkGoal; + self.runGoal = obj.runGoal; + self.bikeGoal = obj.bikeGoal; + self.stepGoal = obj.stepGoal; + self.gymGoal = obj.gymGoal; + self.beginGoal = obj.beginGoal; } @end diff --git a/LifeLog/LifeLog/Localizable.strings b/LifeLog/LifeLog/Localizable.strings index 38b01aab65f54aeebf980ec935ea513bbc0b389e..177caed1a834b88fd14c005039ee392d3a0fb082 100644 GIT binary patch delta 336 zcmdm@(yP9KTS&PqGqpUVJT2Y(*BX|{$4%XnKMOk6 zE9GRSrRL

!laDq?ROR=IG_-r=;o?mFDGT=A}b5uYBCR`EheMh-})xpk&R3LsxlX zPBvUu)3V1+K#hAIH?4(e#HOzvVqH>Zb}H1a2_T0yt;ePqqPDmswE&{FY3JkSw#UuQ rkDI6CR-Tlao|y+#zvFT90#ua>$evEG%mpia+A;U({^l1Atw6N^gvpG; delta 11 ScmeBG-=eaCTWGSIkR|{Z>jQ28 diff --git a/LifeLog/LifeLog/SNSViewController.m b/LifeLog/LifeLog/SNSViewController.m index d1872d0..801f367 100644 --- a/LifeLog/LifeLog/SNSViewController.m +++ b/LifeLog/LifeLog/SNSViewController.m @@ -57,6 +57,9 @@ if(object.avatar && ![object.avatar isKindOfClass:[NSNull class]]) { [cell.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatar]]]; } + else { + [cell.imgAvatar setImage:[UIImage imageNamed:@"avatar_default"]]; + } cell.lblDateTime.text = [Utilities stringFromDate:object.createDate withFormat:@"YYYY/MM/dd hh:mm"]; cell.lblUsername.text = object.userName; cell.lblDes.text = object.content; diff --git a/LifeLog/LifeLog/SearchGroupViewController.m b/LifeLog/LifeLog/SearchGroupViewController.m index 7e51ca3..9c7944a 100644 --- a/LifeLog/LifeLog/SearchGroupViewController.m +++ b/LifeLog/LifeLog/SearchGroupViewController.m @@ -56,6 +56,9 @@ if(object.avatar && ![object.avatar isKindOfClass:[NSNull class]]) { [cell.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatar]]]; } + else { + [cell.imgAvatar setImage:[UIImage imageNamed:@"avatar_default"]]; + } cell.lblName.text = object.name; return cell; } diff --git a/LifeLog/LifeLog/ServerAPI.m b/LifeLog/LifeLog/ServerAPI.m index d928057..c0f94c9 100644 --- a/LifeLog/LifeLog/ServerAPI.m +++ b/LifeLog/LifeLog/ServerAPI.m @@ -664,7 +664,7 @@ NSURLSessionDataTask * searchTask; if (status == 1) { // status = 1 success if(dataResult[@"result"] != nil) { NSArray * array = dataResult[@"result"]; - GroupObject * object = [[GroupObject alloc] initWithData:array[0]]; + GroupObject * object = [[GroupObject alloc] initWithData:array[0] andGroupID:groupID]; completion(object, nil); } else { -- 1.8.5.3