Commit da40f74562216b71a4de342a9c2f80b10d2dfe20

Authored by nvtu11790@gmail.com
1 parent 7fc917f3b6

Finish group detail screen, load tweet list, friend list, join group

Showing 8 changed files with 132 additions and 35 deletions Side-by-side Diff

LifeLog/LifeLog/GroupDetailViewController.m
... ... @@ -49,14 +49,33 @@
49 49 [self.btJoinGrp setHidden:_curGroup.isJoin];
50 50 NSString *mode = @"";
51 51 if(_curGroup.runMode) {
52   - mode = [mode stringByAppendingString:@"ランニング\n"];
  52 + mode = [mode stringByAppendingString:NSLocalizedString(@"lifelog.grDetail.mode.running", nil)];
  53 + mode = [mode stringByAppendingString:@"\n"];
53 54 }
54 55 if(_curGroup.walkMode) {
55   - mode = [mode stringByAppendingString:@"ウォーキング\n"];
  56 + mode = [mode stringByAppendingString:NSLocalizedString(@"lifelog.grDetail.mode.walking", nil)];
  57 + mode = [mode stringByAppendingString:@"\n"];
56 58 }
57 59 if(_curGroup.bikeMode) {
58   - mode = [mode stringByAppendingString:@"バイク\n"];
  60 + mode = [mode stringByAppendingString:NSLocalizedString(@"lifelog.grDetail.mode.bike", nil)];
  61 + mode = [mode stringByAppendingString:@"\n"];
59 62 }
  63 + if(_curGroup.stepMode) {
  64 + mode = [mode stringByAppendingString:NSLocalizedString(@"lifelog.grDetail.mode.step", nil)];
  65 + mode = [mode stringByAppendingString:@"\n"];
  66 + }
  67 + if(_curGroup.beginMode) {
  68 + mode = [mode stringByAppendingString:NSLocalizedString(@"lifelog.grDetail.mode.begin", nil)];
  69 + mode = [mode stringByAppendingString:@"\n"];
  70 + }
  71 + if(_curGroup.gymMode) {
  72 + mode = [mode stringByAppendingString:NSLocalizedString(@"lifelog.grDetail.mode.gym", nil)];
  73 + mode = [mode stringByAppendingString:@"\n"];
  74 + }
  75 + NSRange range = [mode rangeOfString:@"\n" options:NSBackwardsSearch];
  76 + if(range.length > 0) {
  77 + mode = [mode stringByReplacingOccurrencesOfString:@"\n" withString:@"" options:NSBackwardsSearch range:range];
  78 + }
60 79 self.lbbGrpActiveMode.text = mode;
61 80 }
62 81 }
63 82  
64 83  
65 84  
... ... @@ -68,19 +87,30 @@
68 87  
69 88 - (IBAction)clickSwitch:(AutoTransButton *)sender {
70 89 isMemberList = !isMemberList;
  90 + if(isMemberList) {
  91 + [sender setTitle:NSLocalizedString(@"lifelog.grDetail.bt.viewTweet", nil) forState:UIControlStateNormal];
  92 + }
  93 + else {
  94 + [sender setTitle:NSLocalizedString(@"lifelog.grDetail.bt.viewMem", nil) forState:UIControlStateNormal];
  95 + }
  96 + [sender setUserInteractionEnabled:false];
71 97 [self resetData];
72 98 }
73 99  
74 100 - (IBAction)clickJoin:(AutoTransButton *)sender {
75 101 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken];
76 102 MBProgressHUD *hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true];
77   - [[ServerAPI server] requestTweetsList:token groupID:_curGroup.groupID withPage:_curPage CompletionHandler:^(NSArray *array, NSError *error){
  103 + [[ServerAPI server] requestJoinGroup:token groupID:_curGroup.groupID CompletionHandler:^(NSError *error){
  104 + GroupDetailViewController __weak *weakSelf = self;
78 105 dispatch_async(dispatch_get_main_queue(), ^{
79   - if(hudView != nil) {
80   - [hudView hideAnimated:true];
  106 + [hudView hideAnimated:true];
  107 + if(error == nil) {
  108 + _curGroup.isJoin = true;
  109 + [weakSelf.btJoinGrp setHidden:_curGroup.isJoin];
81 110 }
82 111 });
83 112 }];
  113 +
84 114 }
85 115  
86 116  
... ... @@ -93,6 +123,9 @@
93 123 if(object.avatar && ![object.avatar isKindOfClass:[NSNull class]]) {
94 124 [cell.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatar]]];
95 125 }
  126 + else {
  127 + [cell.imgAvatar setImage:[UIImage imageNamed:@"avatar_default"]];
  128 + }
