Commit 7fc917f3b6bf31112dc61d5d95884d3d7861da19
1 parent
0db82ed0b5
Exists in
master
and in
1 other branch
add get member of group API, join group API.
Showing 15 changed files with 282 additions and 47 deletions Side-by-side Diff
- LifeLog/LifeLog.xcodeproj/project.pbxproj
- LifeLog/LifeLog/Entities.h
- LifeLog/LifeLog/GroupDetailViewController.h
- LifeLog/LifeLog/GroupDetailViewController.m
- LifeLog/LifeLog/GroupDetailViewController.xib
- LifeLog/LifeLog/HistoryViewController.xib
- LifeLog/LifeLog/MemberObject.h
- LifeLog/LifeLog/MemberObject.m
- LifeLog/LifeLog/RankingViewController.xib
- LifeLog/LifeLog/SNSViewController.m
- LifeLog/LifeLog/SNSViewController.xib
- LifeLog/LifeLog/ServerAPI.h
- LifeLog/LifeLog/ServerAPI.m
- LifeLog/LifeLog/TweetObject.h
- LifeLog/LifeLog/TweetObject.m
LifeLog/LifeLog.xcodeproj/project.pbxproj
| ... | ... | @@ -57,6 +57,7 @@ |
| 57 | 57 | E9373E471F3596940059355A /* AutoTransLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E461F3596940059355A /* AutoTransLabel.m */; }; |
| 58 | 58 | E9373E4A1F35AA180059355A /* HistoryObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E491F35AA180059355A /* HistoryObject.m */; }; |
| 59 | 59 | E9373E4D1F361A230059355A /* HistoryGraphObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E4C1F361A230059355A /* HistoryGraphObject.m */; }; |
| 60 | + E9497FD51F46EC1100E6AF8D /* MemberObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9497FD41F46EC1100E6AF8D /* MemberObject.m */; }; | |
| 60 | 61 | E9682E2E1F39675A00FE05A2 /* RankingTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */; }; |
| 61 | 62 | E9682E2F1F39675A00FE05A2 /* RankingTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */; }; |
| 62 | 63 | E968550A1F3C444900317CEF /* AutoTransButton.m in Sources */ = {isa = PBXBuildFile; fileRef = E96855091F3C444900317CEF /* AutoTransButton.m */; }; |
| ... | ... | @@ -181,6 +182,8 @@ |
| 181 | 182 | E9373E491F35AA180059355A /* HistoryObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryObject.m; sourceTree = "<group>"; }; |
| 182 | 183 | E9373E4B1F361A230059355A /* HistoryGraphObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryGraphObject.h; sourceTree = "<group>"; }; |
| 183 | 184 | E9373E4C1F361A230059355A /* HistoryGraphObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryGraphObject.m; sourceTree = "<group>"; }; |
| 185 | + E9497FD31F46EC1100E6AF8D /* MemberObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MemberObject.h; sourceTree = "<group>"; }; | |
| 186 | + E9497FD41F46EC1100E6AF8D /* MemberObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MemberObject.m; sourceTree = "<group>"; }; | |
| 184 | 187 | E9682E2B1F39675A00FE05A2 /* RankingTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RankingTableViewCell.h; sourceTree = "<group>"; }; |
| 185 | 188 | E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RankingTableViewCell.m; sourceTree = "<group>"; }; |
| 186 | 189 | E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RankingTableViewCell.xib; sourceTree = "<group>"; }; |
| ... | ... | @@ -281,6 +284,8 @@ |
| 281 | 284 | E9D909201F3D559D004CF99F /* TweetObject.m */, |
| 282 | 285 | E933E6721F3E0E4E002926F5 /* GroupObject.h */, |
| 283 | 286 | E933E6731F3E0E4E002926F5 /* GroupObject.m */, |
| 287 | + E9497FD31F46EC1100E6AF8D /* MemberObject.h */, | |
| 288 | + E9497FD41F46EC1100E6AF8D /* MemberObject.m */, | |
| 284 | 289 | ); |
| 285 | 290 | name = Model; |
| 286 | 291 | sourceTree = "<group>"; |
| ... | ... | @@ -308,6 +313,7 @@ |
| 308 | 313 | 6E84E3981F27A703001EB88E /* LifeLogUITests */, |
| 309 | 314 | DE8269E957EA47CD771BAB33 /* Pods */, |
| 310 | 315 | 020C1721B642EF36F31E1BB4 /* Frameworks */, |
| 316 | + 783929CF869F5081762B3DCA /* Products */, | |
| 311 | 317 | ); |
| 312 | 318 | sourceTree = "<group>"; |
| 313 | 319 | }; |
| ... | ... | @@ -430,7 +436,7 @@ |
| 430 | 436 | 6E84E3AC1F27A954001EB88E /* SNS */ = { |
| 431 | 437 | isa = PBXGroup; |
| 432 | 438 | children = ( |
| 433 | - E933E6751F4050E6002926F5 /* GrouDetail */, | |
| 439 | + E933E6751F4050E6002926F5 /* GroupDetail */, | |
| 434 | 440 | E933E6671F3E0479002926F5 /* SeachGroup */, |
| 435 | 441 | 6E84E3BC1F27A9B1001EB88E /* SNSViewController.h */, |
| 436 | 442 | 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */, |
| ... | ... | @@ -491,6 +497,13 @@ |
| 491 | 497 | name = Common; |
| 492 | 498 | sourceTree = "<group>"; |
| 493 | 499 | }; |
| 500 | + 783929CF869F5081762B3DCA /* Products */ = { | |
| 501 | + isa = PBXGroup; | |
| 502 | + children = ( | |
| 503 | + ); | |
| 504 | + name = Products; | |
| 505 | + sourceTree = "<group>"; | |
| 506 | + }; | |
| 494 | 507 | 9CA8AEE61F31BB1200C5FC74 /* ConfirmForgetPass */ = { |
| 495 | 508 | isa = PBXGroup; |
| 496 | 509 | children = ( |
| 497 | 510 | |
| ... | ... | @@ -547,14 +560,14 @@ |
| 547 | 560 | name = SeachGroup; |
| 548 | 561 | sourceTree = "<group>"; |
| 549 | 562 | }; |
| 550 | - E933E6751F4050E6002926F5 /* GrouDetail */ = { | |
| 563 | + E933E6751F4050E6002926F5 /* GroupDetail */ = { | |
| 551 | 564 | isa = PBXGroup; |
| 552 | 565 | children = ( |
| 553 | 566 | E933E6761F40513C002926F5 /* GroupDetailViewController.h */, |
| 554 | 567 | E933E6771F40513C002926F5 /* GroupDetailViewController.m */, |
| 555 | 568 | E933E6781F40513C002926F5 /* GroupDetailViewController.xib */, |
| 556 | 569 | ); |
| 557 | - name = GrouDetail; | |
| 570 | + name = GroupDetail; | |
| 558 | 571 | sourceTree = "<group>"; |
| 559 | 572 | }; |
| 560 | 573 | E9373E441F35966D0059355A /* AutoTranslateView */ = { |
| ... | ... | @@ -684,7 +697,7 @@ |
| 684 | 697 | Base, |
| 685 | 698 | ); |
| 686 | 699 | mainGroup = 6E84E3681F27A700001EB88E; |
| 687 | - productRefGroup = 6E84E3721F27A700001EB88E /* Products */; | |
| 700 | + productRefGroup = 783929CF869F5081762B3DCA /* Products */; | |
| 688 | 701 | projectDirPath = ""; |
| 689 | 702 | projectRoot = ""; |
| 690 | 703 | targets = ( |
| ... | ... | @@ -823,6 +836,7 @@ |
| 823 | 836 | 6E84E3C51F27ACAE001EB88E /* MapViewController.m in Sources */, |
| 824 | 837 | 6E18CEDC1F2E40F50029891F /* User.m in Sources */, |
| 825 | 838 | 6ECC40711F2A5FEB00AAEB97 /* NSDate+helper.m in Sources */, |
| 839 | + E9497FD51F46EC1100E6AF8D /* MemberObject.m in Sources */, | |
| 826 | 840 | 6E18CED31F2E39DB0029891F /* LoginViewController.m in Sources */, |
| 827 | 841 | 6EA4AF331F40BB7A00F52CFE /* TopObject.m in Sources */, |
| 828 | 842 | E9D909241F3D6E8C004CF99F /* BaseTableViewController.m in Sources */, |
LifeLog/LifeLog/Entities.h
LifeLog/LifeLog/GroupDetailViewController.h
| ... | ... | @@ -13,6 +13,7 @@ |
| 13 | 13 | |
| 14 | 14 | @interface GroupDetailViewController : BaseTableViewController { |
| 15 | 15 | GroupObject * _curGroup; |
| 16 | + BOOL isMemberList; | |
| 16 | 17 | } |
| 17 | 18 | @property (weak, nonatomic) IBOutlet UIImageView *imgAva; |
| 18 | 19 | |
| ... | ... | @@ -25,6 +26,7 @@ |
| 25 | 26 | - (IBAction)clickBack:(id)sender; |
| 26 | 27 | |
| 27 | 28 | - (void) setGroup : (GroupObject *) object; |
| 28 | -- (IBAction)clickSwitch:(AutoTransButton*)sender; | |
| 29 | +- (IBAction)clickSwitch:(AutoTransButton *)sender; | |
| 30 | +- (IBAction)clickJoin:(AutoTransButton *)sender; | |
| 29 | 31 | @end |
LifeLog/LifeLog/GroupDetailViewController.m
| ... | ... | @@ -21,8 +21,7 @@ |
| 21 | 21 | |
| 22 | 22 | - (void)viewDidLoad { |
| 23 | 23 | [super viewDidLoad]; |
| 24 | - [self setupView]; | |
| 25 | - | |
| 24 | + isMemberList = false; | |
| 26 | 25 | //register nib for table view |
| 27 | 26 | [self.tableBase registerNib:[UINib nibWithNibName:@"SNSRecentTopicTableViewCell" bundle:nil] forCellReuseIdentifier:@"RecentTopicCell"]; |
| 28 | 27 | if(_curGroup != nil) { |
| 29 | 28 | |
| ... | ... | @@ -40,16 +39,14 @@ |
| 40 | 39 | _curGroup = object; |
| 41 | 40 | } |
| 42 | 41 | |
| 43 | -- (IBAction)clickSwitch:(id)sender { | |
| 44 | -} | |
| 45 | - | |
| 46 | 42 | - (void)setupView { |
| 47 | 43 | if(_curGroup != nil) { |
| 48 | 44 | if(_curGroup.avatar && ![_curGroup.avatar isKindOfClass:[NSNull class]]) { |
| 49 | 45 | [self.imgAva sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:_curGroup.avatar]]]; |
| 50 | 46 | } |
| 51 | - self.lblGrpName.text = _curGroup.name; | |
| 52 | - self.lblGrpGoal.text = _curGroup.goal; | |
| 47 | + [self.lblGrpName setText:_curGroup.name]; | |
| 48 | + [self.lblGrpGoal setText:_curGroup.goal]; | |
| 49 | + [self.btJoinGrp setHidden:_curGroup.isJoin]; | |
| 53 | 50 | NSString *mode = @""; |
| 54 | 51 | if(_curGroup.runMode) { |
| 55 | 52 | mode = [mode stringByAppendingString:@"ランニング\n"]; |
| 56 | 53 | |
| 57 | 54 | |
| ... | ... | @@ -69,19 +66,53 @@ |
| 69 | 66 | [self.navigationController popViewControllerAnimated:true]; |
| 70 | 67 | } |
| 71 | 68 | |
| 69 | +- (IBAction)clickSwitch:(AutoTransButton *)sender { | |
| 70 | + isMemberList = !isMemberList; | |
| 71 | + [self resetData]; | |
| 72 | +} | |
| 73 | + | |
| 74 | +- (IBAction)clickJoin:(AutoTransButton *)sender { | |
| 75 | + NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken]; | |
| 76 | + MBProgressHUD *hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true]; | |
| 77 | + [[ServerAPI server] requestTweetsList:token groupID:_curGroup.groupID withPage:_curPage CompletionHandler:^(NSArray *array, NSError *error){ | |
| 78 | + dispatch_async(dispatch_get_main_queue(), ^{ | |
| 79 | + if(hudView != nil) { | |
| 80 | + [hudView hideAnimated:true]; | |
| 81 | + } | |
| 82 | + }); | |
| 83 | + }]; | |
| 84 | +} | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 72 | 88 | #pragma mark UITableView Delegate |
| 73 | 89 | - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { |
| 74 | 90 | SNSRecentTopicTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"RecentTopicCell"]; |
| 75 | - TweetObject *object = [_curDataList objectAtIndex:indexPath.row]; | |
| 76 | - if(object.avatarLink && ![object.avatarLink isKindOfClass:[NSNull class]]) { | |
| 77 | - [cell.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatarLink]]]; | |
| 91 | + if(isMemberList) { | |
| 92 | + MemberObject *object = [_curDataList objectAtIndex:indexPath.row]; | |
| 93 | + if(object.avatar && ![object.avatar isKindOfClass:[NSNull class]]) { | |
| 94 | + [cell.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatar]]]; | |
| 95 | + } | |
| 96 | + cell.lblUsername.text = @""; | |
| 97 | + cell.lblDateTime.text = @""; | |
| 98 | + cell.lblDes.text = object.userName; | |
| 99 | + cell.lblMode.text = @""; | |
| 100 | + cell.lblDistance.text = @""; | |
| 101 | + cell.lblDuration.text = @""; | |
| 78 | 102 | } |
| 79 | - cell.lblDateTime.text = [Utilities stringFromDate:object.createDate withFormat:@"YYYY/MM/dd hh:mm"]; | |
| 80 | - cell.lblUsername.text = object.userName; | |
| 81 | - cell.lblDes.text = object.content; | |
| 82 | - cell.lblMode.text = object.mode; | |
| 83 | - cell.lblDistance.text = [NSString stringWithFormat:@"%.0f m", object.distance]; | |
| 84 | - cell.lblDuration.text = object.time; | |
| 103 | + else { | |
| 104 | + TweetObject *object = [_curDataList objectAtIndex:indexPath.row]; | |
| 105 | + if(object.avatar && ![object.avatar isKindOfClass:[NSNull class]]) { | |
| 106 | + [cell.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatar]]]; | |
| 107 | + } | |
| 108 | + cell.lblDateTime.text = [Utilities stringFromDate:object.createDate withFormat:@"YYYY/MM/dd hh:mm"]; | |
| 109 | + cell.lblUsername.text = object.userName; | |
| 110 | + cell.lblDes.text = object.content; | |
| 111 | + cell.lblMode.text = object.mode; | |
| 112 | + cell.lblDistance.text = [NSString stringWithFormat:@"%.0f m", object.distance]; | |
| 113 | + cell.lblDuration.text = object.time; | |
| 114 | + } | |
| 115 | + | |
| 85 | 116 | return cell; |
| 86 | 117 | } |
| 87 | 118 | |
| 88 | 119 | |
| 89 | 120 | |
| ... | ... | @@ -89,12 +120,12 @@ |
| 89 | 120 | |
| 90 | 121 | - (void) requestGroupDetail { |
| 91 | 122 | NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken]; |
| 92 | -// MBProgressHUD *hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true]; | |
| 123 | + MBProgressHUD *hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true]; | |
| 93 | 124 | [[ServerAPI server] getGroupDetail:token withGroupID:_curGroup.groupID CompletionHandler:^(GroupObject *object, NSError *error) { |
| 94 | -// [hudView hideAnimated:true]; | |
| 95 | 125 | GroupDetailViewController __weak *weakSelf = self; |
| 96 | 126 | _curGroup = object; |
| 97 | 127 | dispatch_async(dispatch_get_main_queue(), ^{ |
| 128 | + [hudView hideAnimated:true]; | |
| 98 | 129 | [weakSelf setupView]; |
| 99 | 130 | [weakSelf callRequestToUpdateData]; |
| 100 | 131 | }); |
| ... | ... | @@ -109,15 +140,28 @@ |
| 109 | 140 | if(_curPage == 1 && !self.refreshControl.isRefreshing) { |
| 110 | 141 | hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true]; |
| 111 | 142 | } |
| 112 | - [[ServerAPI server] requestTweetsList:token groupID:_curGroup.groupID withPage:_curPage CompletionHandler:^(NSArray *array, NSError *error){ | |
| 113 | - dispatch_async(dispatch_get_main_queue(), ^{ | |
| 114 | - if(hudView != nil) { | |
| 115 | - [hudView hideAnimated:true]; | |
| 116 | - } | |
| 117 | - }); | |
| 118 | - GroupDetailViewController __weak *weakSelf = self; | |
| 119 | - [weakSelf updateTableData:array error:error]; | |
| 120 | - }]; | |
| 143 | + if(isMemberList) { | |
| 144 | + [[ServerAPI server] requestMemberList:token groupID:_curGroup.groupID withPage:_curPage CompletionHandler:^(NSArray *array, NSError *error){ | |
| 145 | + dispatch_async(dispatch_get_main_queue(), ^{ | |
| 146 | + if(hudView != nil) { | |
| 147 | + [hudView hideAnimated:true]; | |
| 148 | + } | |
| 149 | + }); | |
| 150 | + GroupDetailViewController __weak *weakSelf = self; | |
| 151 | + [weakSelf updateTableData:array error:error]; | |
| 152 | + }]; | |
| 153 | + } | |
| 154 | + else { | |
| 155 | + [[ServerAPI server] requestTweetsList:token groupID:_curGroup.groupID withPage:_curPage CompletionHandler:^(NSArray *array, NSError *error){ | |
| 156 | + dispatch_async(dispatch_get_main_queue(), ^{ | |
| 157 | + if(hudView != nil) { | |
| 158 | + [hudView hideAnimated:true]; | |
| 159 | + } | |
| 160 | + }); | |
| 161 | + GroupDetailViewController __weak *weakSelf = self; | |
| 162 | + [weakSelf updateTableData:array error:error]; | |
| 163 | + }]; | |
| 164 | + } | |
| 121 | 165 | } |
| 122 | 166 | |
| 123 | 167 | @end |
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="12118" systemVersion="16D32" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> | |
| 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"> | |
| 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="12086"/> | |
| 7 | + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/> | |
| 8 | 8 | <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> |
| 9 | 9 | </dependencies> |
| 10 | 10 | <objects> |
| ... | ... | @@ -70,7 +70,7 @@ |
| 70 | 70 | <constraint firstAttribute="height" constant="46" id="u2G-4s-RB5"/> |
| 71 | 71 | </constraints> |
| 72 | 72 | </view> |
| 73 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YWV-pS-TCo"> | |
| 73 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YWV-pS-TCo"> | |
| 74 | 74 | <rect key="frame" x="15" y="54" width="345" height="21"/> |
| 75 | 75 | <constraints> |
| 76 | 76 | <constraint firstAttribute="height" constant="21" id="fQO-ja-W9R"/> |
| ... | ... | @@ -89,7 +89,7 @@ |
| 89 | 89 | <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> |
| 90 | 90 | <nil key="highlightedColor"/> |
| 91 | 91 | </label> |
| 92 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Bdy-dI-j47"> | |
| 92 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Bdy-dI-j47"> | |
| 93 | 93 | <rect key="frame" x="15" y="160" width="345" height="80"/> |
| 94 | 94 | <constraints> |
| 95 | 95 | <constraint firstAttribute="height" constant="80" id="jgH-57-Bae"/> |
| 96 | 96 | |
| ... | ... | @@ -121,10 +121,10 @@ |
| 121 | 121 | <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.grDetail.bt.viewMem"/> |
| 122 | 122 | </userDefinedRuntimeAttributes> |
| 123 | 123 | <connections> |
| 124 | - <action selector="clickSwitch:" destination="-1" eventType="touchUpInside" id="3wX-Tc-XA3"/> | |
| 124 | + <action selector="clickSwitch:" destination="-1" eventType="touchUpInside" id="z4V-ym-fqS"/> | |
| 125 | 125 | </connections> |
| 126 | 126 | </button> |
| 127 | - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="caN-x7-hJz" customClass="AutoTransButton"> | |
| 127 | + <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="caN-x7-hJz" customClass="AutoTransButton"> | |
| 128 | 128 | <rect key="frame" x="197" y="270" width="162" height="30"/> |
| 129 | 129 | <color key="backgroundColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| 130 | 130 | <constraints> |
| ... | ... | @@ -139,6 +139,9 @@ |
| 139 | 139 | </userDefinedRuntimeAttribute> |
| 140 | 140 | <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.grDetail.bt.joinGr"/> |
| 141 | 141 | </userDefinedRuntimeAttributes> |
| 142 | + <connections> | |
| 143 | + <action selector="clickJoin:" destination="-1" eventType="touchUpInside" id="Ukt-bi-Sw2"/> | |
| 144 | + </connections> | |
| 142 | 145 | </button> |
| 143 | 146 | <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" rowHeight="100" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="4VU-Ye-7Au"> |
| 144 | 147 | <rect key="frame" x="0.0" y="310" width="375" height="307"/> |
LifeLog/LifeLog/HistoryViewController.xib
| ... | ... | @@ -45,7 +45,7 @@ |
| 45 | 45 | <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.history.title"/> |
| 46 | 46 | </userDefinedRuntimeAttributes> |
| 47 | 47 | </label> |
| 48 | - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ytc-zM-ZGC"> | |
| 48 | + <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ytc-zM-ZGC"> | |
| 49 | 49 | <rect key="frame" x="0.0" y="5" width="70" height="36"/> |
| 50 | 50 | <constraints> |
| 51 | 51 | <constraint firstAttribute="width" constant="70" id="xAE-oP-WEf"/> |
LifeLog/LifeLog/MemberObject.h
| 1 | +// | |
| 2 | +// MemberObject.h | |
| 3 | +// LifeLog | |
| 4 | +// | |
| 5 | +// Created by nvtu on 8/18/17. | |
| 6 | +// Copyright © 2017 PhongNV. All rights reserved. | |
| 7 | +// | |
| 8 | + | |
| 9 | +#import <Foundation/Foundation.h> | |
| 10 | + | |
| 11 | +@interface MemberObject : NSObject | |
| 12 | + | |
| 13 | +@property (nonatomic) int userID; | |
| 14 | +@property (nonatomic) int gender; | |
| 15 | + | |
| 16 | +@property (nonatomic, strong) NSString * userName; | |
| 17 | +@property (nonatomic, strong) NSString * nickName; | |
| 18 | +@property (nonatomic, strong) NSString * avatar; | |
| 19 | + | |
| 20 | +@property (nonatomic, strong) NSDate * joinDate; | |
| 21 | +@property (nonatomic, strong) NSDate * birthDay; | |
| 22 | + | |
| 23 | +-(id) initWithData : (NSDictionary *) dict; | |
| 24 | + | |
| 25 | +@end |
LifeLog/LifeLog/MemberObject.m
| 1 | +// | |
| 2 | +// MemberObject.m | |
| 3 | +// LifeLog | |
| 4 | +// | |
| 5 | +// Created by nvtu on 8/18/17. | |
| 6 | +// Copyright © 2017 PhongNV. All rights reserved. | |
| 7 | +// | |
| 8 | + | |
| 9 | +#import "MemberObject.h" | |
| 10 | +#import "Utilities.h" | |
| 11 | + | |
| 12 | +@implementation MemberObject | |
| 13 | + | |
| 14 | +-(id) initWithData : (NSDictionary *) dict { | |
| 15 | + if([dict objectForKey:@"user_id"] != nil) { | |
| 16 | + self.userID = [dict[@"user_id"] intValue]; | |
| 17 | + } | |
| 18 | + if([dict objectForKey:@"gender"] != nil) { | |
| 19 | + self.gender = [dict[@"gender"] intValue]; | |
| 20 | + } | |
| 21 | + if([dict objectForKey:@"username"] != nil) { | |
| 22 | + self.userName = dict[@"username"]; | |
| 23 | + } | |
| 24 | + if([dict objectForKey:@"nickname"] != nil) { | |
| 25 | + self.nickName = dict[@"nickname"]; | |
| 26 | + } | |
| 27 | + if([dict objectForKey:@"profile_image"] != nil) { | |
| 28 | + self.avatar = dict[@"profile_image"]; | |
| 29 | + } | |
| 30 | + if([dict objectForKey:@"birthday"] != nil) { | |
| 31 | + NSString *dateString = dict[@"birthday"]; | |
| 32 | + self.birthDay = [Utilities dateFromString:dateString withFormat:@"yyyy-MM-dd"]; | |
| 33 | + } | |
| 34 | + else { | |
| 35 | + self.birthDay = [NSDate date]; | |
| 36 | + } | |
| 37 | + if([dict objectForKey:@"join_date"] != nil) { | |
| 38 | + NSString *dateString = dict[@"join_date"]; | |
| 39 | + self.joinDate = [Utilities dateFromString:dateString withFormat:@"yyyy-MM-dd HH:mm:ss"]; | |
| 40 | + } | |
| 41 | + else { | |
| 42 | + self.joinDate = [NSDate date]; | |
| 43 | + } | |
| 44 | + return self; | |
| 45 | +} | |
| 46 | + | |
| 47 | +@end |
LifeLog/LifeLog/RankingViewController.xib
| ... | ... | @@ -34,7 +34,7 @@ |
| 34 | 34 | <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.rank.title"/> |
| 35 | 35 | </userDefinedRuntimeAttributes> |
| 36 | 36 | </label> |
| 37 | - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="qPe-ff-jRp"> | |
| 37 | + <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="qPe-ff-jRp"> | |
| 38 | 38 |