96 129 cell.lblUsername.text = @"";
97 130 cell.lblDateTime.text = @"";
98 131 cell.lblDes.text = object.userName;
... ... @@ -105,6 +138,9 @@
105 138 if(object.avatar && ![object.avatar isKindOfClass:[NSNull class]]) {
106 139 [cell.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatar]]];
107 140 }
  141 + else {
  142 + [cell.imgAvatar setImage:[UIImage imageNamed:@"avatar_default"]];
  143 + }
108 144 cell.lblDateTime.text = [Utilities stringFromDate:object.createDate withFormat:@"YYYY/MM/dd hh:mm"];
109 145 cell.lblUsername.text = object.userName;
110 146 cell.lblDes.text = object.content;
... ... @@ -123,7 +159,7 @@
123 159 MBProgressHUD *hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true];
124 160 [[ServerAPI server] getGroupDetail:token withGroupID:_curGroup.groupID CompletionHandler:^(GroupObject *object, NSError *error) {
125 161 GroupDetailViewController __weak *weakSelf = self;
126   - _curGroup = object;
  162 + [_curGroup updateDate:object];
127 163 dispatch_async(dispatch_get_main_queue(), ^{
128 164 [hudView hideAnimated:true];
129 165 [weakSelf setupView];
... ... @@ -149,6 +185,7 @@
149 185 });
150 186 GroupDetailViewController __weak *weakSelf = self;
151 187 [weakSelf updateTableData:array error:error];
  188 + [weakSelf.btSwitch setUserInteractionEnabled:true];
152 189 }];
153 190 }
154 191 else {
... ... @@ -160,6 +197,7 @@
160 197 });
161 198 GroupDetailViewController __weak *weakSelf = self;
162 199 [weakSelf updateTableData:array error:error];
  200 + [weakSelf.btSwitch setUserInteractionEnabled:true];
163 201 }];
164 202 }
165 203 }
LifeLog/LifeLog/GroupDetailViewController.xib
1 1 <?xml version="1.0" encoding="UTF-8"?>
2   -<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12121" systemVersion="16A323" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
  2 +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12118" systemVersion="16D32" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
3 3 <device id="retina4_7" orientation="portrait">
4 4 <adaptation id="fullscreen"/>
5 5 </device>
6 6 <dependencies>
7   - <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
  7 + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12086"/>
8 8 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
9 9 </dependencies>
10 10 <objects>
LifeLog/LifeLog/GroupObject.h
... ... @@ -13,6 +13,13 @@
13 13 @property (nonatomic) int groupID;
14 14 @property (nonatomic) int numSearch;
15 15  
  16 +@property (nonatomic) int walkGoal;
  17 +@property (nonatomic) int runGoal;
  18 +@property (nonatomic) int bikeGoal;
  19 +@property (nonatomic) int stepGoal;
  20 +@property (nonatomic) int gymGoal;
  21 +@property (nonatomic) int beginGoal;
  22 +
16 23 @property (nonatomic) BOOL isJoin;
17 24 @property (nonatomic) BOOL walkMode;
18 25 @property (nonatomic) BOOL runMode;
... ... @@ -28,6 +35,7 @@
28 35 @property (nonatomic, strong) NSDate * createDate;
29 36  
30 37 -(id) initWithData : (NSDictionary *) dict;
31   -
  38 +-(id) initWithData : (NSDictionary *) dict andGroupID : (int) groupID;
  39 +-(void) updateDate : (GroupObject *) obj;
32 40 @end
LifeLog/LifeLog/GroupObject.m
... ... @@ -10,17 +10,64 @@
10 10 #import "Utilities.h"
11 11  
12 12 @implementation GroupObject
13   -
14 13 -(id) initWithData : (NSDictionary *) dict {
15 14 if([dict objectForKey:@"group_id"] != nil) {
16 15 self.groupID = [dict[@"group_id"] intValue];
17 16 }
18   - if([dict objectForKey:@"group_name"] != nil) {
19   - self.name = dict[@"group_name"];
20   - }
21 17 if([dict objectForKey:@"group_avatar"] != nil) {
22 18 self.avatar = dict[@"group_avatar"];
23 19 }
  20 + if([dict objectForKey:@"created_at"] != nil) {
  21 + NSString *dateString = dict[@"created_at"];
  22 + self.createDate = [Utilities dateFromString:dateString withFormat:@"yyyy-MM-dd hh:mm:ss"];
  23 + }
  24 + else {
  25 + self.createDate = [NSDate date];
  26 + }
  27 + if([dict objectForKey:@"num_search"] != nil) {
  28 + self.numSearch = [dict[@"num_search"] intValue];
  29 + }
  30 + [self parseData:dict];
  31 + return self;
  32 +}
  33 +
  34 +-(id) initWithData : (NSDictionary *) dict andGroupID : (int) groupID {
  35 + self.groupID = groupID;
  36 + if([dict objectForKey:@"join_group"] != nil && ![[dict objectForKey:@"join_group"] isKindOfClass:[NSNull class]]) {
  37 + self.isJoin = [dict[@"join_group"] boolValue];
  38 + }
  39 + if([dict objectForKey:@"goal"] != nil && ![[dict objectForKey:@"goal"] isKindOfClass:[NSNull class]]) {
  40 + self.goal = dict[@"goal"];
  41 + }
  42 + else {
  43 + self.goal = @"";
  44 + }
  45 + if([dict objectForKey:@"walk_mode_goal"] != nil && ![[dict objectForKey:@"walk_mode_goal"] isKindOfClass:[NSNull class]]) {
  46 + self.walkGoal = [dict[@"walk_mode_goal"] intValue];
  47 + }
  48 + if([dict objectForKey:@"run_mode_goal"] != nil && ![[dict objectForKey:@"run_mode_goal"] isKindOfClass:[NSNull class]]) {
  49 + self.runGoal = [dict[@"run_mode_goal"] intValue];
  50 + }
  51 + if([dict objectForKey:@"bike_mode_goal"] != nil && ![[dict objectForKey:@"bike_mode_goal"] isKindOfClass:[NSNull class]]) {
  52 + self.bikeGoal = [dict[@"bike_mode_goal"] intValue];
  53 + }
  54 + if([dict objectForKey:@"step_mode_goal"] != nil && ![[dict objectForKey:@"step_mode_goal"] isKindOfClass:[NSNull class]]) {
  55 + self.stepGoal = [dict[@"step_mode_goal"] intValue];
  56 + }
  57 + if([dict objectForKey:@"gym_mode_goal"] != nil && ![[dict objectForKey:@"gym_mode_goal"] isKindOfClass:[NSNull class]]) {
  58 + self.gymGoal = [dict[@"gym_mode_goal"] intValue];
  59 + }
  60 + if([dict objectForKey:@"beginer_mode_goal"] != nil && ![[dict objectForKey:@"beginer_mode_goal"] isKindOfClass:[NSNull class]]) {
  61 + self.beginGoal = [dict[@"beginer_mode_goal"] intValue];
  62 + }
  63 + [self parseData:dict];
  64 + return self;
  65 +}
  66 +
  67 +-(void) parseData : (NSDictionary *) dict {
  68 + if([dict objectForKey:@"group_name"] != nil) {
  69 + self.name = dict[@"group_name"];
  70 + }
24 71 if([dict objectForKey:@"walk_mode_active"] != nil && ![[dict objectForKey:@"walk_mode_active"] isKindOfClass:[NSNull class]]) {
25 72 self.walkMode = [dict[@"walk_mode_active"] boolValue];
26 73 }
... ... @@ -39,26 +86,24 @@
39 86 if([dict objectForKey:@"beginer_mode_active"] != nil && ![[dict objectForKey:@"beginer_mode_active"] isKindOfClass:[NSNull class]]) {
40 87 self.beginMode = [dict[@"beginer_mode_active"] boolValue];
41 88 }
42   - if([dict objectForKey:@"join_group"] != nil && ![[dict objectForKey:@"join_group"] isKindOfClass:[NSNull class]]) {
43   - self.isJoin = [dict[@"join_group"] boolValue];
44   - }
45   - if([dict objectForKey:@"created_at"] != nil) {
46   - NSString *dateString = dict[@"created_at"];
47   - self.createDate = [Utilities dateFromString:dateString withFormat:@"yyyy-MM-dd hh:mm:ss"];
48   - }
49   - else {
50   - self.createDate = [NSDate date];
51   - }
52   - if([dict objectForKey:@"num_search"] != nil) {
53   - self.numSearch = [dict[@"num_search"] intValue];
54   - }
55   - if([dict objectForKey:@"goal"] != nil && ![[dict objectForKey:@"goal"] isKindOfClass:[NSNull class]]) {
56   - self.goal = dict[@"goal"];
57   - }
58   - else {
59   - self.goal = @"";
60   - }
61   - return self;
  89 +}
  90 +
  91 +-(void) updateDate : (GroupObject *) obj {
  92 + self.name = obj.name;
  93 + self.walkMode = obj.walkMode;
  94 + self.runMode = obj.runMode;
  95 + self.bikeMode = obj.bikeMode;
  96 + self.stepMode = obj.stepMode;
  97 + self.gymMode = obj.gymMode;
  98 + self.beginMode = obj.beginMode;
  99 + self.isJoin = obj.isJoin;
  100 + self.goal = obj.goal;
  101 + self.walkGoal = obj.walkGoal;
  102 + self.runGoal = obj.runGoal;
  103 + self.bikeGoal = obj.bikeGoal;
  104 + self.stepGoal = obj.stepGoal;
  105 + self.gymGoal = obj.gymGoal;
  106 + self.beginGoal = obj.beginGoal;
62 107 }
63 108  
64 109 @end
LifeLog/LifeLog/Localizable.strings
No preview for this file type
LifeLog/LifeLog/SNSViewController.m
... ... @@ -57,6 +57,9 @@
57 57 if(object.avatar && ![object.avatar isKindOfClass:[NSNull class]]) {
58 58 [cell.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatar]]];
59 59 }
  60 + else {
  61 + [cell.imgAvatar setImage:[UIImage imageNamed:@"avatar_default"]];
  62 + }
60 63 cell.lblDateTime.text = [Utilities stringFromDate:object.createDate withFormat:@"YYYY/MM/dd hh:mm"];
61 64 cell.lblUsername.text = object.userName;
62 65 cell.lblDes.text = object.content;
LifeLog/LifeLog/SearchGroupViewController.m
... ... @@ -56,6 +56,9 @@
56 56 if(object.avatar && ![object.avatar isKindOfClass:[NSNull class]]) {
57 57 [cell.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatar]]];
58 58 }
  59 + else {
  60 + [cell.imgAvatar setImage:[UIImage imageNamed:@"avatar_default"]];
  61 + }
59 62 cell.lblName.text = object.name;
60 63 return cell;
61 64 }
LifeLog/LifeLog/ServerAPI.m
... ... @@ -664,7 +664,7 @@
664 664 if (status == 1) { // status = 1 success
665 665 if(dataResult[@"result"] != nil) {
666 666 NSArray * array = dataResult[@"result"];
667   - GroupObject * object = [[GroupObject alloc] initWithData:array[0]];
  667 + GroupObject * object = [[GroupObject alloc] initWithData:array[0] andGroupID:groupID];
668 668 completion(object, nil);
669 669 }
670 670 else {