Commit 7fc917f3b6bf31112dc61d5d95884d3d7861da19

Authored by nvtu11790@gmail.com
1 parent 0db82ed0b5

add get member of group API, join group API.

Showing 15 changed files with 282 additions and 47 deletions Inline Diff

LifeLog/LifeLog.xcodeproj/project.pbxproj
1 // !$*UTF8*$! 1 // !$*UTF8*$!
2 { 2 {
3 archiveVersion = 1; 3 archiveVersion = 1;
4 classes = { 4 classes = {
5 }; 5 };
6 objectVersion = 46; 6 objectVersion = 46;
7 objects = { 7 objects = {
8 8
9 /* Begin PBXBuildFile section */ 9 /* Begin PBXBuildFile section */
10 011799F0F2B47D80472673CE /* Pods_LifeLog.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */; }; 10 011799F0F2B47D80472673CE /* Pods_LifeLog.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */; };
11 6E18CED31F2E39DB0029891F /* LoginViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E18CED11F2E39DB0029891F /* LoginViewController.m */; }; 11 6E18CED31F2E39DB0029891F /* LoginViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E18CED11F2E39DB0029891F /* LoginViewController.m */; };
12 6E18CED41F2E39DB0029891F /* LoginViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E18CED21F2E39DB0029891F /* LoginViewController.xib */; }; 12 6E18CED41F2E39DB0029891F /* LoginViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E18CED21F2E39DB0029891F /* LoginViewController.xib */; };
13 6E18CED81F2E3C840029891F /* ServerAPI.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E18CED71F2E3C840029891F /* ServerAPI.m */; }; 13 6E18CED81F2E3C840029891F /* ServerAPI.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E18CED71F2E3C840029891F /* ServerAPI.m */; };
14 6E18CEDC1F2E40F50029891F /* User.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E18CEDB1F2E40F50029891F /* User.m */; }; 14 6E18CEDC1F2E40F50029891F /* User.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E18CEDB1F2E40F50029891F /* User.m */; };
15 6E48AF0D1F2F9D3300C1D184 /* CustomTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */; }; 15 6E48AF0D1F2F9D3300C1D184 /* CustomTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */; };
16 6E7F93421F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */; }; 16 6E7F93421F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */; };
17 6E7F93431F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */; }; 17 6E7F93431F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */; };
18 6E7F93441F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */; }; 18 6E7F93441F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */; };
19 6E7F93451F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */; }; 19 6E7F93451F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */; };
20 6E84E3761F27A701001EB88E /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3751F27A701001EB88E /* main.m */; }; 20 6E84E3761F27A701001EB88E /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3751F27A701001EB88E /* main.m */; };
21 6E84E3791F27A701001EB88E /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3781F27A701001EB88E /* AppDelegate.m */; }; 21 6E84E3791F27A701001EB88E /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3781F27A701001EB88E /* AppDelegate.m */; };
22 6E84E3811F27A701001EB88E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3801F27A701001EB88E /* Assets.xcassets */; }; 22 6E84E3811F27A701001EB88E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3801F27A701001EB88E /* Assets.xcassets */; };
23 6E84E3841F27A701001EB88E /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */; }; 23 6E84E3841F27A701001EB88E /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */; };
24 6E84E38F1F27A703001EB88E /* LifeLogTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E38E1F27A703001EB88E /* LifeLogTests.m */; }; 24 6E84E38F1F27A703001EB88E /* LifeLogTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E38E1F27A703001EB88E /* LifeLogTests.m */; };
25 6E84E39A1F27A703001EB88E /* LifeLogUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3991F27A703001EB88E /* LifeLogUITests.m */; }; 25 6E84E39A1F27A703001EB88E /* LifeLogUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3991F27A703001EB88E /* LifeLogUITests.m */; };
26 6E84E3B01F27A975001EB88E /* HomeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3AE1F27A975001EB88E /* HomeViewController.m */; }; 26 6E84E3B01F27A975001EB88E /* HomeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3AE1F27A975001EB88E /* HomeViewController.m */; };
27 6E84E3B11F27A975001EB88E /* HomeViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */; }; 27 6E84E3B11F27A975001EB88E /* HomeViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */; };
28 6E84E3B51F27A98B001EB88E /* HistoryViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */; }; 28 6E84E3B51F27A98B001EB88E /* HistoryViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */; };
29 6E84E3B61F27A98B001EB88E /* HistoryViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */; }; 29 6E84E3B61F27A98B001EB88E /* HistoryViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */; };
30 6E84E3BA1F27A9A0001EB88E /* RankingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */; }; 30 6E84E3BA1F27A9A0001EB88E /* RankingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */; };
31 6E84E3BB1F27A9A0001EB88E /* RankingViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */; }; 31 6E84E3BB1F27A9A0001EB88E /* RankingViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */; };
32 6E84E3BF1F27A9B1001EB88E /* SNSViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */; }; 32 6E84E3BF1F27A9B1001EB88E /* SNSViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */; };
33 6E84E3C01F27A9B1001EB88E /* SNSViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */; }; 33 6E84E3C01F27A9B1001EB88E /* SNSViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */; };
34 6E84E3C51F27ACAE001EB88E /* MapViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3C31F27ACAE001EB88E /* MapViewController.m */; }; 34 6E84E3C51F27ACAE001EB88E /* MapViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3C31F27ACAE001EB88E /* MapViewController.m */; };
35 6E84E3C61F27ACAE001EB88E /* MapViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */; }; 35 6E84E3C61F27ACAE001EB88E /* MapViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */; };
36 6E8DA0F71F2BAC3400CCE941 /* TodayViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */; }; 36 6E8DA0F71F2BAC3400CCE941 /* TodayViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */; };
37 6E8DA0F81F2BAC3500CCE941 /* TodayViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */; }; 37 6E8DA0F81F2BAC3500CCE941 /* TodayViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */; };
38 6EA4AF311F40BB7A00F52CFE /* StepObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EA4AF2C1F40BB7A00F52CFE /* StepObject.m */; }; 38 6EA4AF311F40BB7A00F52CFE /* StepObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EA4AF2C1F40BB7A00F52CFE /* StepObject.m */; };
39 6EA4AF321F40BB7A00F52CFE /* TargetInfor.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EA4AF2E1F40BB7A00F52CFE /* TargetInfor.m */; }; 39 6EA4AF321F40BB7A00F52CFE /* TargetInfor.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EA4AF2E1F40BB7A00F52CFE /* TargetInfor.m */; };
40 6EA4AF331F40BB7A00F52CFE /* TopObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EA4AF301F40BB7A00F52CFE /* TopObject.m */; }; 40 6EA4AF331F40BB7A00F52CFE /* TopObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EA4AF301F40BB7A00F52CFE /* TopObject.m */; };
41 6ECC40711F2A5FEB00AAEB97 /* NSDate+helper.m in Sources */ = {isa = PBXBuildFile; fileRef = 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */; }; 41 6ECC40711F2A5FEB00AAEB97 /* NSDate+helper.m in Sources */ = {isa = PBXBuildFile; fileRef = 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */; };
42 6EDC8BEE1F2C2FB800765ACC /* Utilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EDC8BED1F2C2FB800765ACC /* Utilities.m */; }; 42 6EDC8BEE1F2C2FB800765ACC /* Utilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EDC8BED1F2C2FB800765ACC /* Utilities.m */; };
43 6EDC8BF41F2C68D700765ACC /* CMMotionActivityExtra.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */; }; 43 6EDC8BF41F2C68D700765ACC /* CMMotionActivityExtra.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */; };
44 6EF1630A1F29069300DA306C /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6EF163091F29069300DA306C /* Localizable.strings */; }; 44 6EF1630A1F29069300DA306C /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6EF163091F29069300DA306C /* Localizable.strings */; };
45 9CA8AEEA1F31BB4600C5FC74 /* ConfirmForgetPassViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */; }; 45 9CA8AEEA1F31BB4600C5FC74 /* ConfirmForgetPassViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */; };
46 9CA8AEEB1F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */; }; 46 9CA8AEEB1F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */; };
47 9CBDA0FA1F2ECE2C0055DED1 /* BaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */; }; 47 9CBDA0FA1F2ECE2C0055DED1 /* BaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */; };
48 9CBDA0FF1F2F03810055DED1 /* RegisterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */; }; 48 9CBDA0FF1F2F03810055DED1 /* RegisterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */; };
49 9CBDA1001F2F03810055DED1 /* RegisterViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */; }; 49 9CBDA1001F2F03810055DED1 /* RegisterViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */; };
50 E933E66B1F3E04A6002926F5 /* SearchGroupViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E6691F3E04A6002926F5 /* SearchGroupViewController.m */; }; 50 E933E66B1F3E04A6002926F5 /* SearchGroupViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E6691F3E04A6002926F5 /* SearchGroupViewController.m */; };
51 E933E66C1F3E04A6002926F5 /* SearchGroupViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = E933E66A1F3E04A6002926F5 /* SearchGroupViewController.xib */; }; 51 E933E66C1F3E04A6002926F5 /* SearchGroupViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = E933E66A1F3E04A6002926F5 /* SearchGroupViewController.xib */; };
52 E933E6701F3E09B6002926F5 /* SearchGroupTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E66E1F3E09B6002926F5 /* SearchGroupTableViewCell.m */; }; 52 E933E6701F3E09B6002926F5 /* SearchGroupTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E66E1F3E09B6002926F5 /* SearchGroupTableViewCell.m */; };
53 E933E6711F3E09B6002926F5 /* SearchGroupTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E933E66F1F3E09B6002926F5 /* SearchGroupTableViewCell.xib */; }; 53 E933E6711F3E09B6002926F5 /* SearchGroupTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E933E66F1F3E09B6002926F5 /* SearchGroupTableViewCell.xib */; };
54 E933E6741F3E0E4E002926F5 /* GroupObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E6731F3E0E4E002926F5 /* GroupObject.m */; }; 54 E933E6741F3E0E4E002926F5 /* GroupObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E6731F3E0E4E002926F5 /* GroupObject.m */; };
55 E933E6791F40513C002926F5 /* GroupDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E6771F40513C002926F5 /* GroupDetailViewController.m */; }; 55 E933E6791F40513C002926F5 /* GroupDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E6771F40513C002926F5 /* GroupDetailViewController.m */; };
56 E933E67A1F40513C002926F5 /* GroupDetailViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = E933E6781F40513C002926F5 /* GroupDetailViewController.xib */; }; 56 E933E67A1F40513C002926F5 /* GroupDetailViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = E933E6781F40513C002926F5 /* GroupDetailViewController.xib */; };
57 E9373E471F3596940059355A /* AutoTransLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E461F3596940059355A /* AutoTransLabel.m */; }; 57 E9373E471F3596940059355A /* AutoTransLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E461F3596940059355A /* AutoTransLabel.m */; };
58 E9373E4A1F35AA180059355A /* HistoryObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E491F35AA180059355A /* HistoryObject.m */; }; 58 E9373E4A1F35AA180059355A /* HistoryObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E491F35AA180059355A /* HistoryObject.m */; };
59 E9373E4D1F361A230059355A /* HistoryGraphObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E4C1F361A230059355A /* HistoryGraphObject.m */; }; 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 E9682E2E1F39675A00FE05A2 /* RankingTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */; }; 61 E9682E2E1F39675A00FE05A2 /* RankingTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */; };
61 E9682E2F1F39675A00FE05A2 /* RankingTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */; }; 62 E9682E2F1F39675A00FE05A2 /* RankingTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */; };
62 E968550A1F3C444900317CEF /* AutoTransButton.m in Sources */ = {isa = PBXBuildFile; fileRef = E96855091F3C444900317CEF /* AutoTransButton.m */; }; 63 E968550A1F3C444900317CEF /* AutoTransButton.m in Sources */ = {isa = PBXBuildFile; fileRef = E96855091F3C444900317CEF /* AutoTransButton.m */; };
63 E96855111F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */; }; 64 E96855111F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */; };
64 E96855121F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */; }; 65 E96855121F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */; };
65 E997E0261F3AB66500709FB1 /* Social.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E997E0251F3AB66500709FB1 /* Social.framework */; }; 66 E997E0261F3AB66500709FB1 /* Social.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E997E0251F3AB66500709FB1 /* Social.framework */; };
66 E99E13AB1F336F3600C78787 /* CollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = E99E13AA1F336F3600C78787 /* CollectionView.m */; }; 67 E99E13AB1F336F3600C78787 /* CollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = E99E13AA1F336F3600C78787 /* CollectionView.m */; };
67 E99E13AD1F336F4500C78787 /* CollectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = E99E13AC1F336F4500C78787 /* CollectionView.xib */; }; 68 E99E13AD1F336F4500C78787 /* CollectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = E99E13AC1F336F4500C78787 /* CollectionView.xib */; };
68 E99E13B11F33720600C78787 /* LabelCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */; }; 69 E99E13B11F33720600C78787 /* LabelCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */; };
69 E99E13B21F33720600C78787 /* LabelCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */; }; 70 E99E13B21F33720600C78787 /* LabelCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */; };
70 E9D909211F3D559D004CF99F /* TweetObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9D909201F3D559D004CF99F /* TweetObject.m */; }; 71 E9D909211F3D559D004CF99F /* TweetObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9D909201F3D559D004CF99F /* TweetObject.m */; };
71 E9D909241F3D6E8C004CF99F /* BaseTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E9D909231F3D6E8C004CF99F /* BaseTableViewController.m */; }; 72 E9D909241F3D6E8C004CF99F /* BaseTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E9D909231F3D6E8C004CF99F /* BaseTableViewController.m */; };
72 E9F73DCC1F338A0F004A3A6F /* HistoryListTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */; }; 73 E9F73DCC1F338A0F004A3A6F /* HistoryListTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */; };
73 E9F73DCD1F338A0F004A3A6F /* HistoryListTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */; }; 74 E9F73DCD1F338A0F004A3A6F /* HistoryListTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */; };
74 /* End PBXBuildFile section */ 75 /* End PBXBuildFile section */
75 76
76 /* Begin PBXContainerItemProxy section */ 77 /* Begin PBXContainerItemProxy section */
77 6E84E38B1F27A703001EB88E /* PBXContainerItemProxy */ = { 78 6E84E38B1F27A703001EB88E /* PBXContainerItemProxy */ = {
78 isa = PBXContainerItemProxy; 79 isa = PBXContainerItemProxy;
79 containerPortal = 6E84E3691F27A700001EB88E /* Project object */; 80 containerPortal = 6E84E3691F27A700001EB88E /* Project object */;
80 proxyType = 1; 81 proxyType = 1;
81 remoteGlobalIDString = 6E84E3701F27A700001EB88E; 82 remoteGlobalIDString = 6E84E3701F27A700001EB88E;
82 remoteInfo = LifeLog; 83 remoteInfo = LifeLog;
83 }; 84 };
84 6E84E3961F27A703001EB88E /* PBXContainerItemProxy */ = { 85 6E84E3961F27A703001EB88E /* PBXContainerItemProxy */ = {
85 isa = PBXContainerItemProxy; 86 isa = PBXContainerItemProxy;
86 containerPortal = 6E84E3691F27A700001EB88E /* Project object */; 87 containerPortal = 6E84E3691F27A700001EB88E /* Project object */;
87 proxyType = 1; 88 proxyType = 1;
88 remoteGlobalIDString = 6E84E3701F27A700001EB88E; 89 remoteGlobalIDString = 6E84E3701F27A700001EB88E;
89 remoteInfo = LifeLog; 90 remoteInfo = LifeLog;
90 }; 91 };
91 /* End PBXContainerItemProxy section */ 92 /* End PBXContainerItemProxy section */
92 93
93 /* Begin PBXFileReference section */ 94 /* Begin PBXFileReference section */
94 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LifeLog.debug.xcconfig"; path = "Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog.debug.xcconfig"; sourceTree = "<group>"; }; 95 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LifeLog.debug.xcconfig"; path = "Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog.debug.xcconfig"; sourceTree = "<group>"; };
95 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LifeLog.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 96 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LifeLog.framework; sourceTree = BUILT_PRODUCTS_DIR; };
96 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LifeLog.release.xcconfig"; path = "Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog.release.xcconfig"; sourceTree = "<group>"; }; 97 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LifeLog.release.xcconfig"; path = "Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog.release.xcconfig"; sourceTree = "<group>"; };
97 6E18CED01F2E39DB0029891F /* LoginViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoginViewController.h; sourceTree = "<group>"; }; 98 6E18CED01F2E39DB0029891F /* LoginViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoginViewController.h; sourceTree = "<group>"; };
98 6E18CED11F2E39DB0029891F /* LoginViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LoginViewController.m; sourceTree = "<group>"; }; 99 6E18CED11F2E39DB0029891F /* LoginViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LoginViewController.m; sourceTree = "<group>"; };
99 6E18CED21F2E39DB0029891F /* LoginViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LoginViewController.xib; sourceTree = "<group>"; }; 100 6E18CED21F2E39DB0029891F /* LoginViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LoginViewController.xib; sourceTree = "<group>"; };
100 6E18CED61F2E3C840029891F /* ServerAPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServerAPI.h; sourceTree = "<group>"; }; 101 6E18CED61F2E3C840029891F /* ServerAPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServerAPI.h; sourceTree = "<group>"; };
101 6E18CED71F2E3C840029891F /* ServerAPI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ServerAPI.m; sourceTree = "<group>"; }; 102 6E18CED71F2E3C840029891F /* ServerAPI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ServerAPI.m; sourceTree = "<group>"; };
102 6E18CEDA1F2E40F50029891F /* User.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = User.h; sourceTree = "<group>"; }; 103 6E18CEDA1F2E40F50029891F /* User.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = User.h; sourceTree = "<group>"; };
103 6E18CEDB1F2E40F50029891F /* User.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = User.m; sourceTree = "<group>"; }; 104 6E18CEDB1F2E40F50029891F /* User.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = User.m; sourceTree = "<group>"; };
104 6E18CEDD1F2E46570029891F /* Entities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Entities.h; sourceTree = "<group>"; }; 105 6E18CEDD1F2E46570029891F /* Entities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Entities.h; sourceTree = "<group>"; };
105 6E48AF0B1F2F9D3200C1D184 /* CustomTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomTextField.h; sourceTree = "<group>"; }; 106 6E48AF0B1F2F9D3200C1D184 /* CustomTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomTextField.h; sourceTree = "<group>"; };
106 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomTextField.m; sourceTree = "<group>"; }; 107 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomTextField.m; sourceTree = "<group>"; };
107 6E7F933A1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingCollectionView.h; sourceTree = "<group>"; }; 108 6E7F933A1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingCollectionView.h; sourceTree = "<group>"; };
108 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingCollectionView.m; sourceTree = "<group>"; }; 109 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingCollectionView.m; sourceTree = "<group>"; };
109 6E7F933C1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingScrollView.h; sourceTree = "<group>"; }; 110 6E7F933C1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingScrollView.h; sourceTree = "<group>"; };
110 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingScrollView.m; sourceTree = "<group>"; }; 111 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingScrollView.m; sourceTree = "<group>"; };
111 6E7F933E1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingTableView.h; sourceTree = "<group>"; }; 112 6E7F933E1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingTableView.h; sourceTree = "<group>"; };
112 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingTableView.m; sourceTree = "<group>"; }; 113 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingTableView.m; sourceTree = "<group>"; };
113 6E7F93401F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIScrollView+TPKeyboardAvoidingAdditions.h"; sourceTree = "<group>"; }; 114 6E7F93401F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIScrollView+TPKeyboardAvoidingAdditions.h"; sourceTree = "<group>"; };
114 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIScrollView+TPKeyboardAvoidingAdditions.m"; sourceTree = "<group>"; }; 115 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIScrollView+TPKeyboardAvoidingAdditions.m"; sourceTree = "<group>"; };
115 6E84E3711F27A700001EB88E /* LifeLog.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LifeLog.app; sourceTree = BUILT_PRODUCTS_DIR; }; 116 6E84E3711F27A700001EB88E /* LifeLog.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LifeLog.app; sourceTree = BUILT_PRODUCTS_DIR; };
116 6E84E3751F27A701001EB88E /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; }; 117 6E84E3751F27A701001EB88E /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
117 6E84E3771F27A701001EB88E /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; }; 118 6E84E3771F27A701001EB88E /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
118 6E84E3781F27A701001EB88E /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; }; 119 6E84E3781F27A701001EB88E /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
119 6E84E3801F27A701001EB88E /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; 120 6E84E3801F27A701001EB88E /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
120 6E84E3831F27A701001EB88E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; }; 121 6E84E3831F27A701001EB88E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
121 6E84E3851F27A701001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 122 6E84E3851F27A701001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
122 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LifeLogTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 123 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LifeLogTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
123 6E84E38E1F27A703001EB88E /* LifeLogTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LifeLogTests.m; sourceTree = "<group>"; }; 124 6E84E38E1F27A703001EB88E /* LifeLogTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LifeLogTests.m; sourceTree = "<group>"; };
124 6E84E3901F27A703001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 125 6E84E3901F27A703001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
125 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LifeLogUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 126 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LifeLogUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
126 6E84E3991F27A703001EB88E /* LifeLogUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LifeLogUITests.m; sourceTree = "<group>"; }; 127 6E84E3991F27A703001EB88E /* LifeLogUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LifeLogUITests.m; sourceTree = "<group>"; };
127 6E84E39B1F27A703001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 128 6E84E39B1F27A703001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
128 6E84E3AD1F27A975001EB88E /* HomeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HomeViewController.h; sourceTree = "<group>"; }; 129 6E84E3AD1F27A975001EB88E /* HomeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HomeViewController.h; sourceTree = "<group>"; };
129 6E84E3AE1F27A975001EB88E /* HomeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HomeViewController.m; sourceTree = "<group>"; }; 130 6E84E3AE1F27A975001EB88E /* HomeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HomeViewController.m; sourceTree = "<group>"; };
130 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HomeViewController.xib; sourceTree = "<group>"; }; 131 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HomeViewController.xib; sourceTree = "<group>"; };
131 6E84E3B21F27A98B001EB88E /* HistoryViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryViewController.h; sourceTree = "<group>"; }; 132 6E84E3B21F27A98B001EB88E /* HistoryViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryViewController.h; sourceTree = "<group>"; };
132 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryViewController.m; sourceTree = "<group>"; }; 133 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryViewController.m; sourceTree = "<group>"; };
133 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HistoryViewController.xib; sourceTree = "<group>"; }; 134 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HistoryViewController.xib; sourceTree = "<group>"; };
134 6E84E3B71F27A9A0001EB88E /* RankingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RankingViewController.h; sourceTree = "<group>"; }; 135 6E84E3B71F27A9A0001EB88E /* RankingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RankingViewController.h; sourceTree = "<group>"; };
135 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RankingViewController.m; sourceTree = "<group>"; }; 136 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RankingViewController.m; sourceTree = "<group>"; };
136 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RankingViewController.xib; sourceTree = "<group>"; }; 137 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RankingViewController.xib; sourceTree = "<group>"; };
137 6E84E3BC1F27A9B1001EB88E /* SNSViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SNSViewController.h; sourceTree = "<group>"; }; 138 6E84E3BC1F27A9B1001EB88E /* SNSViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SNSViewController.h; sourceTree = "<group>"; };
138 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SNSViewController.m; sourceTree = "<group>"; }; 139 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SNSViewController.m; sourceTree = "<group>"; };
139 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SNSViewController.xib; sourceTree = "<group>"; }; 140 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SNSViewController.xib; sourceTree = "<group>"; };
140 6E84E3C21F27ACAE001EB88E /* MapViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MapViewController.h; sourceTree = "<group>"; }; 141 6E84E3C21F27ACAE001EB88E /* MapViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MapViewController.h; sourceTree = "<group>"; };
141 6E84E3C31F27ACAE001EB88E /* MapViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MapViewController.m; sourceTree = "<group>"; }; 142 6E84E3C31F27ACAE001EB88E /* MapViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MapViewController.m; sourceTree = "<group>"; };
142 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MapViewController.xib; sourceTree = "<group>"; }; 143 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MapViewController.xib; sourceTree = "<group>"; };
143 6E8DA0F41F2BAC3400CCE941 /* TodayViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TodayViewController.h; sourceTree = "<group>"; }; 144 6E8DA0F41F2BAC3400CCE941 /* TodayViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TodayViewController.h; sourceTree = "<group>"; };
144 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TodayViewController.m; sourceTree = "<group>"; }; 145 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TodayViewController.m; sourceTree = "<group>"; };
145 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TodayViewController.xib; sourceTree = "<group>"; }; 146 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TodayViewController.xib; sourceTree = "<group>"; };
146 6EA4AF2B1F40BB7A00F52CFE /* StepObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StepObject.h; sourceTree = "<group>"; }; 147 6EA4AF2B1F40BB7A00F52CFE /* StepObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StepObject.h; sourceTree = "<group>"; };
147 6EA4AF2C1F40BB7A00F52CFE /* StepObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StepObject.m; sourceTree = "<group>"; }; 148 6EA4AF2C1F40BB7A00F52CFE /* StepObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StepObject.m; sourceTree = "<group>"; };
148 6EA4AF2D1F40BB7A00F52CFE /* TargetInfor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TargetInfor.h; sourceTree = "<group>"; }; 149 6EA4AF2D1F40BB7A00F52CFE /* TargetInfor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TargetInfor.h; sourceTree = "<group>"; };
149 6EA4AF2E1F40BB7A00F52CFE /* TargetInfor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TargetInfor.m; sourceTree = "<group>"; }; 150 6EA4AF2E1F40BB7A00F52CFE /* TargetInfor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TargetInfor.m; sourceTree = "<group>"; };
150 6EA4AF2F1F40BB7A00F52CFE /* TopObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TopObject.h; sourceTree = "<group>"; }; 151 6EA4AF2F1F40BB7A00F52CFE /* TopObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TopObject.h; sourceTree = "<group>"; };
151 6EA4AF301F40BB7A00F52CFE /* TopObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TopObject.m; sourceTree = "<group>"; }; 152 6EA4AF301F40BB7A00F52CFE /* TopObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TopObject.m; sourceTree = "<group>"; };
152 6ECC406F1F2A5FEB00AAEB97 /* NSDate+helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDate+helper.h"; sourceTree = "<group>"; }; 153 6ECC406F1F2A5FEB00AAEB97 /* NSDate+helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDate+helper.h"; sourceTree = "<group>"; };
153 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDate+helper.m"; sourceTree = "<group>"; }; 154 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDate+helper.m"; sourceTree = "<group>"; };
154 6EDC8BEC1F2C2FB800765ACC /* Utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Utilities.h; sourceTree = "<group>"; }; 155 6EDC8BEC1F2C2FB800765ACC /* Utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Utilities.h; sourceTree = "<group>"; };
155 6EDC8BED1F2C2FB800765ACC /* Utilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Utilities.m; sourceTree = "<group>"; }; 156 6EDC8BED1F2C2FB800765ACC /* Utilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Utilities.m; sourceTree = "<group>"; };
156 6EDC8BF21F2C68D700765ACC /* CMMotionActivityExtra.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CMMotionActivityExtra.h; sourceTree = "<group>"; }; 157 6EDC8BF21F2C68D700765ACC /* CMMotionActivityExtra.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CMMotionActivityExtra.h; sourceTree = "<group>"; };
157 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CMMotionActivityExtra.m; sourceTree = "<group>"; }; 158 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CMMotionActivityExtra.m; sourceTree = "<group>"; };
158 6EF163091F29069300DA306C /* Localizable.strings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; path = Localizable.strings; sourceTree = "<group>"; }; 159 6EF163091F29069300DA306C /* Localizable.strings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; path = Localizable.strings; sourceTree = "<group>"; };
159 9CA8AEE71F31BB4600C5FC74 /* ConfirmForgetPassViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfirmForgetPassViewController.h; sourceTree = "<group>"; }; 160 9CA8AEE71F31BB4600C5FC74 /* ConfirmForgetPassViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfirmForgetPassViewController.h; sourceTree = "<group>"; };
160 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ConfirmForgetPassViewController.m; sourceTree = "<group>"; }; 161 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ConfirmForgetPassViewController.m; sourceTree = "<group>"; };
161 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ConfirmForgetPassViewController.xib; sourceTree = "<group>"; }; 162 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ConfirmForgetPassViewController.xib; sourceTree = "<group>"; };
162 9CBDA0F81F2ECE2C0055DED1 /* BaseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseViewController.h; sourceTree = "<group>"; }; 163 9CBDA0F81F2ECE2C0055DED1 /* BaseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseViewController.h; sourceTree = "<group>"; };
163 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BaseViewController.m; sourceTree = "<group>"; }; 164 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BaseViewController.m; sourceTree = "<group>"; };
164 9CBDA0FC1F2F03810055DED1 /* RegisterViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegisterViewController.h; sourceTree = "<group>"; }; 165 9CBDA0FC1F2F03810055DED1 /* RegisterViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegisterViewController.h; sourceTree = "<group>"; };
165 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RegisterViewController.m; sourceTree = "<group>"; }; 166 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RegisterViewController.m; sourceTree = "<group>"; };
166 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RegisterViewController.xib; sourceTree = "<group>"; }; 167 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RegisterViewController.xib; sourceTree = "<group>"; };
167 E933E6681F3E04A6002926F5 /* SearchGroupViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SearchGroupViewController.h; sourceTree = "<group>"; }; 168 E933E6681F3E04A6002926F5 /* SearchGroupViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SearchGroupViewController.h; sourceTree = "<group>"; };
168 E933E6691F3E04A6002926F5 /* SearchGroupViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SearchGroupViewController.m; sourceTree = "<group>"; }; 169 E933E6691F3E04A6002926F5 /* SearchGroupViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SearchGroupViewController.m; sourceTree = "<group>"; };
169 E933E66A1F3E04A6002926F5 /* SearchGroupViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SearchGroupViewController.xib; sourceTree = "<group>"; }; 170 E933E66A1F3E04A6002926F5 /* SearchGroupViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SearchGroupViewController.xib; sourceTree = "<group>"; };
170 E933E66D1F3E09B6002926F5 /* SearchGroupTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SearchGroupTableViewCell.h; sourceTree = "<group>"; }; 171 E933E66D1F3E09B6002926F5 /* SearchGroupTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SearchGroupTableViewCell.h; sourceTree = "<group>"; };
171 E933E66E1F3E09B6002926F5 /* SearchGroupTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SearchGroupTableViewCell.m; sourceTree = "<group>"; }; 172 E933E66E1F3E09B6002926F5 /* SearchGroupTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SearchGroupTableViewCell.m; sourceTree = "<group>"; };
172 E933E66F1F3E09B6002926F5 /* SearchGroupTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SearchGroupTableViewCell.xib; sourceTree = "<group>"; }; 173 E933E66F1F3E09B6002926F5 /* SearchGroupTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SearchGroupTableViewCell.xib; sourceTree = "<group>"; };
173 E933E6721F3E0E4E002926F5 /* GroupObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GroupObject.h; sourceTree = "<group>"; }; 174 E933E6721F3E0E4E002926F5 /* GroupObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GroupObject.h; sourceTree = "<group>"; };
174 E933E6731F3E0E4E002926F5 /* GroupObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GroupObject.m; sourceTree = "<group>"; }; 175 E933E6731F3E0E4E002926F5 /* GroupObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GroupObject.m; sourceTree = "<group>"; };
175 E933E6761F40513C002926F5 /* GroupDetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GroupDetailViewController.h; sourceTree = "<group>"; }; 176 E933E6761F40513C002926F5 /* GroupDetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GroupDetailViewController.h; sourceTree = "<group>"; };
176 E933E6771F40513C002926F5 /* GroupDetailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GroupDetailViewController.m; sourceTree = "<group>"; }; 177 E933E6771F40513C002926F5 /* GroupDetailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GroupDetailViewController.m; sourceTree = "<group>"; };
177 E933E6781F40513C002926F5 /* GroupDetailViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = GroupDetailViewController.xib; sourceTree = "<group>"; }; 178 E933E6781F40513C002926F5 /* GroupDetailViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = GroupDetailViewController.xib; sourceTree = "<group>"; };
178 E9373E451F3596940059355A /* AutoTransLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoTransLabel.h; sourceTree = "<group>"; }; 179 E9373E451F3596940059355A /* AutoTransLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoTransLabel.h; sourceTree = "<group>"; };
179 E9373E461F3596940059355A /* AutoTransLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutoTransLabel.m; sourceTree = "<group>"; }; 180 E9373E461F3596940059355A /* AutoTransLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutoTransLabel.m; sourceTree = "<group>"; };
180 E9373E481F35AA180059355A /* HistoryObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryObject.h; sourceTree = "<group>"; }; 181 E9373E481F35AA180059355A /* HistoryObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryObject.h; sourceTree = "<group>"; };
181 E9373E491F35AA180059355A /* HistoryObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryObject.m; sourceTree = "<group>"; }; 182 E9373E491F35AA180059355A /* HistoryObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryObject.m; sourceTree = "<group>"; };
182 E9373E4B1F361A230059355A /* HistoryGraphObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryGraphObject.h; sourceTree = "<group>"; }; 183 E9373E4B1F361A230059355A /* HistoryGraphObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryGraphObject.h; sourceTree = "<group>"; };
183 E9373E4C1F361A230059355A /* HistoryGraphObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryGraphObject.m; sourceTree = "<group>"; }; 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 E9682E2B1F39675A00FE05A2 /* RankingTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RankingTableViewCell.h; sourceTree = "<group>"; }; 187 E9682E2B1F39675A00FE05A2 /* RankingTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RankingTableViewCell.h; sourceTree = "<group>"; };
185 E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RankingTableViewCell.m; sourceTree = "<group>"; }; 188 E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RankingTableViewCell.m; sourceTree = "<group>"; };
186 E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RankingTableViewCell.xib; sourceTree = "<group>"; }; 189 E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RankingTableViewCell.xib; sourceTree = "<group>"; };
187 E96855081F3C444900317CEF /* AutoTransButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoTransButton.h; sourceTree = "<group>"; }; 190 E96855081F3C444900317CEF /* AutoTransButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoTransButton.h; sourceTree = "<group>"; };
188 E96855091F3C444900317CEF /* AutoTransButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutoTransButton.m; sourceTree = "<group>"; }; 191 E96855091F3C444900317CEF /* AutoTransButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutoTransButton.m; sourceTree = "<group>"; };
189 E968550E1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SNSRecentTopicTableViewCell.h; sourceTree = "<group>"; }; 192 E968550E1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SNSRecentTopicTableViewCell.h; sourceTree = "<group>"; };
190 E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SNSRecentTopicTableViewCell.m; sourceTree = "<group>"; }; 193 E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SNSRecentTopicTableViewCell.m; sourceTree = "<group>"; };
191 E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SNSRecentTopicTableViewCell.xib; sourceTree = "<group>"; }; 194 E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SNSRecentTopicTableViewCell.xib; sourceTree = "<group>"; };
192 E997E0251F3AB66500709FB1 /* Social.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Social.framework; path = System/Library/Frameworks/Social.framework; sourceTree = SDKROOT; }; 195 E997E0251F3AB66500709FB1 /* Social.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Social.framework; path = System/Library/Frameworks/Social.framework; sourceTree = SDKROOT; };
193 E99E13A91F336F3600C78787 /* CollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CollectionView.h; sourceTree = "<group>"; }; 196 E99E13A91F336F3600C78787 /* CollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CollectionView.h; sourceTree = "<group>"; };
194 E99E13AA1F336F3600C78787 /* CollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CollectionView.m; sourceTree = "<group>"; }; 197 E99E13AA1F336F3600C78787 /* CollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CollectionView.m; sourceTree = "<group>"; };
195 E99E13AC1F336F4500C78787 /* CollectionView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CollectionView.xib; sourceTree = "<group>"; }; 198 E99E13AC1F336F4500C78787 /* CollectionView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CollectionView.xib; sourceTree = "<group>"; };
196 E99E13AE1F33720600C78787 /* LabelCollectionViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LabelCollectionViewCell.h; sourceTree = "<group>"; }; 199 E99E13AE1F33720600C78787 /* LabelCollectionViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LabelCollectionViewCell.h; sourceTree = "<group>"; };
197 E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LabelCollectionViewCell.m; sourceTree = "<group>"; }; 200 E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LabelCollectionViewCell.m; sourceTree = "<group>"; };
198 E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LabelCollectionViewCell.xib; sourceTree = "<group>"; }; 201 E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LabelCollectionViewCell.xib; sourceTree = "<group>"; };
199 E9D9091F1F3D559D004CF99F /* TweetObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TweetObject.h; sourceTree = "<group>"; }; 202 E9D9091F1F3D559D004CF99F /* TweetObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TweetObject.h; sourceTree = "<group>"; };
200 E9D909201F3D559D004CF99F /* TweetObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TweetObject.m; sourceTree = "<group>"; }; 203 E9D909201F3D559D004CF99F /* TweetObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TweetObject.m; sourceTree = "<group>"; };
201 E9D909221F3D6E8C004CF99F /* BaseTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseTableViewController.h; sourceTree = "<group>"; }; 204 E9D909221F3D6E8C004CF99F /* BaseTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseTableViewController.h; sourceTree = "<group>"; };
202 E9D909231F3D6E8C004CF99F /* BaseTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BaseTableViewController.m; sourceTree = "<group>"; }; 205 E9D909231F3D6E8C004CF99F /* BaseTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BaseTableViewController.m; sourceTree = "<group>"; };
203 E9F73DC91F338A0F004A3A6F /* HistoryListTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryListTableViewCell.h; sourceTree = "<group>"; }; 206 E9F73DC91F338A0F004A3A6F /* HistoryListTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryListTableViewCell.h; sourceTree = "<group>"; };
204 E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryListTableViewCell.m; sourceTree = "<group>"; }; 207 E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryListTableViewCell.m; sourceTree = "<group>"; };
205 E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HistoryListTableViewCell.xib; sourceTree = "<group>"; }; 208 E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HistoryListTableViewCell.xib; sourceTree = "<group>"; };
206 /* End PBXFileReference section */ 209 /* End PBXFileReference section */
207 210
208 /* Begin PBXFrameworksBuildPhase section */ 211 /* Begin PBXFrameworksBuildPhase section */
209 6E84E36E1F27A700001EB88E /* Frameworks */ = { 212 6E84E36E1F27A700001EB88E /* Frameworks */ = {
210 isa = PBXFrameworksBuildPhase; 213 isa = PBXFrameworksBuildPhase;
211 buildActionMask = 2147483647; 214 buildActionMask = 2147483647;
212 files = ( 215 files = (
213 E997E0261F3AB66500709FB1 /* Social.framework in Frameworks */, 216 E997E0261F3AB66500709FB1 /* Social.framework in Frameworks */,
214 011799F0F2B47D80472673CE /* Pods_LifeLog.framework in Frameworks */, 217 011799F0F2B47D80472673CE /* Pods_LifeLog.framework in Frameworks */,
215 ); 218 );
216 runOnlyForDeploymentPostprocessing = 0; 219 runOnlyForDeploymentPostprocessing = 0;
217 }; 220 };
218 6E84E3871F27A703001EB88E /* Frameworks */ = { 221 6E84E3871F27A703001EB88E /* Frameworks */ = {
219 isa = PBXFrameworksBuildPhase; 222 isa = PBXFrameworksBuildPhase;
220 buildActionMask = 2147483647; 223 buildActionMask = 2147483647;
221 files = ( 224 files = (
222 ); 225 );
223 runOnlyForDeploymentPostprocessing = 0; 226 runOnlyForDeploymentPostprocessing = 0;
224 }; 227 };
225 6E84E3921F27A703001EB88E /* Frameworks */ = { 228 6E84E3921F27A703001EB88E /* Frameworks */ = {
226 isa = PBXFrameworksBuildPhase; 229 isa = PBXFrameworksBuildPhase;
227 buildActionMask = 2147483647; 230 buildActionMask = 2147483647;
228 files = ( 231 files = (
229 ); 232 );
230 runOnlyForDeploymentPostprocessing = 0; 233 runOnlyForDeploymentPostprocessing = 0;
231 }; 234 };
232 /* End PBXFrameworksBuildPhase section */ 235 /* End PBXFrameworksBuildPhase section */
233 236
234 /* Begin PBXGroup section */ 237 /* Begin PBXGroup section */
235 020C1721B642EF36F31E1BB4 /* Frameworks */ = { 238 020C1721B642EF36F31E1BB4 /* Frameworks */ = {
236 isa = PBXGroup; 239 isa = PBXGroup;
237 children = ( 240 children = (
238 E997E0251F3AB66500709FB1 /* Social.framework */, 241 E997E0251F3AB66500709FB1 /* Social.framework */,
239 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */, 242 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */,
240 ); 243 );
241 name = Frameworks; 244 name = Frameworks;
242 sourceTree = "<group>"; 245 sourceTree = "<group>";
243 }; 246 };
244 6E18CECF1F2E398C0029891F /* Login */ = { 247 6E18CECF1F2E398C0029891F /* Login */ = {
245 isa = PBXGroup; 248 isa = PBXGroup;
246 children = ( 249 children = (
247 9CA8AEE61F31BB1200C5FC74 /* ConfirmForgetPass */, 250 9CA8AEE61F31BB1200C5FC74 /* ConfirmForgetPass */,
248 6E18CED01F2E39DB0029891F /* LoginViewController.h */, 251 6E18CED01F2E39DB0029891F /* LoginViewController.h */,
249 6E18CED11F2E39DB0029891F /* LoginViewController.m */, 252 6E18CED11F2E39DB0029891F /* LoginViewController.m */,
250 6E18CED21F2E39DB0029891F /* LoginViewController.xib */, 253 6E18CED21F2E39DB0029891F /* LoginViewController.xib */,
251 ); 254 );
252 name = Login; 255 name = Login;
253 sourceTree = "<group>"; 256 sourceTree = "<group>";
254 }; 257 };
255 6E18CED51F2E3C0E0029891F /* ServerAPI */ = { 258 6E18CED51F2E3C0E0029891F /* ServerAPI */ = {
256 isa = PBXGroup; 259 isa = PBXGroup;
257 children = ( 260 children = (
258 6E18CED61F2E3C840029891F /* ServerAPI.h */, 261 6E18CED61F2E3C840029891F /* ServerAPI.h */,
259 6E18CED71F2E3C840029891F /* ServerAPI.m */, 262 6E18CED71F2E3C840029891F /* ServerAPI.m */,
260 ); 263 );
261 name = ServerAPI; 264 name = ServerAPI;
262 sourceTree = "<group>"; 265 sourceTree = "<group>";
263 }; 266 };
264 6E18CED91F2E40AE0029891F /* Model */ = { 267 6E18CED91F2E40AE0029891F /* Model */ = {
265 isa = PBXGroup; 268 isa = PBXGroup;
266 children = ( 269 children = (
267 6E18CEDD1F2E46570029891F /* Entities.h */, 270 6E18CEDD1F2E46570029891F /* Entities.h */,
268 6EA4AF2B1F40BB7A00F52CFE /* StepObject.h */, 271 6EA4AF2B1F40BB7A00F52CFE /* StepObject.h */,
269 6EA4AF2C1F40BB7A00F52CFE /* StepObject.m */, 272 6EA4AF2C1F40BB7A00F52CFE /* StepObject.m */,
270 6EA4AF2D1F40BB7A00F52CFE /* TargetInfor.h */, 273 6EA4AF2D1F40BB7A00F52CFE /* TargetInfor.h */,
271 6EA4AF2E1F40BB7A00F52CFE /* TargetInfor.m */, 274 6EA4AF2E1F40BB7A00F52CFE /* TargetInfor.m */,
272 6EA4AF2F1F40BB7A00F52CFE /* TopObject.h */, 275 6EA4AF2F1F40BB7A00F52CFE /* TopObject.h */,
273 6EA4AF301F40BB7A00F52CFE /* TopObject.m */, 276 6EA4AF301F40BB7A00F52CFE /* TopObject.m */,
274 6E18CEDA1F2E40F50029891F /* User.h */, 277 6E18CEDA1F2E40F50029891F /* User.h */,
275 6E18CEDB1F2E40F50029891F /* User.m */, 278 6E18CEDB1F2E40F50029891F /* User.m */,
276 E9373E481F35AA180059355A /* HistoryObject.h */, 279 E9373E481F35AA180059355A /* HistoryObject.h */,
277 E9373E491F35AA180059355A /* HistoryObject.m */, 280 E9373E491F35AA180059355A /* HistoryObject.m */,
278 E9373E4B1F361A230059355A /* HistoryGraphObject.h */, 281 E9373E4B1F361A230059355A /* HistoryGraphObject.h */,
279 E9373E4C1F361A230059355A /* HistoryGraphObject.m */, 282 E9373E4C1F361A230059355A /* HistoryGraphObject.m */,
280 E9D9091F1F3D559D004CF99F /* TweetObject.h */, 283 E9D9091F1F3D559D004CF99F /* TweetObject.h */,
281 E9D909201F3D559D004CF99F /* TweetObject.m */, 284 E9D909201F3D559D004CF99F /* TweetObject.m */,
282 E933E6721F3E0E4E002926F5 /* GroupObject.h */, 285 E933E6721F3E0E4E002926F5 /* GroupObject.h */,
283 E933E6731F3E0E4E002926F5 /* GroupObject.m */, 286 E933E6731F3E0E4E002926F5 /* GroupObject.m */,
287 E9497FD31F46EC1100E6AF8D /* MemberObject.h */,
288 E9497FD41F46EC1100E6AF8D /* MemberObject.m */,
284 ); 289 );
285 name = Model; 290 name = Model;
286 sourceTree = "<group>"; 291 sourceTree = "<group>";
287 }; 292 };
288 6E7F93391F35870F00EFBC71 /* TPKeyboardAvoiding */ = { 293 6E7F93391F35870F00EFBC71 /* TPKeyboardAvoiding */ = {
289 isa = PBXGroup; 294 isa = PBXGroup;
290 children = ( 295 children = (
291 6E7F933A1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.h */, 296 6E7F933A1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.h */,
292 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */, 297 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */,
293 6E7F933C1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.h */, 298 6E7F933C1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.h */,
294 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */, 299 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */,
295 6E7F933E1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.h */, 300 6E7F933E1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.h */,
296 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */, 301 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */,
297 6E7F93401F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.h */, 302 6E7F93401F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.h */,
298 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */, 303 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */,
299 ); 304 );
300 name = TPKeyboardAvoiding; 305 name = TPKeyboardAvoiding;
301 sourceTree = "<group>"; 306 sourceTree = "<group>";
302 }; 307 };
303 6E84E3681F27A700001EB88E = { 308 6E84E3681F27A700001EB88E = {
304 isa = PBXGroup; 309 isa = PBXGroup;
305 children = ( 310 children = (
306 6E84E3731F27A700001EB88E /* LifeLog */, 311 6E84E3731F27A700001EB88E /* LifeLog */,
307 6E84E38D1F27A703001EB88E /* LifeLogTests */, 312 6E84E38D1F27A703001EB88E /* LifeLogTests */,
308 6E84E3981F27A703001EB88E /* LifeLogUITests */, 313 6E84E3981F27A703001EB88E /* LifeLogUITests */,
309 DE8269E957EA47CD771BAB33 /* Pods */, 314 DE8269E957EA47CD771BAB33 /* Pods */,
310 020C1721B642EF36F31E1BB4 /* Frameworks */, 315 020C1721B642EF36F31E1BB4 /* Frameworks */,
316 783929CF869F5081762B3DCA /* Products */,
311 ); 317 );
312 sourceTree = "<group>"; 318 sourceTree = "<group>";
313 }; 319 };
314 6E84E3721F27A700001EB88E /* Products */ = { 320 6E84E3721F27A700001EB88E /* Products */ = {
315 isa = PBXGroup; 321 isa = PBXGroup;
316 children = ( 322 children = (
317 6E84E3711F27A700001EB88E /* LifeLog.app */, 323 6E84E3711F27A700001EB88E /* LifeLog.app */,
318 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */, 324 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */,
319 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */, 325 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */,
320 ); 326 );
321 name = Products; 327 name = Products;
322 sourceTree = "<group>"; 328 sourceTree = "<group>";
323 }; 329 };
324 6E84E3731F27A700001EB88E /* LifeLog */ = { 330 6E84E3731F27A700001EB88E /* LifeLog */ = {
325 isa = PBXGroup; 331 isa = PBXGroup;
326 children = ( 332 children = (
327 6E18CED91F2E40AE0029891F /* Model */, 333 6E18CED91F2E40AE0029891F /* Model */,
328 6E18CED51F2E3C0E0029891F /* ServerAPI */, 334 6E18CED51F2E3C0E0029891F /* ServerAPI */,
329 6EDC8BEB1F2C2F3300765ACC /* Common */, 335 6EDC8BEB1F2C2F3300765ACC /* Common */,
330 6ECC406D1F2A5FA500AAEB97 /* Library */, 336 6ECC406D1F2A5FA500AAEB97 /* Library */,
331 E99E13A71F336F0C00C78787 /* CustomView */, 337 E99E13A71F336F0C00C78787 /* CustomView */,
332 6E84E3A81F27A8A9001EB88E /* ViewControllers */, 338 6E84E3A81F27A8A9001EB88E /* ViewControllers */,
333 6E84E3A71F27A887001EB88E /* AppDelegate */, 339 6E84E3A71F27A887001EB88E /* AppDelegate */,
334 6E84E3801F27A701001EB88E /* Assets.xcassets */, 340 6E84E3801F27A701001EB88E /* Assets.xcassets */,
335 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */, 341 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */,
336 6E84E3851F27A701001EB88E /* Info.plist */, 342 6E84E3851F27A701001EB88E /* Info.plist */,
337 6E84E3741F27A701001EB88E /* Supporting Files */, 343 6E84E3741F27A701001EB88E /* Supporting Files */,
338 ); 344 );
339 path = LifeLog; 345 path = LifeLog;
340 sourceTree = "<group>"; 346 sourceTree = "<group>";
341 }; 347 };
342 6E84E3741F27A701001EB88E /* Supporting Files */ = { 348 6E84E3741F27A701001EB88E /* Supporting Files */ = {
343 isa = PBXGroup; 349 isa = PBXGroup;
344 children = ( 350 children = (
345 6E84E3751F27A701001EB88E /* main.m */, 351 6E84E3751F27A701001EB88E /* main.m */,
346 6EF163091F29069300DA306C /* Localizable.strings */, 352 6EF163091F29069300DA306C /* Localizable.strings */,
347 ); 353 );
348 name = "Supporting Files"; 354 name = "Supporting Files";
349 sourceTree = "<group>"; 355 sourceTree = "<group>";
350 }; 356 };
351 6E84E38D1F27A703001EB88E /* LifeLogTests */ = { 357 6E84E38D1F27A703001EB88E /* LifeLogTests */ = {
352 isa = PBXGroup; 358 isa = PBXGroup;
353 children = ( 359 children = (
354 6E84E38E1F27A703001EB88E /* LifeLogTests.m */, 360 6E84E38E1F27A703001EB88E /* LifeLogTests.m */,
355 6E84E3901F27A703001EB88E /* Info.plist */, 361 6E84E3901F27A703001EB88E /* Info.plist */,
356 ); 362 );
357 path = LifeLogTests; 363 path = LifeLogTests;
358 sourceTree = "<group>"; 364 sourceTree = "<group>";
359 }; 365 };
360 6E84E3981F27A703001EB88E /* LifeLogUITests */ = { 366 6E84E3981F27A703001EB88E /* LifeLogUITests */ = {
361 isa = PBXGroup; 367 isa = PBXGroup;
362 children = ( 368 children = (
363 6E84E3991F27A703001EB88E /* LifeLogUITests.m */, 369 6E84E3991F27A703001EB88E /* LifeLogUITests.m */,
364 6E84E39B1F27A703001EB88E /* Info.plist */, 370 6E84E39B1F27A703001EB88E /* Info.plist */,
365 ); 371 );
366 path = LifeLogUITests; 372 path = LifeLogUITests;
367 sourceTree = "<group>"; 373 sourceTree = "<group>";
368 }; 374 };
369 6E84E3A71F27A887001EB88E /* AppDelegate */ = { 375 6E84E3A71F27A887001EB88E /* AppDelegate */ = {
370 isa = PBXGroup; 376 isa = PBXGroup;
371 children = ( 377 children = (
372 6E84E3771F27A701001EB88E /* AppDelegate.h */, 378 6E84E3771F27A701001EB88E /* AppDelegate.h */,
373 6E84E3781F27A701001EB88E /* AppDelegate.m */, 379 6E84E3781F27A701001EB88E /* AppDelegate.m */,
374 ); 380 );
375 name = AppDelegate; 381 name = AppDelegate;
376 sourceTree = "<group>"; 382 sourceTree = "<group>";
377 }; 383 };
378 6E84E3A81F27A8A9001EB88E /* ViewControllers */ = { 384 6E84E3A81F27A8A9001EB88E /* ViewControllers */ = {
379 isa = PBXGroup; 385 isa = PBXGroup;
380 children = ( 386 children = (
381 9CBDA0F71F2ECDFD0055DED1 /* BaseViewController */, 387 9CBDA0F71F2ECDFD0055DED1 /* BaseViewController */,
382 9CBDA0FB1F2F03490055DED1 /* Register */, 388 9CBDA0FB1F2F03490055DED1 /* Register */,
383 6E18CECF1F2E398C0029891F /* Login */, 389 6E18CECF1F2E398C0029891F /* Login */,
384 6E84E3AC1F27A954001EB88E /* SNS */, 390 6E84E3AC1F27A954001EB88E /* SNS */,
385 6E84E3C11F27AC89001EB88E /* Map */, 391 6E84E3C11F27AC89001EB88E /* Map */,
386 6E84E3AB1F27A946001EB88E /* Ranking */, 392 6E84E3AB1F27A946001EB88E /* Ranking */,
387 6E84E3AA1F27A924001EB88E /* History */, 393 6E84E3AA1F27A924001EB88E /* History */,
388 6E84E3A91F27A915001EB88E /* Home */, 394 6E84E3A91F27A915001EB88E /* Home */,
389 ); 395 );
390 name = ViewControllers; 396 name = ViewControllers;
391 sourceTree = "<group>"; 397 sourceTree = "<group>";
392 }; 398 };
393 6E84E3A91F27A915001EB88E /* Home */ = { 399 6E84E3A91F27A915001EB88E /* Home */ = {
394 isa = PBXGroup; 400 isa = PBXGroup;
395 children = ( 401 children = (
396 6E8DA0F31F2BAC0800CCE941 /* Today */, 402 6E8DA0F31F2BAC0800CCE941 /* Today */,
397 6E84E3AD1F27A975001EB88E /* HomeViewController.h */, 403 6E84E3AD1F27A975001EB88E /* HomeViewController.h */,
398 6E84E3AE1F27A975001EB88E /* HomeViewController.m */, 404 6E84E3AE1F27A975001EB88E /* HomeViewController.m */,
399 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */, 405 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */,
400 ); 406 );
401 name = Home; 407 name = Home;
402 sourceTree = "<group>"; 408 sourceTree = "<group>";
403 }; 409 };
404 6E84E3AA1F27A924001EB88E /* History */ = { 410 6E84E3AA1F27A924001EB88E /* History */ = {
405 isa = PBXGroup; 411 isa = PBXGroup;
406 children = ( 412 children = (
407 6E84E3B21F27A98B001EB88E /* HistoryViewController.h */, 413 6E84E3B21F27A98B001EB88E /* HistoryViewController.h */,
408 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */, 414 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */,
409 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */, 415 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */,
410 E9F73DC91F338A0F004A3A6F /* HistoryListTableViewCell.h */, 416 E9F73DC91F338A0F004A3A6F /* HistoryListTableViewCell.h */,
411 E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */, 417 E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */,
412 E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */, 418 E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */,
413 ); 419 );
414 name = History; 420 name = History;
415 sourceTree = "<group>"; 421 sourceTree = "<group>";
416 }; 422 };
417 6E84E3AB1F27A946001EB88E /* Ranking */ = { 423 6E84E3AB1F27A946001EB88E /* Ranking */ = {
418 isa = PBXGroup; 424 isa = PBXGroup;
419 children = ( 425 children = (
420 6E84E3B71F27A9A0001EB88E /* RankingViewController.h */, 426 6E84E3B71F27A9A0001EB88E /* RankingViewController.h */,
421 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */, 427 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */,
422 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */, 428 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */,
423 E9682E2B1F39675A00FE05A2 /* RankingTableViewCell.h */, 429 E9682E2B1F39675A00FE05A2 /* RankingTableViewCell.h */,
424 E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */, 430 E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */,
425 E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */, 431 E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */,
426 ); 432 );
427 name = Ranking; 433 name = Ranking;
428 sourceTree = "<group>"; 434 sourceTree = "<group>";
429 }; 435 };
430 6E84E3AC1F27A954001EB88E /* SNS */ = { 436 6E84E3AC1F27A954001EB88E /* SNS */ = {
431 isa = PBXGroup; 437 isa = PBXGroup;
432 children = ( 438 children = (
433 E933E6751F4050E6002926F5 /* GrouDetail */, 439 E933E6751F4050E6002926F5 /* GroupDetail */,
434 E933E6671F3E0479002926F5 /* SeachGroup */, 440 E933E6671F3E0479002926F5 /* SeachGroup */,
435 6E84E3BC1F27A9B1001EB88E /* SNSViewController.h */, 441 6E84E3BC1F27A9B1001EB88E /* SNSViewController.h */,
436 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */, 442 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */,
437 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */, 443 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */,
438 E968550E1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.h */, 444 E968550E1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.h */,
439 E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */, 445 E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */,
440 E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */, 446 E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */,
441 ); 447 );
442 name = SNS; 448 name = SNS;
443 sourceTree = "<group>"; 449 sourceTree = "<group>";
444 }; 450 };
445 6E84E3C11F27AC89001EB88E /* Map */ = { 451 6E84E3C11F27AC89001EB88E /* Map */ = {
446 isa = PBXGroup; 452 isa = PBXGroup;
447 children = ( 453 children = (
448 6E84E3C21F27ACAE001EB88E /* MapViewController.h */, 454 6E84E3C21F27ACAE001EB88E /* MapViewController.h */,
449 6E84E3C31F27ACAE001EB88E /* MapViewController.m */, 455 6E84E3C31F27ACAE001EB88E /* MapViewController.m */,
450 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */, 456 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */,
451 ); 457 );
452 name = Map; 458 name = Map;
453 sourceTree = "<group>"; 459 sourceTree = "<group>";
454 }; 460 };
455 6E8DA0F31F2BAC0800CCE941 /* Today */ = { 461 6E8DA0F31F2BAC0800CCE941 /* Today */ = {
456 isa = PBXGroup; 462 isa = PBXGroup;
457 children = ( 463 children = (
458 6E8DA0F41F2BAC3400CCE941 /* TodayViewController.h */, 464 6E8DA0F41F2BAC3400CCE941 /* TodayViewController.h */,
459 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */, 465 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */,
460 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */, 466 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */,
461 ); 467 );
462 name = Today; 468 name = Today;
463 sourceTree = "<group>"; 469 sourceTree = "<group>";
464 }; 470 };
465 6ECC406D1F2A5FA500AAEB97 /* Library */ = { 471 6ECC406D1F2A5FA500AAEB97 /* Library */ = {
466 isa = PBXGroup; 472 isa = PBXGroup;
467 children = ( 473 children = (
468 6E7F93391F35870F00EFBC71 /* TPKeyboardAvoiding */, 474 6E7F93391F35870F00EFBC71 /* TPKeyboardAvoiding */,
469 6ECC406E1F2A5FB200AAEB97 /* Category */, 475 6ECC406E1F2A5FB200AAEB97 /* Category */,
470 ); 476 );
471 name = Library; 477 name = Library;
472 sourceTree = "<group>"; 478 sourceTree = "<group>";
473 }; 479 };
474 6ECC406E1F2A5FB200AAEB97 /* Category */ = { 480 6ECC406E1F2A5FB200AAEB97 /* Category */ = {
475 isa = PBXGroup; 481 isa = PBXGroup;
476 children = ( 482 children = (
477 6ECC406F1F2A5FEB00AAEB97 /* NSDate+helper.h */, 483 6ECC406F1F2A5FEB00AAEB97 /* NSDate+helper.h */,
478 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */, 484 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */,
479 ); 485 );
480 name = Category; 486 name = Category;
481 sourceTree = "<group>"; 487 sourceTree = "<group>";
482 }; 488 };
483 6EDC8BEB1F2C2F3300765ACC /* Common */ = { 489 6EDC8BEB1F2C2F3300765ACC /* Common */ = {
484 isa = PBXGroup; 490 isa = PBXGroup;
485 children = ( 491 children = (
486 6EDC8BEC1F2C2FB800765ACC /* Utilities.h */, 492 6EDC8BEC1F2C2FB800765ACC /* Utilities.h */,
487 6EDC8BED1F2C2FB800765ACC /* Utilities.m */, 493 6EDC8BED1F2C2FB800765ACC /* Utilities.m */,
488 6EDC8BF21F2C68D700765ACC /* CMMotionActivityExtra.h */, 494 6EDC8BF21F2C68D700765ACC /* CMMotionActivityExtra.h */,
489 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */, 495 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */,
490 ); 496 );
491 name = Common; 497 name = Common;
492 sourceTree = "<group>"; 498 sourceTree = "<group>";
493 }; 499 };
500 783929CF869F5081762B3DCA /* Products */ = {
501 isa = PBXGroup;
502 children = (
503 );
504 name = Products;
505 sourceTree = "<group>";
506 };
494 9CA8AEE61F31BB1200C5FC74 /* ConfirmForgetPass */ = { 507 9CA8AEE61F31BB1200C5FC74 /* ConfirmForgetPass */ = {
495 isa = PBXGroup; 508 isa = PBXGroup;
496 children = ( 509 children = (
497 9CA8AEE71F31BB4600C5FC74 /* ConfirmForgetPassViewController.h */, 510 9CA8AEE71F31BB4600C5FC74 /* ConfirmForgetPassViewController.h */,
498 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */, 511 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */,
499 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */, 512 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */,
500 ); 513 );
501 name = ConfirmForgetPass; 514 name = ConfirmForgetPass;
502 sourceTree = "<group>"; 515 sourceTree = "<group>";
503 }; 516 };
504 9CBDA0F71F2ECDFD0055DED1 /* BaseViewController */ = { 517 9CBDA0F71F2ECDFD0055DED1 /* BaseViewController */ = {
505 isa = PBXGroup; 518 isa = PBXGroup;
506 children = ( 519 children = (
507 9CBDA0F81F2ECE2C0055DED1 /* BaseViewController.h */, 520 9CBDA0F81F2ECE2C0055DED1 /* BaseViewController.h */,
508 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */, 521 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */,
509 6E48AF0B1F2F9D3200C1D184 /* CustomTextField.h */, 522 6E48AF0B1F2F9D3200C1D184 /* CustomTextField.h */,
510 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */, 523 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */,
511 E9D909221F3D6E8C004CF99F /* BaseTableViewController.h */, 524 E9D909221F3D6E8C004CF99F /* BaseTableViewController.h */,
512 E9D909231F3D6E8C004CF99F /* BaseTableViewController.m */, 525 E9D909231F3D6E8C004CF99F /* BaseTableViewController.m */,
513 ); 526 );
514 name = BaseViewController; 527 name = BaseViewController;
515 sourceTree = "<group>"; 528 sourceTree = "<group>";
516 }; 529 };
517 9CBDA0FB1F2F03490055DED1 /* Register */ = { 530 9CBDA0FB1F2F03490055DED1 /* Register */ = {
518 isa = PBXGroup; 531 isa = PBXGroup;
519 children = ( 532 children = (
520 9CBDA0FC1F2F03810055DED1 /* RegisterViewController.h */, 533 9CBDA0FC1F2F03810055DED1 /* RegisterViewController.h */,
521 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */, 534 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */,
522 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */, 535 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */,
523 ); 536 );
524 name = Register; 537 name = Register;
525 sourceTree = "<group>"; 538 sourceTree = "<group>";
526 }; 539 };
527 DE8269E957EA47CD771BAB33 /* Pods */ = { 540 DE8269E957EA47CD771BAB33 /* Pods */ = {
528 isa = PBXGroup; 541 isa = PBXGroup;
529 children = ( 542 children = (
530 6E84E3721F27A700001EB88E /* Products */, 543 6E84E3721F27A700001EB88E /* Products */,
531 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */, 544 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */,
532 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */, 545 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */,
533 ); 546 );
534 name = Pods; 547 name = Pods;
535 sourceTree = "<group>"; 548 sourceTree = "<group>";
536 }; 549 };
537 E933E6671F3E0479002926F5 /* SeachGroup */ = { 550 E933E6671F3E0479002926F5 /* SeachGroup */ = {
538 isa = PBXGroup; 551 isa = PBXGroup;
539 children = ( 552 children = (
540 E933E6681F3E04A6002926F5 /* SearchGroupViewController.h */, 553 E933E6681F3E04A6002926F5 /* SearchGroupViewController.h */,
541 E933E6691F3E04A6002926F5 /* SearchGroupViewController.m */, 554 E933E6691F3E04A6002926F5 /* SearchGroupViewController.m */,
542 E933E66A1F3E04A6002926F5 /* SearchGroupViewController.xib */, 555 E933E66A1F3E04A6002926F5 /* SearchGroupViewController.xib */,
543 E933E66D1F3E09B6002926F5 /* SearchGroupTableViewCell.h */, 556 E933E66D1F3E09B6002926F5 /* SearchGroupTableViewCell.h */,
544 E933E66E1F3E09B6002926F5 /* SearchGroupTableViewCell.m */, 557 E933E66E1F3E09B6002926F5 /* SearchGroupTableViewCell.m */,
545 E933E66F1F3E09B6002926F5 /* SearchGroupTableViewCell.xib */, 558 E933E66F1F3E09B6002926F5 /* SearchGroupTableViewCell.xib */,
546 ); 559 );
547 name = SeachGroup; 560 name = SeachGroup;
548 sourceTree = "<group>"; 561 sourceTree = "<group>";
549 }; 562 };
550 E933E6751F4050E6002926F5 /* GrouDetail */ = { 563 E933E6751F4050E6002926F5 /* GroupDetail */ = {
551 isa = PBXGroup; 564 isa = PBXGroup;
552 children = ( 565 children = (
553 E933E6761F40513C002926F5 /* GroupDetailViewController.h */, 566 E933E6761F40513C002926F5 /* GroupDetailViewController.h */,
554 E933E6771F40513C002926F5 /* GroupDetailViewController.m */, 567 E933E6771F40513C002926F5 /* GroupDetailViewController.m */,
555 E933E6781F40513C002926F5 /* GroupDetailViewController.xib */, 568 E933E6781F40513C002926F5 /* GroupDetailViewController.xib */,
556 ); 569 );
557 name = GrouDetail; 570 name = GroupDetail;
558 sourceTree = "<group>"; 571 sourceTree = "<group>";
559 }; 572 };
560 E9373E441F35966D0059355A /* AutoTranslateView */ = { 573 E9373E441F35966D0059355A /* AutoTranslateView */ = {
561 isa = PBXGroup; 574 isa = PBXGroup;
562 children = ( 575 children = (
563 E9373E451F3596940059355A /* AutoTransLabel.h */, 576 E9373E451F3596940059355A /* AutoTransLabel.h */,
564 E9373E461F3596940059355A /* AutoTransLabel.m */, 577 E9373E461F3596940059355A /* AutoTransLabel.m */,
565 E96855081F3C444900317CEF /* AutoTransButton.h */, 578 E96855081F3C444900317CEF /* AutoTransButton.h */,
566 E96855091F3C444900317CEF /* AutoTransButton.m */, 579 E96855091F3C444900317CEF /* AutoTransButton.m */,
567 ); 580 );
568 name = AutoTranslateView; 581 name = AutoTranslateView;
569 sourceTree = "<group>"; 582 sourceTree = "<group>";
570 }; 583 };
571 E99E13A71F336F0C00C78787 /* CustomView */ = { 584 E99E13A71F336F0C00C78787 /* CustomView */ = {
572 isa = PBXGroup; 585 isa = PBXGroup;
573 children = ( 586 children = (
574 E9373E441F35966D0059355A /* AutoTranslateView */, 587 E9373E441F35966D0059355A /* AutoTranslateView */,
575 E99E13A81F336F1700C78787 /* CollectionView */, 588 E99E13A81F336F1700C78787 /* CollectionView */,
576 ); 589 );
577 name = CustomView; 590 name = CustomView;
578 sourceTree = "<group>"; 591 sourceTree = "<group>";
579 }; 592 };
580 E99E13A81F336F1700C78787 /* CollectionView */ = { 593 E99E13A81F336F1700C78787 /* CollectionView */ = {
581 isa = PBXGroup; 594 isa = PBXGroup;
582 children = ( 595 children = (
583 E99E13AE1F33720600C78787 /* LabelCollectionViewCell.h */, 596 E99E13AE1F33720600C78787 /* LabelCollectionViewCell.h */,
584 E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */, 597 E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */,
585 E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */, 598 E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */,
586 E99E13A91F336F3600C78787 /* CollectionView.h */, 599 E99E13A91F336F3600C78787 /* CollectionView.h */,
587 E99E13AA1F336F3600C78787 /* CollectionView.m */, 600 E99E13AA1F336F3600C78787 /* CollectionView.m */,
588 E99E13AC1F336F4500C78787 /* CollectionView.xib */, 601 E99E13AC1F336F4500C78787 /* CollectionView.xib */,
589 ); 602 );
590 name = CollectionView; 603 name = CollectionView;
591 sourceTree = "<group>"; 604 sourceTree = "<group>";
592 }; 605 };
593 /* End PBXGroup section */ 606 /* End PBXGroup section */
594 607
595 /* Begin PBXNativeTarget section */ 608 /* Begin PBXNativeTarget section */
596 6E84E3701F27A700001EB88E /* LifeLog */ = { 609 6E84E3701F27A700001EB88E /* LifeLog */ = {
597 isa = PBXNativeTarget; 610 isa = PBXNativeTarget;
598 buildConfigurationList = 6E84E39E1F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLog" */; 611 buildConfigurationList = 6E84E39E1F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLog" */;
599 buildPhases = ( 612 buildPhases = (
600 2BB22CAEC0728AA1E086BCE3 /* [CP] Check Pods Manifest.lock */, 613 2BB22CAEC0728AA1E086BCE3 /* [CP] Check Pods Manifest.lock */,
601 6E84E36D1F27A700001EB88E /* Sources */, 614 6E84E36D1F27A700001EB88E /* Sources */,
602 6E84E36E1F27A700001EB88E /* Frameworks */, 615 6E84E36E1F27A700001EB88E /* Frameworks */,
603 6E84E36F1F27A700001EB88E /* Resources */, 616 6E84E36F1F27A700001EB88E /* Resources */,
604 22F89B11794CEB4E265996AC /* [CP] Embed Pods Frameworks */, 617 22F89B11794CEB4E265996AC /* [CP] Embed Pods Frameworks */,
605 96653BDB2C24A87C2866C897 /* [CP] Copy Pods Resources */, 618 96653BDB2C24A87C2866C897 /* [CP] Copy Pods Resources */,
606 ); 619 );
607 buildRules = ( 620 buildRules = (
608 ); 621 );
609 dependencies = ( 622 dependencies = (
610 ); 623 );
611 name = LifeLog; 624 name = LifeLog;
612 productName = LifeLog; 625 productName = LifeLog;
613 productReference = 6E84E3711F27A700001EB88E /* LifeLog.app */; 626 productReference = 6E84E3711F27A700001EB88E /* LifeLog.app */;
614 productType = "com.apple.product-type.application"; 627 productType = "com.apple.product-type.application";
615 }; 628 };
616 6E84E3891F27A703001EB88E /* LifeLogTests */ = { 629 6E84E3891F27A703001EB88E /* LifeLogTests */ = {
617 isa = PBXNativeTarget; 630 isa = PBXNativeTarget;
618 buildConfigurationList = 6E84E3A11F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogTests" */; 631 buildConfigurationList = 6E84E3A11F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogTests" */;
619 buildPhases = ( 632 buildPhases = (
620 6E84E3861F27A703001EB88E /* Sources */, 633 6E84E3861F27A703001EB88E /* Sources */,
621 6E84E3871F27A703001EB88E /* Frameworks */, 634 6E84E3871F27A703001EB88E /* Frameworks */,
622 6E84E3881F27A703001EB88E /* Resources */, 635 6E84E3881F27A703001EB88E /* Resources */,
623 ); 636 );
624 buildRules = ( 637 buildRules = (
625 ); 638 );
626 dependencies = ( 639 dependencies = (
627 6E84E38C1F27A703001EB88E /* PBXTargetDependency */, 640 6E84E38C1F27A703001EB88E /* PBXTargetDependency */,
628 ); 641 );
629 name = LifeLogTests; 642 name = LifeLogTests;
630 productName = LifeLogTests; 643 productName = LifeLogTests;
631 productReference = 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */; 644 productReference = 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */;
632 productType = "com.apple.product-type.bundle.unit-test"; 645 productType = "com.apple.product-type.bundle.unit-test";
633 }; 646 };
634 6E84E3941F27A703001EB88E /* LifeLogUITests */ = { 647 6E84E3941F27A703001EB88E /* LifeLogUITests */ = {
635 isa = PBXNativeTarget; 648 isa = PBXNativeTarget;
636 buildConfigurationList = 6E84E3A41F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogUITests" */; 649 buildConfigurationList = 6E84E3A41F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogUITests" */;
637 buildPhases = ( 650 buildPhases = (
638 6E84E3911F27A703001EB88E /* Sources */, 651 6E84E3911F27A703001EB88E /* Sources */,
639 6E84E3921F27A703001EB88E /* Frameworks */, 652 6E84E3921F27A703001EB88E /* Frameworks */,
640 6E84E3931F27A703001EB88E /* Resources */, 653 6E84E3931F27A703001EB88E /* Resources */,
641 ); 654 );
642 buildRules = ( 655 buildRules = (
643 ); 656 );
644 dependencies = ( 657 dependencies = (
645 6E84E3971F27A703001EB88E /* PBXTargetDependency */, 658 6E84E3971F27A703001EB88E /* PBXTargetDependency */,
646 ); 659 );
647 name = LifeLogUITests; 660 name = LifeLogUITests;
648 productName = LifeLogUITests; 661 productName = LifeLogUITests;
649 productReference = 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */; 662 productReference = 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */;
650 productType = "com.apple.product-type.bundle.ui-testing"; 663 productType = "com.apple.product-type.bundle.ui-testing";
651 }; 664 };
652 /* End PBXNativeTarget section */ 665 /* End PBXNativeTarget section */
653 666
654 /* Begin PBXProject section */ 667 /* Begin PBXProject section */
655 6E84E3691F27A700001EB88E /* Project object */ = { 668 6E84E3691F27A700001EB88E /* Project object */ = {
656 isa = PBXProject; 669 isa = PBXProject;
657 attributes = { 670 attributes = {
658 LastUpgradeCheck = 0830; 671 LastUpgradeCheck = 0830;
659 ORGANIZATIONNAME = PhongNV; 672 ORGANIZATIONNAME = PhongNV;
660 TargetAttributes = { 673 TargetAttributes = {
661 6E84E3701F27A700001EB88E = { 674 6E84E3701F27A700001EB88E = {
662 CreatedOnToolsVersion = 8.3.3; 675 CreatedOnToolsVersion = 8.3.3;
663 DevelopmentTeam = UXU4V3VUN4; 676 DevelopmentTeam = UXU4V3VUN4;
664 ProvisioningStyle = Automatic; 677 ProvisioningStyle = Automatic;
665 }; 678 };
666 6E84E3891F27A703001EB88E = { 679 6E84E3891F27A703001EB88E = {
667 CreatedOnToolsVersion = 8.3.3; 680 CreatedOnToolsVersion = 8.3.3;
668 ProvisioningStyle = Automatic; 681 ProvisioningStyle = Automatic;
669 TestTargetID = 6E84E3701F27A700001EB88E; 682 TestTargetID = 6E84E3701F27A700001EB88E;
670 }; 683 };
671 6E84E3941F27A703001EB88E = { 684 6E84E3941F27A703001EB88E = {
672 CreatedOnToolsVersion = 8.3.3; 685 CreatedOnToolsVersion = 8.3.3;
673 ProvisioningStyle = Automatic; 686 ProvisioningStyle = Automatic;
674 TestTargetID = 6E84E3701F27A700001EB88E; 687 TestTargetID = 6E84E3701F27A700001EB88E;
675 }; 688 };
676 }; 689 };
677 }; 690 };
678 buildConfigurationList = 6E84E36C1F27A700001EB88E /* Build configuration list for PBXProject "LifeLog" */; 691 buildConfigurationList = 6E84E36C1F27A700001EB88E /* Build configuration list for PBXProject "LifeLog" */;
679 compatibilityVersion = "Xcode 3.2"; 692 compatibilityVersion = "Xcode 3.2";
680 developmentRegion = English; 693 developmentRegion = English;
681 hasScannedForEncodings = 0; 694 hasScannedForEncodings = 0;
682 knownRegions = ( 695 knownRegions = (
683 en, 696 en,
684 Base, 697 Base,
685 ); 698 );
686 mainGroup = 6E84E3681F27A700001EB88E; 699 mainGroup = 6E84E3681F27A700001EB88E;
687 productRefGroup = 6E84E3721F27A700001EB88E /* Products */; 700 productRefGroup = 783929CF869F5081762B3DCA /* Products */;
688 projectDirPath = ""; 701 projectDirPath = "";
689 projectRoot = ""; 702 projectRoot = "";
690 targets = ( 703 targets = (
691 6E84E3701F27A700001EB88E /* LifeLog */, 704 6E84E3701F27A700001EB88E /* LifeLog */,
692 6E84E3891F27A703001EB88E /* LifeLogTests */, 705 6E84E3891F27A703001EB88E /* LifeLogTests */,
693 6E84E3941F27A703001EB88E /* LifeLogUITests */, 706 6E84E3941F27A703001EB88E /* LifeLogUITests */,
694 ); 707 );
695 }; 708 };
696 /* End PBXProject section */ 709 /* End PBXProject section */
697 710
698 /* Begin PBXResourcesBuildPhase section */ 711 /* Begin PBXResourcesBuildPhase section */
699 6E84E36F1F27A700001EB88E /* Resources */ = { 712 6E84E36F1F27A700001EB88E /* Resources */ = {
700 isa = PBXResourcesBuildPhase; 713 isa = PBXResourcesBuildPhase;
701 buildActionMask = 2147483647; 714 buildActionMask = 2147483647;
702 files = ( 715 files = (
703 9CBDA1001F2F03810055DED1 /* RegisterViewController.xib in Resources */, 716 9CBDA1001F2F03810055DED1 /* RegisterViewController.xib in Resources */,
704 6E18CED41F2E39DB0029891F /* LoginViewController.xib in Resources */, 717 6E18CED41F2E39DB0029891F /* LoginViewController.xib in Resources */,
705 E99E13AD1F336F4500C78787 /* CollectionView.xib in Resources */, 718 E99E13AD1F336F4500C78787 /* CollectionView.xib in Resources */,
706 6E84E3BB1F27A9A0001EB88E /* RankingViewController.xib in Resources */, 719 6E84E3BB1F27A9A0001EB88E /* RankingViewController.xib in Resources */,
707 9CA8AEEB1F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib in Resources */, 720 9CA8AEEB1F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib in Resources */,
708 6E84E3C01F27A9B1001EB88E /* SNSViewController.xib in Resources */, 721 6E84E3C01F27A9B1001EB88E /* SNSViewController.xib in Resources */,
709 E9682E2F1F39675A00FE05A2 /* RankingTableViewCell.xib in Resources */, 722 E9682E2F1F39675A00FE05A2 /* RankingTableViewCell.xib in Resources */,
710 E933E6711F3E09B6002926F5 /* SearchGroupTableViewCell.xib in Resources */, 723 E933E6711F3E09B6002926F5 /* SearchGroupTableViewCell.xib in Resources */,
711 6E8DA0F81F2BAC3500CCE941 /* TodayViewController.xib in Resources */, 724 6E8DA0F81F2BAC3500CCE941 /* TodayViewController.xib in Resources */,
712 6E84E3841F27A701001EB88E /* LaunchScreen.storyboard in Resources */, 725 6E84E3841F27A701001EB88E /* LaunchScreen.storyboard in Resources */,
713 6E84E3811F27A701001EB88E /* Assets.xcassets in Resources */, 726 6E84E3811F27A701001EB88E /* Assets.xcassets in Resources */,
714 6E84E3C61F27ACAE001EB88E /* MapViewController.xib in Resources */, 727 6E84E3C61F27ACAE001EB88E /* MapViewController.xib in Resources */,
715 6EF1630A1F29069300DA306C /* Localizable.strings in Resources */, 728 6EF1630A1F29069300DA306C /* Localizable.strings in Resources */,
716 6E84E3B11F27A975001EB88E /* HomeViewController.xib in Resources */, 729 6E84E3B11F27A975001EB88E /* HomeViewController.xib in Resources */,
717 6E84E3B61F27A98B001EB88E /* HistoryViewController.xib in Resources */, 730 6E84E3B61F27A98B001EB88E /* HistoryViewController.xib in Resources */,
718 E933E66C1F3E04A6002926F5 /* SearchGroupViewController.xib in Resources */, 731 E933E66C1F3E04A6002926F5 /* SearchGroupViewController.xib in Resources */,
719 E96855121F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib in Resources */, 732 E96855121F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib in Resources */,
720 E933E67A1F40513C002926F5 /* GroupDetailViewController.xib in Resources */, 733 E933E67A1F40513C002926F5 /* GroupDetailViewController.xib in Resources */,
721 E99E13B21F33720600C78787 /* LabelCollectionViewCell.xib in Resources */, 734 E99E13B21F33720600C78787 /* LabelCollectionViewCell.xib in Resources */,
722 E9F73DCD1F338A0F004A3A6F /* HistoryListTableViewCell.xib in Resources */, 735 E9F73DCD1F338A0F004A3A6F /* HistoryListTableViewCell.xib in Resources */,
723 ); 736 );
724 runOnlyForDeploymentPostprocessing = 0; 737 runOnlyForDeploymentPostprocessing = 0;
725 }; 738 };
726 6E84E3881F27A703001EB88E /* Resources */ = { 739 6E84E3881F27A703001EB88E /* Resources */ = {
727 isa = PBXResourcesBuildPhase; 740 isa = PBXResourcesBuildPhase;
728 buildActionMask = 2147483647; 741 buildActionMask = 2147483647;
729 files = ( 742 files = (
730 ); 743 );
731 runOnlyForDeploymentPostprocessing = 0; 744 runOnlyForDeploymentPostprocessing = 0;
732 }; 745 };
733 6E84E3931F27A703001EB88E /* Resources */ = { 746 6E84E3931F27A703001EB88E /* Resources */ = {
734 isa = PBXResourcesBuildPhase; 747 isa = PBXResourcesBuildPhase;
735 buildActionMask = 2147483647; 748 buildActionMask = 2147483647;
736 files = ( 749 files = (
737 ); 750 );
738 runOnlyForDeploymentPostprocessing = 0; 751 runOnlyForDeploymentPostprocessing = 0;
739 }; 752 };
740 /* End PBXResourcesBuildPhase section */ 753 /* End PBXResourcesBuildPhase section */
741 754
742 /* Begin PBXShellScriptBuildPhase section */ 755 /* Begin PBXShellScriptBuildPhase section */
743 22F89B11794CEB4E265996AC /* [CP] Embed Pods Frameworks */ = { 756 22F89B11794CEB4E265996AC /* [CP] Embed Pods Frameworks */ = {
744 isa = PBXShellScriptBuildPhase; 757 isa = PBXShellScriptBuildPhase;
745 buildActionMask = 2147483647; 758 buildActionMask = 2147483647;
746 files = ( 759 files = (
747 ); 760 );
748 inputPaths = ( 761 inputPaths = (
749 ); 762 );
750 name = "[CP] Embed Pods Frameworks"; 763 name = "[CP] Embed Pods Frameworks";
751 outputPaths = ( 764 outputPaths = (
752 ); 765 );
753 runOnlyForDeploymentPostprocessing = 0; 766 runOnlyForDeploymentPostprocessing = 0;
754 shellPath = /bin/sh; 767 shellPath = /bin/sh;
755 shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog-frameworks.sh\"\n"; 768 shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog-frameworks.sh\"\n";
756 showEnvVarsInLog = 0; 769 showEnvVarsInLog = 0;
757 }; 770 };
758 2BB22CAEC0728AA1E086BCE3 /* [CP] Check Pods Manifest.lock */ = { 771 2BB22CAEC0728AA1E086BCE3 /* [CP] Check Pods Manifest.lock */ = {
759 isa = PBXShellScriptBuildPhase; 772 isa = PBXShellScriptBuildPhase;
760 buildActionMask = 2147483647; 773 buildActionMask = 2147483647;
761 files = ( 774 files = (
762 ); 775 );
763 inputPaths = ( 776 inputPaths = (
764 ); 777 );
765 name = "[CP] Check Pods Manifest.lock"; 778 name = "[CP] Check Pods Manifest.lock";
766 outputPaths = ( 779 outputPaths = (
767 ); 780 );
768 runOnlyForDeploymentPostprocessing = 0; 781 runOnlyForDeploymentPostprocessing = 0;
769 shellPath = /bin/sh; 782 shellPath = /bin/sh;
770 shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; 783 shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
771 showEnvVarsInLog = 0; 784 showEnvVarsInLog = 0;
772 }; 785 };
773 96653BDB2C24A87C2866C897 /* [CP] Copy Pods Resources */ = { 786 96653BDB2C24A87C2866C897 /* [CP] Copy Pods Resources */ = {
774 isa = PBXShellScriptBuildPhase; 787 isa = PBXShellScriptBuildPhase;
775 buildActionMask = 2147483647; 788 buildActionMask = 2147483647;
776 files = ( 789 files = (
777 ); 790 );
778 inputPaths = ( 791 inputPaths = (
779 ); 792 );
780 name = "[CP] Copy Pods Resources"; 793 name = "[CP] Copy Pods Resources";
781 outputPaths = ( 794 outputPaths = (
782 ); 795 );
783 runOnlyForDeploymentPostprocessing = 0; 796 runOnlyForDeploymentPostprocessing = 0;
784 shellPath = /bin/sh; 797 shellPath = /bin/sh;
785 shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog-resources.sh\"\n"; 798 shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog-resources.sh\"\n";
786 showEnvVarsInLog = 0; 799 showEnvVarsInLog = 0;
787 }; 800 };
788 /* End PBXShellScriptBuildPhase section */ 801 /* End PBXShellScriptBuildPhase section */
789 802
790 /* Begin PBXSourcesBuildPhase section */ 803 /* Begin PBXSourcesBuildPhase section */
791 6E84E36D1F27A700001EB88E /* Sources */ = { 804 6E84E36D1F27A700001EB88E /* Sources */ = {
792 isa = PBXSourcesBuildPhase; 805 isa = PBXSourcesBuildPhase;
793 buildActionMask = 2147483647; 806 buildActionMask = 2147483647;
794 files = ( 807 files = (
795 6E18CED81F2E3C840029891F /* ServerAPI.m in Sources */, 808 6E18CED81F2E3C840029891F /* ServerAPI.m in Sources */,
796 6E7F93431F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m in Sources */, 809 6E7F93431F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m in Sources */,
797 6E7F93421F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m in Sources */, 810 6E7F93421F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m in Sources */,
798 E968550A1F3C444900317CEF /* AutoTransButton.m in Sources */, 811 E968550A1F3C444900317CEF /* AutoTransButton.m in Sources */,
799 6EA4AF321F40BB7A00F52CFE /* TargetInfor.m in Sources */, 812 6EA4AF321F40BB7A00F52CFE /* TargetInfor.m in Sources */,
800 E933E6741F3E0E4E002926F5 /* GroupObject.m in Sources */, 813 E933E6741F3E0E4E002926F5 /* GroupObject.m in Sources */,
801 9CBDA0FA1F2ECE2C0055DED1 /* BaseViewController.m in Sources */, 814 9CBDA0FA1F2ECE2C0055DED1 /* BaseViewController.m in Sources */,
802 6E8DA0F71F2BAC3400CCE941 /* TodayViewController.m in Sources */, 815 6E8DA0F71F2BAC3400CCE941 /* TodayViewController.m in Sources */,
803 6E7F93451F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m in Sources */, 816 6E7F93451F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m in Sources */,
804 E9682E2E1F39675A00FE05A2 /* RankingTableViewCell.m in Sources */, 817 E9682E2E1F39675A00FE05A2 /* RankingTableViewCell.m in Sources */,
805 E9D909211F3D559D004CF99F /* TweetObject.m in Sources */, 818 E9D909211F3D559D004CF99F /* TweetObject.m in Sources */,
806 6E48AF0D1F2F9D3300C1D184 /* CustomTextField.m in Sources */, 819 6E48AF0D1F2F9D3300C1D184 /* CustomTextField.m in Sources */,
807 E99E13AB1F336F3600C78787 /* CollectionView.m in Sources */, 820 E99E13AB1F336F3600C78787 /* CollectionView.m in Sources */,
808 6E84E3B01F27A975001EB88E /* HomeViewController.m in Sources */, 821 6E84E3B01F27A975001EB88E /* HomeViewController.m in Sources */,
809 E9373E471F3596940059355A /* AutoTransLabel.m in Sources */, 822 E9373E471F3596940059355A /* AutoTransLabel.m in Sources */,
810 6E84E3791F27A701001EB88E /* AppDelegate.m in Sources */, 823 6E84E3791F27A701001EB88E /* AppDelegate.m in Sources */,
811 6E84E3BA1F27A9A0001EB88E /* RankingViewController.m in Sources */, 824 6E84E3BA1F27A9A0001EB88E /* RankingViewController.m in Sources */,
812 6E7F93441F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m in Sources */, 825 6E7F93441F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m in Sources */,
813 E9F73DCC1F338A0F004A3A6F /* HistoryListTableViewCell.m in Sources */, 826 E9F73DCC1F338A0F004A3A6F /* HistoryListTableViewCell.m in Sources */,
814 6EDC8BF41F2C68D700765ACC /* CMMotionActivityExtra.m in Sources */, 827 6EDC8BF41F2C68D700765ACC /* CMMotionActivityExtra.m in Sources */,
815 E933E6791F40513C002926F5 /* GroupDetailViewController.m in Sources */, 828 E933E6791F40513C002926F5 /* GroupDetailViewController.m in Sources */,
816 6EA4AF311F40BB7A00F52CFE /* StepObject.m in Sources */, 829 6EA4AF311F40BB7A00F52CFE /* StepObject.m in Sources */,
817 9CBDA0FF1F2F03810055DED1 /* RegisterViewController.m in Sources */, 830 9CBDA0FF1F2F03810055DED1 /* RegisterViewController.m in Sources */,
818 E9373E4A1F35AA180059355A /* HistoryObject.m in Sources */, 831 E9373E4A1F35AA180059355A /* HistoryObject.m in Sources */,
819 9CA8AEEA1F31BB4600C5FC74 /* ConfirmForgetPassViewController.m in Sources */, 832 9CA8AEEA1F31BB4600C5FC74 /* ConfirmForgetPassViewController.m in Sources */,
820 E99E13B11F33720600C78787 /* LabelCollectionViewCell.m in Sources */, 833 E99E13B11F33720600C78787 /* LabelCollectionViewCell.m in Sources */,
821 6EDC8BEE1F2C2FB800765ACC /* Utilities.m in Sources */, 834 6EDC8BEE1F2C2FB800765ACC /* Utilities.m in Sources */,
822 E96855111F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m in Sources */, 835 E96855111F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m in Sources */,
823 6E84E3C51F27ACAE001EB88E /* MapViewController.m in Sources */, 836 6E84E3C51F27ACAE001EB88E /* MapViewController.m in Sources */,
824 6E18CEDC1F2E40F50029891F /* User.m in Sources */, 837 6E18CEDC1F2E40F50029891F /* User.m in Sources */,
825 6ECC40711F2A5FEB00AAEB97 /* NSDate+helper.m in Sources */, 838 6ECC40711F2A5FEB00AAEB97 /* NSDate+helper.m in Sources */,
839 E9497FD51F46EC1100E6AF8D /* MemberObject.m in Sources */,
826 6E18CED31F2E39DB0029891F /* LoginViewController.m in Sources */, 840 6E18CED31F2E39DB0029891F /* LoginViewController.m in Sources */,
827 6EA4AF331F40BB7A00F52CFE /* TopObject.m in Sources */, 841 6EA4AF331F40BB7A00F52CFE /* TopObject.m in Sources */,
828 E9D909241F3D6E8C004CF99F /* BaseTableViewController.m in Sources */, 842 E9D909241F3D6E8C004CF99F /* BaseTableViewController.m in Sources */,
829 6E84E3761F27A701001EB88E /* main.m in Sources */, 843 6E84E3761F27A701001EB88E /* main.m in Sources */,
830 E933E6701F3E09B6002926F5 /* SearchGroupTableViewCell.m in Sources */, 844 E933E6701F3E09B6002926F5 /* SearchGroupTableViewCell.m in Sources */,
831 6E84E3B51F27A98B001EB88E /* HistoryViewController.m in Sources */, 845 6E84E3B51F27A98B001EB88E /* HistoryViewController.m in Sources */,
832 E9373E4D1F361A230059355A /* HistoryGraphObject.m in Sources */, 846 E9373E4D1F361A230059355A /* HistoryGraphObject.m in Sources */,
833 E933E66B1F3E04A6002926F5 /* SearchGroupViewController.m in Sources */, 847 E933E66B1F3E04A6002926F5 /* SearchGroupViewController.m in Sources */,
834 6E84E3BF1F27A9B1001EB88E /* SNSViewController.m in Sources */, 848 6E84E3BF1F27A9B1001EB88E /* SNSViewController.m in Sources */,
835 ); 849 );
836 runOnlyForDeploymentPostprocessing = 0; 850 runOnlyForDeploymentPostprocessing = 0;
837 }; 851 };
838 6E84E3861F27A703001EB88E /* Sources */ = { 852 6E84E3861F27A703001EB88E /* Sources */ = {
839 isa = PBXSourcesBuildPhase; 853 isa = PBXSourcesBuildPhase;
840 buildActionMask = 2147483647; 854 buildActionMask = 2147483647;
841 files = ( 855 files = (
842 6E84E38F1F27A703001EB88E /* LifeLogTests.m in Sources */, 856 6E84E38F1F27A703001EB88E /* LifeLogTests.m in Sources */,
843 ); 857 );
844 runOnlyForDeploymentPostprocessing = 0; 858 runOnlyForDeploymentPostprocessing = 0;
845 }; 859 };
846 6E84E3911F27A703001EB88E /* Sources */ = { 860 6E84E3911F27A703001EB88E /* Sources */ = {
847 isa = PBXSourcesBuildPhase; 861 isa = PBXSourcesBuildPhase;
848 buildActionMask = 2147483647; 862 buildActionMask = 2147483647;
849 files = ( 863 files = (
850 6E84E39A1F27A703001EB88E /* LifeLogUITests.m in Sources */, 864 6E84E39A1F27A703001EB88E /* LifeLogUITests.m in Sources */,
851 ); 865 );
852 runOnlyForDeploymentPostprocessing = 0; 866 runOnlyForDeploymentPostprocessing = 0;
853 }; 867 };
854 /* End PBXSourcesBuildPhase section */ 868 /* End PBXSourcesBuildPhase section */
855 869
856 /* Begin PBXTargetDependency section */ 870 /* Begin PBXTargetDependency section */
857 6E84E38C1F27A703001EB88E /* PBXTargetDependency */ = { 871 6E84E38C1F27A703001EB88E /* PBXTargetDependency */ = {
858 isa = PBXTargetDependency; 872 isa = PBXTargetDependency;
859 target = 6E84E3701F27A700001EB88E /* LifeLog */; 873 target = 6E84E3701F27A700001EB88E /* LifeLog */;
860 targetProxy = 6E84E38B1F27A703001EB88E /* PBXContainerItemProxy */; 874 targetProxy = 6E84E38B1F27A703001EB88E /* PBXContainerItemProxy */;
861 }; 875 };
862 6E84E3971F27A703001EB88E /* PBXTargetDependency */ = { 876 6E84E3971F27A703001EB88E /* PBXTargetDependency */ = {
863 isa = PBXTargetDependency; 877 isa = PBXTargetDependency;
864 target = 6E84E3701F27A700001EB88E /* LifeLog */; 878 target = 6E84E3701F27A700001EB88E /* LifeLog */;
865 targetProxy = 6E84E3961F27A703001EB88E /* PBXContainerItemProxy */; 879 targetProxy = 6E84E3961F27A703001EB88E /* PBXContainerItemProxy */;
866 }; 880 };
867 /* End PBXTargetDependency section */ 881 /* End PBXTargetDependency section */
868 882
869 /* Begin PBXVariantGroup section */ 883 /* Begin PBXVariantGroup section */
870 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */ = { 884 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */ = {
871 isa = PBXVariantGroup; 885 isa = PBXVariantGroup;
872 children = ( 886 children = (
873 6E84E3831F27A701001EB88E /* Base */, 887 6E84E3831F27A701001EB88E /* Base */,
874 ); 888 );
875 name = LaunchScreen.storyboard; 889 name = LaunchScreen.storyboard;
876 sourceTree = "<group>"; 890 sourceTree = "<group>";
877 }; 891 };
878 /* End PBXVariantGroup section */ 892 /* End PBXVariantGroup section */
879 893
880 /* Begin XCBuildConfiguration section */ 894 /* Begin XCBuildConfiguration section */
881 6E84E39C1F27A703001EB88E /* Debug */ = { 895 6E84E39C1F27A703001EB88E /* Debug */ = {
882 isa = XCBuildConfiguration; 896 isa = XCBuildConfiguration;
883 buildSettings = { 897 buildSettings = {
884 ALWAYS_SEARCH_USER_PATHS = NO; 898 ALWAYS_SEARCH_USER_PATHS = NO;
885 CLANG_ANALYZER_NONNULL = YES; 899 CLANG_ANALYZER_NONNULL = YES;
886 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 900 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
887 CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 901 CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
888 CLANG_CXX_LIBRARY = "libc++"; 902 CLANG_CXX_LIBRARY = "libc++";
889 CLANG_ENABLE_MODULES = YES; 903 CLANG_ENABLE_MODULES = YES;
890 CLANG_ENABLE_OBJC_ARC = YES; 904 CLANG_ENABLE_OBJC_ARC = YES;
891 CLANG_WARN_BOOL_CONVERSION = YES; 905 CLANG_WARN_BOOL_CONVERSION = YES;
892 CLANG_WARN_CONSTANT_CONVERSION = YES; 906 CLANG_WARN_CONSTANT_CONVERSION = YES;
893 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 907 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
894 CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 908 CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
895 CLANG_WARN_EMPTY_BODY = YES; 909 CLANG_WARN_EMPTY_BODY = YES;
896 CLANG_WARN_ENUM_CONVERSION = YES; 910 CLANG_WARN_ENUM_CONVERSION = YES;
897 CLANG_WARN_INFINITE_RECURSION = YES; 911 CLANG_WARN_INFINITE_RECURSION = YES;
898 CLANG_WARN_INT_CONVERSION = YES; 912 CLANG_WARN_INT_CONVERSION = YES;
899 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 913 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
900 CLANG_WARN_SUSPICIOUS_MOVE = YES; 914 CLANG_WARN_SUSPICIOUS_MOVE = YES;
901 CLANG_WARN_UNREACHABLE_CODE = YES; 915 CLANG_WARN_UNREACHABLE_CODE = YES;
902 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 916 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
903 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 917 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
904 COPY_PHASE_STRIP = NO; 918 COPY_PHASE_STRIP = NO;
905 DEBUG_INFORMATION_FORMAT = dwarf; 919 DEBUG_INFORMATION_FORMAT = dwarf;
906 ENABLE_STRICT_OBJC_MSGSEND = YES; 920 ENABLE_STRICT_OBJC_MSGSEND = YES;
907 ENABLE_TESTABILITY = YES; 921 ENABLE_TESTABILITY = YES;
908 GCC_C_LANGUAGE_STANDARD = gnu99; 922 GCC_C_LANGUAGE_STANDARD = gnu99;
909 GCC_DYNAMIC_NO_PIC = NO; 923 GCC_DYNAMIC_NO_PIC = NO;
910 GCC_NO_COMMON_BLOCKS = YES; 924 GCC_NO_COMMON_BLOCKS = YES;
911 GCC_OPTIMIZATION_LEVEL = 0; 925 GCC_OPTIMIZATION_LEVEL = 0;
912 GCC_PREPROCESSOR_DEFINITIONS = ( 926 GCC_PREPROCESSOR_DEFINITIONS = (
913 "DEBUG=1", 927 "DEBUG=1",
914 "$(inherited)", 928 "$(inherited)",
915 ); 929 );
916 GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 930 GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
917 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 931 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
918 GCC_WARN_UNDECLARED_SELECTOR = YES; 932 GCC_WARN_UNDECLARED_SELECTOR = YES;
919 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 933 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
920 GCC_WARN_UNUSED_FUNCTION = YES; 934 GCC_WARN_UNUSED_FUNCTION = YES;
921 GCC_WARN_UNUSED_VARIABLE = YES; 935 GCC_WARN_UNUSED_VARIABLE = YES;
922 IPHONEOS_DEPLOYMENT_TARGET = 10.3; 936 IPHONEOS_DEPLOYMENT_TARGET = 10.3;
923 MTL_ENABLE_DEBUG_INFO = YES; 937 MTL_ENABLE_DEBUG_INFO = YES;
924 ONLY_ACTIVE_ARCH = YES; 938 ONLY_ACTIVE_ARCH = YES;
925 SDKROOT = iphoneos; 939 SDKROOT = iphoneos;
926 TARGETED_DEVICE_FAMILY = "1,2"; 940 TARGETED_DEVICE_FAMILY = "1,2";
927 }; 941 };
928 name = Debug; 942 name = Debug;
929 }; 943 };
930 6E84E39D1F27A703001EB88E /* Release */ = { 944 6E84E39D1F27A703001EB88E /* Release */ = {
931 isa = XCBuildConfiguration; 945 isa = XCBuildConfiguration;
932 buildSettings = { 946 buildSettings = {
933 ALWAYS_SEARCH_USER_PATHS = NO; 947 ALWAYS_SEARCH_USER_PATHS = NO;
934 CLANG_ANALYZER_NONNULL = YES; 948 CLANG_ANALYZER_NONNULL = YES;
935 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 949 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
936 CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 950 CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
937 CLANG_CXX_LIBRARY = "libc++"; 951 CLANG_CXX_LIBRARY = "libc++";
938 CLANG_ENABLE_MODULES = YES; 952 CLANG_ENABLE_MODULES = YES;
939 CLANG_ENABLE_OBJC_ARC = YES; 953 CLANG_ENABLE_OBJC_ARC = YES;
940 CLANG_WARN_BOOL_CONVERSION = YES; 954 CLANG_WARN_BOOL_CONVERSION = YES;
941 CLANG_WARN_CONSTANT_CONVERSION = YES; 955 CLANG_WARN_CONSTANT_CONVERSION = YES;
942 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 956 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
943 CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 957 CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
944 CLANG_WARN_EMPTY_BODY = YES; 958 CLANG_WARN_EMPTY_BODY = YES;
945 CLANG_WARN_ENUM_CONVERSION = YES; 959 CLANG_WARN_ENUM_CONVERSION = YES;
946 CLANG_WARN_INFINITE_RECURSION = YES; 960 CLANG_WARN_INFINITE_RECURSION = YES;
947 CLANG_WARN_INT_CONVERSION = YES; 961 CLANG_WARN_INT_CONVERSION = YES;
948 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 962 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
949 CLANG_WARN_SUSPICIOUS_MOVE = YES; 963 CLANG_WARN_SUSPICIOUS_MOVE = YES;
950 CLANG_WARN_UNREACHABLE_CODE = YES; 964 CLANG_WARN_UNREACHABLE_CODE = YES;
951 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 965 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
952 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 966 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
953 COPY_PHASE_STRIP = NO; 967 COPY_PHASE_STRIP = NO;
954 DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 968 DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
955 ENABLE_NS_ASSERTIONS = NO; 969 ENABLE_NS_ASSERTIONS = NO;
956 ENABLE_STRICT_OBJC_MSGSEND = YES; 970 ENABLE_STRICT_OBJC_MSGSEND = YES;
957 GCC_C_LANGUAGE_STANDARD = gnu99; 971 GCC_C_LANGUAGE_STANDARD = gnu99;
958 GCC_NO_COMMON_BLOCKS = YES; 972 GCC_NO_COMMON_BLOCKS = YES;
959 GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 973 GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
960 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 974 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
961 GCC_WARN_UNDECLARED_SELECTOR = YES; 975 GCC_WARN_UNDECLARED_SELECTOR = YES;
962 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 976 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
963 GCC_WARN_UNUSED_FUNCTION = YES; 977 GCC_WARN_UNUSED_FUNCTION = YES;
964 GCC_WARN_UNUSED_VARIABLE = YES; 978 GCC_WARN_UNUSED_VARIABLE = YES;
965 IPHONEOS_DEPLOYMENT_TARGET = 10.3; 979 IPHONEOS_DEPLOYMENT_TARGET = 10.3;
966 MTL_ENABLE_DEBUG_INFO = NO; 980 MTL_ENABLE_DEBUG_INFO = NO;
967 SDKROOT = iphoneos; 981 SDKROOT = iphoneos;
968 TARGETED_DEVICE_FAMILY = "1,2"; 982 TARGETED_DEVICE_FAMILY = "1,2";
969 VALIDATE_PRODUCT = YES; 983 VALIDATE_PRODUCT = YES;
970 }; 984 };
971 name = Release; 985 name = Release;
972 }; 986 };
973 6E84E39F1F27A703001EB88E /* Debug */ = { 987 6E84E39F1F27A703001EB88E /* Debug */ = {
974 isa = XCBuildConfiguration; 988 isa = XCBuildConfiguration;
975 baseConfigurationReference = 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */; 989 baseConfigurationReference = 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */;
976 buildSettings = { 990 buildSettings = {
977 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 991 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
978 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 992 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
979 DEVELOPMENT_TEAM = ""; 993 DEVELOPMENT_TEAM = "";
980 INFOPLIST_FILE = LifeLog/Info.plist; 994 INFOPLIST_FILE = LifeLog/Info.plist;
981 IPHONEOS_DEPLOYMENT_TARGET = 9.0; 995 IPHONEOS_DEPLOYMENT_TARGET = 9.0;
982 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 996 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
983 OTHER_LDFLAGS = ( 997 OTHER_LDFLAGS = (
984 "$(inherited)", 998 "$(inherited)",
985 "-framework", 999 "-framework",
986 "\"CircleProgressBar\"", 1000 "\"CircleProgressBar\"",
987 "-all_load", 1001 "-all_load",
988 "-ObjC", 1002 "-ObjC",
989 ); 1003 );
990 PRODUCT_BUNDLE_IDENTIFIER = mobileworld.jp.lifelog; 1004 PRODUCT_BUNDLE_IDENTIFIER = mobileworld.jp.lifelog;
991 PRODUCT_NAME = "$(TARGET_NAME)"; 1005 PRODUCT_NAME = "$(TARGET_NAME)";
992 PROVISIONING_PROFILE = ""; 1006 PROVISIONING_PROFILE = "";
993 PROVISIONING_PROFILE_SPECIFIER = ""; 1007 PROVISIONING_PROFILE_SPECIFIER = "";
994 }; 1008 };
995 name = Debug; 1009 name = Debug;
996 }; 1010 };
997 6E84E3A01F27A703001EB88E /* Release */ = { 1011 6E84E3A01F27A703001EB88E /* Release */ = {
998 isa = XCBuildConfiguration; 1012 isa = XCBuildConfiguration;
999 baseConfigurationReference = 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */; 1013 baseConfigurationReference = 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */;
1000 buildSettings = { 1014 buildSettings = {
1001 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 1015 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
1002 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 1016 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
1003 DEVELOPMENT_TEAM = ""; 1017 DEVELOPMENT_TEAM = "";
1004 INFOPLIST_FILE = LifeLog/Info.plist; 1018 INFOPLIST_FILE = LifeLog/Info.plist;
1005 IPHONEOS_DEPLOYMENT_TARGET = 9.0; 1019 IPHONEOS_DEPLOYMENT_TARGET = 9.0;
1006 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 1020 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
1007 OTHER_LDFLAGS = ( 1021 OTHER_LDFLAGS = (
1008 "$(inherited)", 1022 "$(inherited)",
1009 "-framework", 1023 "-framework",
1010 "\"CircleProgressBar\"", 1024 "\"CircleProgressBar\"",
1011 "-all_load", 1025 "-all_load",
1012 "-ObjC", 1026 "-ObjC",
1013 ); 1027 );
1014 PRODUCT_BUNDLE_IDENTIFIER = mobileworld.jp.lifelog; 1028 PRODUCT_BUNDLE_IDENTIFIER = mobileworld.jp.lifelog;
1015 PRODUCT_NAME = "$(TARGET_NAME)"; 1029 PRODUCT_NAME = "$(TARGET_NAME)";
1016 PROVISIONING_PROFILE = ""; 1030 PROVISIONING_PROFILE = "";
1017 PROVISIONING_PROFILE_SPECIFIER = ""; 1031 PROVISIONING_PROFILE_SPECIFIER = "";
1018 }; 1032 };
1019 name = Release; 1033 name = Release;
1020 }; 1034 };
1021 6E84E3A21F27A703001EB88E /* Debug */ = { 1035 6E84E3A21F27A703001EB88E /* Debug */ = {
1022 isa = XCBuildConfiguration; 1036 isa = XCBuildConfiguration;
1023 buildSettings = { 1037 buildSettings = {
1024 BUNDLE_LOADER = "$(TEST_HOST)"; 1038 BUNDLE_LOADER = "$(TEST_HOST)";
1025 INFOPLIST_FILE = LifeLogTests/Info.plist; 1039 INFOPLIST_FILE = LifeLogTests/Info.plist;
1026 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 1040 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1027 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogTests; 1041 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogTests;
1028 PRODUCT_NAME = "$(TARGET_NAME)"; 1042 PRODUCT_NAME = "$(TARGET_NAME)";
1029 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LifeLog.app/LifeLog"; 1043 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LifeLog.app/LifeLog";
1030 }; 1044 };
1031 name = Debug; 1045 name = Debug;
1032 }; 1046 };
1033 6E84E3A31F27A703001EB88E /* Release */ = { 1047 6E84E3A31F27A703001EB88E /* Release */ = {
1034 isa = XCBuildConfiguration; 1048 isa = XCBuildConfiguration;
1035 buildSettings = { 1049 buildSettings = {
1036 BUNDLE_LOADER = "$(TEST_HOST)"; 1050 BUNDLE_LOADER = "$(TEST_HOST)";
1037 INFOPLIST_FILE = LifeLogTests/Info.plist; 1051 INFOPLIST_FILE = LifeLogTests/Info.plist;
1038 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 1052 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1039 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogTests; 1053 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogTests;
1040 PRODUCT_NAME = "$(TARGET_NAME)"; 1054 PRODUCT_NAME = "$(TARGET_NAME)";
1041 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LifeLog.app/LifeLog"; 1055 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LifeLog.app/LifeLog";
1042 }; 1056 };
1043 name = Release; 1057 name = Release;
1044 }; 1058 };
1045 6E84E3A51F27A703001EB88E /* Debug */ = { 1059 6E84E3A51F27A703001EB88E /* Debug */ = {
1046 isa = XCBuildConfiguration; 1060 isa = XCBuildConfiguration;
1047 buildSettings = { 1061 buildSettings = {
1048 INFOPLIST_FILE = LifeLogUITests/Info.plist; 1062 INFOPLIST_FILE = LifeLogUITests/Info.plist;
1049 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 1063 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1050 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogUITests; 1064 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogUITests;
1051 PRODUCT_NAME = "$(TARGET_NAME)"; 1065 PRODUCT_NAME = "$(TARGET_NAME)";
1052 TEST_TARGET_NAME = LifeLog; 1066 TEST_TARGET_NAME = LifeLog;
1053 }; 1067 };
1054 name = Debug; 1068 name = Debug;
1055 }; 1069 };
1056 6E84E3A61F27A703001EB88E /* Release */ = { 1070 6E84E3A61F27A703001EB88E /* Release */ = {
1057 isa = XCBuildConfiguration; 1071 isa = XCBuildConfiguration;
1058 buildSettings = { 1072 buildSettings = {
1059 INFOPLIST_FILE = LifeLogUITests/Info.plist; 1073 INFOPLIST_FILE = LifeLogUITests/Info.plist;
1060 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 1074 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1061 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogUITests; 1075 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogUITests;
1062 PRODUCT_NAME = "$(TARGET_NAME)"; 1076 PRODUCT_NAME = "$(TARGET_NAME)";
1063 TEST_TARGET_NAME = LifeLog; 1077 TEST_TARGET_NAME = LifeLog;
1064 }; 1078 };
1065 name = Release; 1079 name = Release;
1066 }; 1080 };
1067 /* End XCBuildConfiguration section */ 1081 /* End XCBuildConfiguration section */
1068 1082
1069 /* Begin XCConfigurationList section */ 1083 /* Begin XCConfigurationList section */
1070 6E84E36C1F27A700001EB88E /* Build configuration list for PBXProject "LifeLog" */ = { 1084 6E84E36C1F27A700001EB88E /* Build configuration list for PBXProject "LifeLog" */ = {
1071 isa = XCConfigurationList; 1085 isa = XCConfigurationList;
1072 buildConfigurations = ( 1086 buildConfigurations = (
1073 6E84E39C1F27A703001EB88E /* Debug */, 1087 6E84E39C1F27A703001EB88E /* Debug */,
1074 6E84E39D1F27A703001EB88E /* Release */, 1088 6E84E39D1F27A703001EB88E /* Release */,
1075 ); 1089 );
1076 defaultConfigurationIsVisible = 0; 1090 defaultConfigurationIsVisible = 0;
1077 defaultConfigurationName = Release; 1091 defaultConfigurationName = Release;
1078 }; 1092 };
1079 6E84E39E1F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLog" */ = { 1093 6E84E39E1F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLog" */ = {
1080 isa = XCConfigurationList; 1094 isa = XCConfigurationList;
1081 buildConfigurations = ( 1095 buildConfigurations = (
1082 6E84E39F1F27A703001EB88E /* Debug */, 1096 6E84E39F1F27A703001EB88E /* Debug */,
1083 6E84E3A01F27A703001EB88E /* Release */, 1097 6E84E3A01F27A703001EB88E /* Release */,
1084 ); 1098 );
1085 defaultConfigurationIsVisible = 0; 1099 defaultConfigurationIsVisible = 0;
1086 defaultConfigurationName = Release; 1100 defaultConfigurationName = Release;
1087 }; 1101 };
1088 6E84E3A11F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogTests" */ = { 1102 6E84E3A11F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogTests" */ = {
1089 isa = XCConfigurationList; 1103 isa = XCConfigurationList;
1090 buildConfigurations = ( 1104 buildConfigurations = (
1091 6E84E3A21F27A703001EB88E /* Debug */, 1105 6E84E3A21F27A703001EB88E /* Debug */,
1092 6E84E3A31F27A703001EB88E /* Release */, 1106 6E84E3A31F27A703001EB88E /* Release */,
1093 ); 1107 );
1094 defaultConfigurationIsVisible = 0; 1108 defaultConfigurationIsVisible = 0;
1095 defaultConfigurationName = Release; 1109 defaultConfigurationName = Release;
1096 }; 1110 };
1097 6E84E3A41F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogUITests" */ = { 1111 6E84E3A41F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogUITests" */ = {
1098 isa = XCConfigurationList; 1112 isa = XCConfigurationList;
1099 buildConfigurations = ( 1113 buildConfigurations = (
1100 6E84E3A51F27A703001EB88E /* Debug */, 1114 6E84E3A51F27A703001EB88E /* Debug */,
1101 6E84E3A61F27A703001EB88E /* Release */, 1115 6E84E3A61F27A703001EB88E /* Release */,
1102 ); 1116 );
1103 defaultConfigurationIsVisible = 0; 1117 defaultConfigurationIsVisible = 0;
1104 defaultConfigurationName = Release; 1118 defaultConfigurationName = Release;
1105 }; 1119 };
1106 /* End XCConfigurationList section */ 1120 /* End XCConfigurationList section */
1107 }; 1121 };
1108 rootObject = 6E84E3691F27A700001EB88E /* Project object */; 1122 rootObject = 6E84E3691F27A700001EB88E /* Project object */;
1109 } 1123 }
1110 1124
LifeLog/LifeLog/Entities.h
1 // 1 //
2 // Entities.h 2 // Entities.h
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by Nguyen Van Phong on 7/30/17. 5 // Created by Nguyen Van Phong on 7/30/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #ifndef Entities_h 9 #ifndef Entities_h
10 #define Entities_h 10 #define Entities_h
11 11
12 #import <MBProgressHUD/MBProgressHUD.h> 12 #import <MBProgressHUD/MBProgressHUD.h>
13 13
14 #import "MemberObject.h"
14 #import "GroupObject.h" 15 #import "GroupObject.h"
15 #import "TweetObject.h" 16 #import "TweetObject.h"
16 #import "HistoryGraphObject.h" 17 #import "HistoryGraphObject.h"
17 #import "HistoryObject.h" 18 #import "HistoryObject.h"
18 #import "User.h" 19 #import "User.h"
19 #import "TopObject.h" 20 #import "TopObject.h"
20 21
21 #endif /* Entities_h */ 22 #endif /* Entities_h */
22 23
LifeLog/LifeLog/GroupDetailViewController.h
1 // 1 //
2 // GroupDetailViewController.h 2 // GroupDetailViewController.h
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by nvtu on 8/13/17. 5 // Created by nvtu on 8/13/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import <UIKit/UIKit.h> 9 #import <UIKit/UIKit.h>
10 #import "BaseTableViewController.h" 10 #import "BaseTableViewController.h"
11 #import "Entities.h" 11 #import "Entities.h"
12 #import "AutoTransButton.h" 12 #import "AutoTransButton.h"
13 13
14 @interface GroupDetailViewController : BaseTableViewController { 14 @interface GroupDetailViewController : BaseTableViewController {
15 GroupObject * _curGroup; 15 GroupObject * _curGroup;
16 BOOL isMemberList;
16 } 17 }
17 @property (weak, nonatomic) IBOutlet UIImageView *imgAva; 18 @property (weak, nonatomic) IBOutlet UIImageView *imgAva;
18 19
19 @property (weak, nonatomic) IBOutlet UILabel *lblGrpName; 20 @property (weak, nonatomic) IBOutlet UILabel *lblGrpName;
20 @property (weak, nonatomic) IBOutlet UILabel *lbbGrpActiveMode; 21 @property (weak, nonatomic) IBOutlet UILabel *lbbGrpActiveMode;
21 @property (weak, nonatomic) IBOutlet UILabel *lblGrpGoal; 22 @property (weak, nonatomic) IBOutlet UILabel *lblGrpGoal;
22 @property (weak, nonatomic) IBOutlet AutoTransButton *btJoinGrp; 23 @property (weak, nonatomic) IBOutlet AutoTransButton *btJoinGrp;
23 @property (weak, nonatomic) IBOutlet AutoTransButton *btSwitch; 24 @property (weak, nonatomic) IBOutlet AutoTransButton *btSwitch;
24 25
25 - (IBAction)clickBack:(id)sender; 26 - (IBAction)clickBack:(id)sender;
26 27
27 - (void) setGroup : (GroupObject *) object; 28 - (void) setGroup : (GroupObject *) object;
28 - (IBAction)clickSwitch:(AutoTransButton*)sender; 29 - (IBAction)clickSwitch:(AutoTransButton *)sender;
30 - (IBAction)clickJoin:(AutoTransButton *)sender;
29 @end 31 @end
30 32
LifeLog/LifeLog/GroupDetailViewController.m
1 // 1 //
2 // GroupDetailViewController.m 2 // GroupDetailViewController.m
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by nvtu on 8/13/17. 5 // Created by nvtu on 8/13/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import "GroupDetailViewController.h" 9 #import "GroupDetailViewController.h"
10 #import <SDWebImage/UIImageView+WebCache.h> 10 #import <SDWebImage/UIImageView+WebCache.h>
11 11
12 #import "Utilities.h" 12 #import "Utilities.h"
13 #import "ServerAPI.h" 13 #import "ServerAPI.h"
14 #import "SNSRecentTopicTableViewCell.h" 14 #import "SNSRecentTopicTableViewCell.h"
15 15
16 @interface GroupDetailViewController () 16 @interface GroupDetailViewController ()
17 17
18 @end 18 @end
19 19
20 @implementation GroupDetailViewController 20 @implementation GroupDetailViewController
21 21
22 - (void)viewDidLoad { 22 - (void)viewDidLoad {
23 [super viewDidLoad]; 23 [super viewDidLoad];
24 [self setupView]; 24 isMemberList = false;
25
26 //register nib for table view 25 //register nib for table view
27 [self.tableBase registerNib:[UINib nibWithNibName:@"SNSRecentTopicTableViewCell" bundle:nil] forCellReuseIdentifier:@"RecentTopicCell"]; 26 [self.tableBase registerNib:[UINib nibWithNibName:@"SNSRecentTopicTableViewCell" bundle:nil] forCellReuseIdentifier:@"RecentTopicCell"];
28 if(_curGroup != nil) { 27 if(_curGroup != nil) {
29 [self requestGroupDetail]; 28 [self requestGroupDetail];
30 } 29 }
31 // Do any additional setup after loading the view from its nib. 30 // Do any additional setup after loading the view from its nib.
32 } 31 }
33 32
34 - (void)didReceiveMemoryWarning { 33 - (void)didReceiveMemoryWarning {
35 [super didReceiveMemoryWarning]; 34 [super didReceiveMemoryWarning];
36 // Dispose of any resources that can be recreated. 35 // Dispose of any resources that can be recreated.
37 } 36 }
38 37
39 - (void) setGroup : (GroupObject *) object { 38 - (void) setGroup : (GroupObject *) object {
40 _curGroup = object; 39 _curGroup = object;
41 } 40 }
42 41
43 - (IBAction)clickSwitch:(id)sender {
44 }
45
46 - (void)setupView { 42 - (void)setupView {
47 if(_curGroup != nil) { 43 if(_curGroup != nil) {
48 if(_curGroup.avatar && ![_curGroup.avatar isKindOfClass:[NSNull class]]) { 44 if(_curGroup.avatar && ![_curGroup.avatar isKindOfClass:[NSNull class]]) {
49 [self.imgAva sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:_curGroup.avatar]]]; 45 [self.imgAva sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:_curGroup.avatar]]];
50 } 46 }
51 self.lblGrpName.text = _curGroup.name; 47 [self.lblGrpName setText:_curGroup.name];
52 self.lblGrpGoal.text = _curGroup.goal; 48 [self.lblGrpGoal setText:_curGroup.goal];
49 [self.btJoinGrp setHidden:_curGroup.isJoin];
53 NSString *mode = @""; 50 NSString *mode = @"";
54 if(_curGroup.runMode) { 51 if(_curGroup.runMode) {
55 mode = [mode stringByAppendingString:@"ランニング\n"]; 52 mode = [mode stringByAppendingString:@"ランニング\n"];
56 } 53 }
57 if(_curGroup.walkMode) { 54 if(_curGroup.walkMode) {
58 mode = [mode stringByAppendingString:@"ウォーキング\n"]; 55 mode = [mode stringByAppendingString:@"ウォーキング\n"];
59 } 56 }
60 if(_curGroup.bikeMode) { 57 if(_curGroup.bikeMode) {
61 mode = [mode stringByAppendingString:@"バイク\n"]; 58 mode = [mode stringByAppendingString:@"バイク\n"];
62 } 59 }
63 self.lbbGrpActiveMode.text = mode; 60 self.lbbGrpActiveMode.text = mode;
64 } 61 }
65 } 62 }
66 #pragma mark IBAction 63 #pragma mark IBAction
67 64
68 - (IBAction)clickBack:(id)sender { 65 - (IBAction)clickBack:(id)sender {
69 [self.navigationController popViewControllerAnimated:true]; 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 #pragma mark UITableView Delegate 88 #pragma mark UITableView Delegate
73 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 89 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
74 SNSRecentTopicTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"RecentTopicCell"]; 90 SNSRecentTopicTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"RecentTopicCell"];
75 TweetObject *object = [_curDataList objectAtIndex:indexPath.row]; 91 if(isMemberList) {
76 if(object.avatarLink && ![object.avatarLink isKindOfClass:[NSNull class]]) { 92 MemberObject *object = [_curDataList objectAtIndex:indexPath.row];
77 [cell.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatarLink]]]; 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"]; 103 else {
80 cell.lblUsername.text = object.userName; 104 TweetObject *object = [_curDataList objectAtIndex:indexPath.row];
81 cell.lblDes.text = object.content; 105 if(object.avatar && ![object.avatar isKindOfClass:[NSNull class]]) {
82 cell.lblMode.text = object.mode; 106 [cell.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatar]]];
83 cell.lblDistance.text = [NSString stringWithFormat:@"%.0f m", object.distance]; 107 }
84 cell.lblDuration.text = object.time; 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 return cell; 116 return cell;
86 } 117 }
87 118
88 #pragma mark Private Function 119 #pragma mark Private Function
89 120
90 - (void) requestGroupDetail { 121 - (void) requestGroupDetail {
91 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken]; 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 [[ServerAPI server] getGroupDetail:token withGroupID:_curGroup.groupID CompletionHandler:^(GroupObject *object, NSError *error) { 124 [[ServerAPI server] getGroupDetail:token withGroupID:_curGroup.groupID CompletionHandler:^(GroupObject *object, NSError *error) {
94 // [hudView hideAnimated:true];
95 GroupDetailViewController __weak *weakSelf = self; 125 GroupDetailViewController __weak *weakSelf = self;
96 _curGroup = object; 126 _curGroup = object;
97 dispatch_async(dispatch_get_main_queue(), ^{ 127 dispatch_async(dispatch_get_main_queue(), ^{
128 [hudView hideAnimated:true];
98 [weakSelf setupView]; 129 [weakSelf setupView];
99 [weakSelf callRequestToUpdateData]; 130 [weakSelf callRequestToUpdateData];
100 }); 131 });
101 }]; 132 }];
102 } 133 }
103 134
104 -(void) callRequestToUpdateData { 135 -(void) callRequestToUpdateData {
105 [super callRequestToUpdateData]; 136 [super callRequestToUpdateData];
106 137
107 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken]; 138 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken];
108 MBProgressHUD *hudView = nil; 139 MBProgressHUD *hudView = nil;
109 if(_curPage == 1 && !self.refreshControl.isRefreshing) { 140 if(_curPage == 1 && !self.refreshControl.isRefreshing) {
110 hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true]; 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){ 143 if(isMemberList) {
113 dispatch_async(dispatch_get_main_queue(), ^{ 144 [[ServerAPI server] requestMemberList:token groupID:_curGroup.groupID withPage:_curPage CompletionHandler:^(NSArray *array, NSError *error){
114 if(hudView != nil) { 145 dispatch_async(dispatch_get_main_queue(), ^{
115 [hudView hideAnimated:true]; 146 if(hudView != nil) {
116 } 147 [hudView hideAnimated:true];
117 }); 148 }
118 GroupDetailViewController __weak *weakSelf = self; 149 });
119 [weakSelf updateTableData:array error:error]; 150 GroupDetailViewController __weak *weakSelf = self;
120 }]; 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 }];
LifeLog/LifeLog/GroupDetailViewController.xib
1 <?xml version="1.0" encoding="UTF-8"?> 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 <device id="retina4_7" orientation="portrait"> 3 <device id="retina4_7" orientation="portrait">
4 <adaptation id="fullscreen"/> 4 <adaptation id="fullscreen"/>
5 </device> 5 </device>
6 <dependencies> 6 <dependencies>
7 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12086"/> 7 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
8 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> 8 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
9 </dependencies> 9 </dependencies>
10 <objects> 10 <objects>
11 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="GroupDetailViewController"> 11 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="GroupDetailViewController">
12 <connections> 12 <connections>
13 <outlet property="btJoinGrp" destination="caN-x7-hJz" id="B17-YC-Rmk"/> 13 <outlet property="btJoinGrp" destination="caN-x7-hJz" id="B17-YC-Rmk"/>
14 <outlet property="btSwitch" destination="gBg-k9-tgw" id="3ZZ-Qb-d3a"/> 14 <outlet property="btSwitch" destination="gBg-k9-tgw" id="3ZZ-Qb-d3a"/>
15 <outlet property="imgAva" destination="qYg-Gw-R2b" id="f9w-A2-u4G"/> 15 <outlet property="imgAva" destination="qYg-Gw-R2b" id="f9w-A2-u4G"/>
16 <outlet property="lbbGrpActiveMode" destination="O8z-6V-YFd" id="s8J-3i-pW3"/> 16 <outlet property="lbbGrpActiveMode" destination="O8z-6V-YFd" id="s8J-3i-pW3"/>
17 <outlet property="lblGrpGoal" destination="Bdy-dI-j47" id="AKx-8y-Ifm"/> 17 <outlet property="lblGrpGoal" destination="Bdy-dI-j47" id="AKx-8y-Ifm"/>
18 <outlet property="lblGrpName" destination="YWV-pS-TCo" id="VeU-Ov-uSD"/> 18 <outlet property="lblGrpName" destination="YWV-pS-TCo" id="VeU-Ov-uSD"/>
19 <outlet property="tableBase" destination="4VU-Ye-7Au" id="m1e-cS-Sxf"/> 19 <outlet property="tableBase" destination="4VU-Ye-7Au" id="m1e-cS-Sxf"/>
20 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> 20 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
21 </connections> 21 </connections>
22 </placeholder> 22 </placeholder>
23 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> 23 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
24 <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT"> 24 <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
25 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> 25 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
26 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> 26 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
27 <subviews> 27 <subviews>
28 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="25d-3H-0fr" userLabel="ViewHeader"> 28 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="25d-3H-0fr" userLabel="ViewHeader">
29 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/> 29 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/>
30 <subviews> 30 <subviews>
31 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="SNS" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DxD-Cy-0wi" customClass="AutoTransLabel"> 31 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="SNS" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DxD-Cy-0wi" customClass="AutoTransLabel">
32 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/> 32 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/>
33 <fontDescription key="fontDescription" type="system" pointSize="17"/> 33 <fontDescription key="fontDescription" type="system" pointSize="17"/>
34 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 34 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
35 <nil key="highlightedColor"/> 35 <nil key="highlightedColor"/>
36 <userDefinedRuntimeAttributes> 36 <userDefinedRuntimeAttributes>
37 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.grDetail.title"/> 37 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.grDetail.title"/>
38 </userDefinedRuntimeAttributes> 38 </userDefinedRuntimeAttributes>
39 </label> 39 </label>
40 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="O3M-Ba-zHF"> 40 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="O3M-Ba-zHF">
41 <rect key="frame" x="0.0" y="5" width="70" height="36"/> 41 <rect key="frame" x="0.0" y="5" width="70" height="36"/>
42 <constraints> 42 <constraints>
43 <constraint firstAttribute="width" constant="70" id="2Mk-ly-c0t"/> 43 <constraint firstAttribute="width" constant="70" id="2Mk-ly-c0t"/>
44 </constraints> 44 </constraints>
45 <state key="normal" image="today_back_button"/> 45 <state key="normal" image="today_back_button"/>
46 <connections> 46 <connections>
47 <action selector="clickBack:" destination="-1" eventType="touchUpInside" id="gS4-F3-fzi"/> 47 <action selector="clickBack:" destination="-1" eventType="touchUpInside" id="gS4-F3-fzi"/>
48 </connections> 48 </connections>
49 </button> 49 </button>
50 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="y09-DG-Krp"> 50 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="y09-DG-Krp">
51 <rect key="frame" x="330" y="0.0" width="45" height="46"/> 51 <rect key="frame" x="330" y="0.0" width="45" height="46"/>
52 <constraints> 52 <constraints>
53 <constraint firstAttribute="width" constant="45" id="hHa-aE-1zd"/> 53 <constraint firstAttribute="width" constant="45" id="hHa-aE-1zd"/>
54 </constraints> 54 </constraints>
55 <state key="normal" image="icon_menu"/> 55 <state key="normal" image="icon_menu"/>
56 </button> 56 </button>
57 </subviews> 57 </subviews>
58 <color key="backgroundColor" red="0.098039215690000001" green="0.098039215690000001" blue="0.098039215690000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 58 <color key="backgroundColor" red="0.098039215690000001" green="0.098039215690000001" blue="0.098039215690000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
59 <constraints> 59 <constraints>
60 <constraint firstItem="y09-DG-Krp" firstAttribute="top" secondItem="25d-3H-0fr" secondAttribute="top" id="65z-ZM-a3D"/> 60 <constraint firstItem="y09-DG-Krp" firstAttribute="top" secondItem="25d-3H-0fr" secondAttribute="top" id="65z-ZM-a3D"/>
61 <constraint firstItem="O3M-Ba-zHF" firstAttribute="leading" secondItem="25d-3H-0fr" secondAttribute="leading" id="CQk-IB-W9y"/> 61 <constraint firstItem="O3M-Ba-zHF" firstAttribute="leading" secondItem="25d-3H-0fr" secondAttribute="leading" id="CQk-IB-W9y"/>
62 <constraint firstAttribute="bottom" secondItem="y09-DG-Krp" secondAttribute="bottom" id="IWC-4b-gp6"/> 62 <constraint firstAttribute="bottom" secondItem="y09-DG-Krp" secondAttribute="bottom" id="IWC-4b-gp6"/>
63 <constraint firstItem="O3M-Ba-zHF" firstAttribute="top" secondItem="25d-3H-0fr" secondAttribute="top" constant="5" id="JWL-bD-I2Z"/> 63 <constraint firstItem="O3M-Ba-zHF" firstAttribute="top" secondItem="25d-3H-0fr" secondAttribute="top" constant="5" id="JWL-bD-I2Z"/>
64 <constraint firstItem="DxD-Cy-0wi" firstAttribute="top" secondItem="25d-3H-0fr" secondAttribute="top" id="WYM-oV-6xn"/> 64 <constraint firstItem="DxD-Cy-0wi" firstAttribute="top" secondItem="25d-3H-0fr" secondAttribute="top" id="WYM-oV-6xn"/>
65 <constraint firstAttribute="bottom" secondItem="O3M-Ba-zHF" secondAttribute="bottom" constant="5" id="ZA0-Bo-IQF"/> 65 <constraint firstAttribute="bottom" secondItem="O3M-Ba-zHF" secondAttribute="bottom" constant="5" id="ZA0-Bo-IQF"/>
66 <constraint firstItem="DxD-Cy-0wi" firstAttribute="leading" secondItem="25d-3H-0fr" secondAttribute="leading" id="cbx-fE-OaR"/> 66 <constraint firstItem="DxD-Cy-0wi" firstAttribute="leading" secondItem="25d-3H-0fr" secondAttribute="leading" id="cbx-fE-OaR"/>
67 <constraint firstAttribute="trailing" secondItem="DxD-Cy-0wi" secondAttribute="trailing" id="i0L-w8-Oxm"/> 67 <constraint firstAttribute="trailing" secondItem="DxD-Cy-0wi" secondAttribute="trailing" id="i0L-w8-Oxm"/>
68 <constraint firstAttribute="trailing" secondItem="y09-DG-Krp" secondAttribute="trailing" id="nNZ-jP-k6U"/> 68 <constraint firstAttribute="trailing" secondItem="y09-DG-Krp" secondAttribute="trailing" id="nNZ-jP-k6U"/>
69 <constraint firstAttribute="bottom" secondItem="DxD-Cy-0wi" secondAttribute="bottom" id="oxP-oa-3FJ"/> 69 <constraint firstAttribute="bottom" secondItem="DxD-Cy-0wi" secondAttribute="bottom" id="oxP-oa-3FJ"/>
70 <constraint firstAttribute="height" constant="46" id="u2G-4s-RB5"/> 70 <constraint firstAttribute="height" constant="46" id="u2G-4s-RB5"/>
71 </constraints> 71 </constraints>
72 </view> 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 <rect key="frame" x="15" y="54" width="345" height="21"/> 74 <rect key="frame" x="15" y="54" width="345" height="21"/>
75 <constraints> 75 <constraints>
76 <constraint firstAttribute="height" constant="21" id="fQO-ja-W9R"/> 76 <constraint firstAttribute="height" constant="21" id="fQO-ja-W9R"/>
77 </constraints> 77 </constraints>
78 <fontDescription key="fontDescription" type="system" pointSize="17"/> 78 <fontDescription key="fontDescription" type="system" pointSize="17"/>
79 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 79 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
80 <nil key="highlightedColor"/> 80 <nil key="highlightedColor"/>
81 </label> 81 </label>
82 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="O8z-6V-YFd"> 82 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="O8z-6V-YFd">
83 <rect key="frame" x="15" y="85" width="243" height="60"/> 83 <rect key="frame" x="15" y="85" width="243" height="60"/>
84 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 84 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
85 <constraints> 85 <constraints>
86 <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="60" id="Bid-NM-Ree"/> 86 <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="60" id="Bid-NM-Ree"/>
87 </constraints> 87 </constraints>
88 <fontDescription key="fontDescription" type="system" pointSize="14"/> 88 <fontDescription key="fontDescription" type="system" pointSize="14"/>
89 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 89 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
90 <nil key="highlightedColor"/> 90 <nil key="highlightedColor"/>
91 </label> 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 <rect key="frame" x="15" y="160" width="345" height="80"/> 93 <rect key="frame" x="15" y="160" width="345" height="80"/>
94 <constraints> 94 <constraints>
95 <constraint firstAttribute="height" constant="80" id="jgH-57-Bae"/> 95 <constraint firstAttribute="height" constant="80" id="jgH-57-Bae"/>
96 </constraints> 96 </constraints>
97 <fontDescription key="fontDescription" type="system" pointSize="17"/> 97 <fontDescription key="fontDescription" type="system" pointSize="17"/>
98 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 98 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
99 <nil key="highlightedColor"/> 99 <nil key="highlightedColor"/>
100 </label> 100 </label>
101 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="qYg-Gw-R2b"> 101 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="qYg-Gw-R2b">
102 <rect key="frame" x="280" y="85" width="80" height="60"/> 102 <rect key="frame" x="280" y="85" width="80" height="60"/>
103 <constraints> 103 <constraints>
104 <constraint firstAttribute="width" constant="80" id="NEk-vg-zus"/> 104 <constraint firstAttribute="width" constant="80" id="NEk-vg-zus"/>
105 <constraint firstAttribute="height" constant="60" id="qlv-ht-SUw"/> 105 <constraint firstAttribute="height" constant="60" id="qlv-ht-SUw"/>
106 </constraints> 106 </constraints>
107 </imageView> 107 </imageView>
108 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="gBg-k9-tgw" customClass="AutoTransButton"> 108 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="gBg-k9-tgw" customClass="AutoTransButton">
109 <rect key="frame" x="15" y="270" width="162" height="30"/> 109 <rect key="frame" x="15" y="270" width="162" height="30"/>
110 <color key="backgroundColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 110 <color key="backgroundColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
111 <constraints> 111 <constraints>
112 <constraint firstAttribute="height" constant="30" id="6Ir-ZZ-NOb"/> 112 <constraint firstAttribute="height" constant="30" id="6Ir-ZZ-NOb"/>
113 </constraints> 113 </constraints>
114 <state key="normal" title="メンバーを見る"> 114 <state key="normal" title="メンバーを見る">
115 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 115 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
116 </state> 116 </state>
117 <userDefinedRuntimeAttributes> 117 <userDefinedRuntimeAttributes>
118 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> 118 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
119 <integer key="value" value="5"/> 119 <integer key="value" value="5"/>
120 </userDefinedRuntimeAttribute> 120 </userDefinedRuntimeAttribute>
121 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.grDetail.bt.viewMem"/> 121 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.grDetail.bt.viewMem"/>
122 </userDefinedRuntimeAttributes> 122 </userDefinedRuntimeAttributes>
123 <connections> 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 </connections> 125 </connections>
126 </button> 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 <rect key="frame" x="197" y="270" width="162" height="30"/> 128 <rect key="frame" x="197" y="270" width="162" height="30"/>
129 <color key="backgroundColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 129 <color key="backgroundColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
130 <constraints> 130 <constraints>
131 <constraint firstAttribute="height" constant="30" id="gIs-Km-dbx"/> 131 <constraint firstAttribute="height" constant="30" id="gIs-Km-dbx"/>
132 </constraints> 132 </constraints>
133 <state key="normal" title="グループに参加する"> 133 <state key="normal" title="グループに参加する">
134 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 134 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
135 </state> 135 </state>
136 <userDefinedRuntimeAttributes> 136 <userDefinedRuntimeAttributes>
137 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> 137 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
138 <integer key="value" value="5"/> 138 <integer key="value" value="5"/>
139 </userDefinedRuntimeAttribute> 139 </userDefinedRuntimeAttribute>
140 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.grDetail.bt.joinGr"/> 140 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.grDetail.bt.joinGr"/>
141 </userDefinedRuntimeAttributes> 141 </userDefinedRuntimeAttributes>
142 <connections>
143 <action selector="clickJoin:" destination="-1" eventType="touchUpInside" id="Ukt-bi-Sw2"/>
144 </connections>
142 </button> 145 </button>
143 <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" rowHeight="100" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="4VU-Ye-7Au"> 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 <rect key="frame" x="0.0" y="310" width="375" height="307"/> 147 <rect key="frame" x="0.0" y="310" width="375" height="307"/>
145 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 148 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
146 <connections> 149 <connections>
147 <outlet property="dataSource" destination="-1" id="TLB-6X-bRI"/> 150 <outlet property="dataSource" destination="-1" id="TLB-6X-bRI"/>
148 <outlet property="delegate" destination="-1" id="QcJ-Yh-deE"/> 151 <outlet property="delegate" destination="-1" id="QcJ-Yh-deE"/>
149 </connections> 152 </connections>
150 </tableView> 153 </tableView>
151 </subviews> 154 </subviews>
152 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/> 155 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
153 <constraints> 156 <constraints>
154 <constraint firstItem="25d-3H-0fr" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="5o2-0w-AL5"/> 157 <constraint firstItem="25d-3H-0fr" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="5o2-0w-AL5"/>
155 <constraint firstAttribute="trailing" secondItem="25d-3H-0fr" secondAttribute="trailing" id="7IX-2R-C0n"/> 158 <constraint firstAttribute="trailing" secondItem="25d-3H-0fr" secondAttribute="trailing" id="7IX-2R-C0n"/>
156 <constraint firstItem="O8z-6V-YFd" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="15" id="81K-BQ-6tU"/> 159 <constraint firstItem="O8z-6V-YFd" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="15" id="81K-BQ-6tU"/>
157 <constraint firstAttribute="bottom" secondItem="4VU-Ye-7Au" secondAttribute="bottom" constant="50" id="GKY-NB-YYF"/> 160 <constraint firstAttribute="bottom" secondItem="4VU-Ye-7Au" secondAttribute="bottom" constant="50" id="GKY-NB-YYF"/>
158 <constraint firstItem="O8z-6V-YFd" firstAttribute="top" secondItem="YWV-pS-TCo" secondAttribute="bottom" constant="10" id="HOo-rH-ysj"/> 161 <constraint firstItem="O8z-6V-YFd" firstAttribute="top" secondItem="YWV-pS-TCo" secondAttribute="bottom" constant="10" id="HOo-rH-ysj"/>
159 <constraint firstItem="Bdy-dI-j47" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="15" id="I1a-bY-ME9"/> 162 <constraint firstItem="Bdy-dI-j47" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="15" id="I1a-bY-ME9"/>
160 <constraint firstItem="YWV-pS-TCo" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="15" id="IS9-SU-75m"/> 163 <constraint firstItem="YWV-pS-TCo" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="15" id="IS9-SU-75m"/>
161 <constraint firstAttribute="trailing" secondItem="Bdy-dI-j47" secondAttribute="trailing" constant="15" id="Ka2-Ki-Pu6"/> 164 <constraint firstAttribute="trailing" secondItem="Bdy-dI-j47" secondAttribute="trailing" constant="15" id="Ka2-Ki-Pu6"/>
162 <constraint firstItem="qYg-Gw-R2b" firstAttribute="top" secondItem="YWV-pS-TCo" secondAttribute="bottom" constant="10" id="One-fp-LTK"/> 165 <constraint firstItem="qYg-Gw-R2b" firstAttribute="top" secondItem="YWV-pS-TCo" secondAttribute="bottom" constant="10" id="One-fp-LTK"/>
163 <constraint firstAttribute="trailing" secondItem="qYg-Gw-R2b" secondAttribute="trailing" constant="15" id="PMd-CT-MVj"/> 166 <constraint firstAttribute="trailing" secondItem="qYg-Gw-R2b" secondAttribute="trailing" constant="15" id="PMd-CT-MVj"/>
164 <constraint firstItem="gBg-k9-tgw" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="15" id="bTf-qW-d1y"/> 167 <constraint firstItem="gBg-k9-tgw" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="15" id="bTf-qW-d1y"/>
165 <constraint firstItem="YWV-pS-TCo" firstAttribute="top" secondItem="25d-3H-0fr" secondAttribute="bottom" constant="8" id="cKj-l3-dgv"/> 168 <constraint firstItem="YWV-pS-TCo" firstAttribute="top" secondItem="25d-3H-0fr" secondAttribute="bottom" constant="8" id="cKj-l3-dgv"/>
166 <constraint firstItem="4VU-Ye-7Au" firstAttribute="top" secondItem="caN-x7-hJz" secondAttribute="bottom" constant="10" id="eQe-Kl-cMp"/> 169 <constraint firstItem="4VU-Ye-7Au" firstAttribute="top" secondItem="caN-x7-hJz" secondAttribute="bottom" constant="10" id="eQe-Kl-cMp"/>
167 <constraint firstItem="4VU-Ye-7Au" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="fru-BN-M5T"/> 170 <constraint firstItem="4VU-Ye-7Au" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="fru-BN-M5T"/>
168 <constraint firstItem="caN-x7-hJz" firstAttribute="top" secondItem="gBg-k9-tgw" secondAttribute="top" id="gUS-Ty-4Hk"/> 171 <constraint firstItem="caN-x7-hJz" firstAttribute="top" secondItem="gBg-k9-tgw" secondAttribute="top" id="gUS-Ty-4Hk"/>
169 <constraint firstItem="qYg-Gw-R2b" firstAttribute="leading" secondItem="O8z-6V-YFd" secondAttribute="trailing" constant="22" id="gzU-2Q-G96"/> 172 <constraint firstItem="qYg-Gw-R2b" firstAttribute="leading" secondItem="O8z-6V-YFd" secondAttribute="trailing" constant="22" id="gzU-2Q-G96"/>
170 <constraint firstItem="caN-x7-hJz" firstAttribute="leading" secondItem="gBg-k9-tgw" secondAttribute="trailing" constant="20" id="hWK-jf-zee"/> 173 <constraint firstItem="caN-x7-hJz" firstAttribute="leading" secondItem="gBg-k9-tgw" secondAttribute="trailing" constant="20" id="hWK-jf-zee"/>
171 <constraint firstItem="25d-3H-0fr" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="jhT-CE-fr7"/> 174 <constraint firstItem="25d-3H-0fr" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="jhT-CE-fr7"/>
172 <constraint firstItem="caN-x7-hJz" firstAttribute="width" secondItem="gBg-k9-tgw" secondAttribute="width" id="mD6-eL-KB7"/> 175 <constraint firstItem="caN-x7-hJz" firstAttribute="width" secondItem="gBg-k9-tgw" secondAttribute="width" id="mD6-eL-KB7"/>
173 <constraint firstItem="gBg-k9-tgw" firstAttribute="top" secondItem="Bdy-dI-j47" secondAttribute="bottom" constant="30" id="mgw-uX-VOK"/> 176 <constraint firstItem="gBg-k9-tgw" firstAttribute="top" secondItem="Bdy-dI-j47" secondAttribute="bottom" constant="30" id="mgw-uX-VOK"/>
174 <constraint firstAttribute="trailing" secondItem="YWV-pS-TCo" secondAttribute="trailing" constant="15" id="rEO-bb-Pqr"/> 177 <constraint firstAttribute="trailing" secondItem="YWV-pS-TCo" secondAttribute="trailing" constant="15" id="rEO-bb-Pqr"/>
175 <constraint firstAttribute="trailing" secondItem="caN-x7-hJz" secondAttribute="trailing" constant="16" id="rRn-Vw-t5g"/> 178 <constraint firstAttribute="trailing" secondItem="caN-x7-hJz" secondAttribute="trailing" constant="16" id="rRn-Vw-t5g"/>
176 <constraint firstItem="Bdy-dI-j47" firstAttribute="top" secondItem="O8z-6V-YFd" secondAttribute="bottom" constant="15" id="xEO-fP-Riz"/> 179 <constraint firstItem="Bdy-dI-j47" firstAttribute="top" secondItem="O8z-6V-YFd" secondAttribute="bottom" constant="15" id="xEO-fP-Riz"/>
177 <constraint firstAttribute="trailing" secondItem="4VU-Ye-7Au" secondAttribute="trailing" id="ylN-vm-QF2"/> 180 <constraint firstAttribute="trailing" secondItem="4VU-Ye-7Au" secondAttribute="trailing" id="ylN-vm-QF2"/>
178 </constraints> 181 </constraints>
179 <point key="canvasLocation" x="24.5" y="52.5"/> 182 <point key="canvasLocation" x="24.5" y="52.5"/>
180 </view> 183 </view>
181 </objects> 184 </objects>
182 <resources> 185 <resources>
183 <image name="icon_menu" width="30" height="30"/> 186 <image name="icon_menu" width="30" height="30"/>
184 <image name="today_back_button" width="73" height="37"/> 187 <image name="today_back_button" width="73" height="37"/>
185 </resources> 188 </resources>
186 </document> 189 </document>
187 190
LifeLog/LifeLog/HistoryViewController.xib
1 <?xml version="1.0" encoding="UTF-8"?> 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="12121" systemVersion="16A323" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
3 <device id="retina4_7" orientation="portrait"> 3 <device id="retina4_7" orientation="portrait">
4 <adaptation id="fullscreen"/> 4 <adaptation id="fullscreen"/>
5 </device> 5 </device>
6 <dependencies> 6 <dependencies>
7 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/> 7 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
8 <capability name="Aspect ratio constraints" minToolsVersion="5.1"/> 8 <capability name="Aspect ratio constraints" minToolsVersion="5.1"/>
9 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> 9 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
10 </dependencies> 10 </dependencies>
11 <objects> 11 <objects>
12 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="HistoryViewController"> 12 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="HistoryViewController">
13 <connections> 13 <connections>
14 <outlet property="lblCalories" destination="dAE-C8-QLr" id="WaS-S3-Qxh"/> 14 <outlet property="lblCalories" destination="dAE-C8-QLr" id="WaS-S3-Qxh"/>
15 <outlet property="lblCircleRemain" destination="Kr7-S0-Fpl" id="UQe-Bt-i0X"/> 15 <outlet property="lblCircleRemain" destination="Kr7-S0-Fpl" id="UQe-Bt-i0X"/>
16 <outlet property="lblCircleStep" destination="oWg-A8-aCr" id="Q9g-UY-hyv"/> 16 <outlet property="lblCircleStep" destination="oWg-A8-aCr" id="Q9g-UY-hyv"/>
17 <outlet property="lblDistance" destination="1tR-JC-pyw" id="q4s-Ru-vLO"/> 17 <outlet property="lblDistance" destination="1tR-JC-pyw" id="q4s-Ru-vLO"/>
18 <outlet property="lblPercent" destination="8Ru-Jc-Ouv" id="ZHn-Kt-0Qk"/> 18 <outlet property="lblPercent" destination="8Ru-Jc-Ouv" id="ZHn-Kt-0Qk"/>
19 <outlet property="lblRemaining" destination="1NH-b3-ST8" id="hFc-q9-b0h"/> 19 <outlet property="lblRemaining" destination="1NH-b3-ST8" id="hFc-q9-b0h"/>
20 <outlet property="lblStep" destination="0pf-fX-QXT" id="jK4-9Y-89Q"/> 20 <outlet property="lblStep" destination="0pf-fX-QXT" id="jK4-9Y-89Q"/>
21 <outlet property="lblTime" destination="PfZ-7x-LAR" id="NQv-fs-rl7"/> 21 <outlet property="lblTime" destination="PfZ-7x-LAR" id="NQv-fs-rl7"/>
22 <outlet property="scrollView" destination="rey-N3-l8b" id="s3w-fi-n5l"/> 22 <outlet property="scrollView" destination="rey-N3-l8b" id="s3w-fi-n5l"/>
23 <outlet property="tableBase" destination="FXQ-4O-sRc" id="UHy-Nk-f7u"/> 23 <outlet property="tableBase" destination="FXQ-4O-sRc" id="UHy-Nk-f7u"/>
24 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> 24 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
25 <outlet property="viewBarChart" destination="VqD-Y3-cYQ" id="RdJ-G5-pPy"/> 25 <outlet property="viewBarChart" destination="VqD-Y3-cYQ" id="RdJ-G5-pPy"/>
26 <outlet property="viewCollectionMode" destination="BVv-qD-EHM" id="A6n-32-oxg"/> 26 <outlet property="viewCollectionMode" destination="BVv-qD-EHM" id="A6n-32-oxg"/>
27 <outlet property="viewCollectionShare" destination="Iw2-nW-e7g" id="LW3-j0-yEY"/> 27 <outlet property="viewCollectionShare" destination="Iw2-nW-e7g" id="LW3-j0-yEY"/>
28 <outlet property="viewCollectionType" destination="yxY-4d-tB6" id="K1D-Gc-kWV"/> 28 <outlet property="viewCollectionType" destination="yxY-4d-tB6" id="K1D-Gc-kWV"/>
29 </connections> 29 </connections>
30 </placeholder> 30 </placeholder>
31 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> 31 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
32 <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT"> 32 <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
33 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> 33 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
34 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> 34 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
35 <subviews> 35 <subviews>
36 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="clL-JG-rbd" userLabel="ViewHeader"> 36 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="clL-JG-rbd" userLabel="ViewHeader">
37 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/> 37 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/>
38 <subviews> 38 <subviews>
39 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="履歴" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ht6-rd-JXF" customClass="AutoTransLabel"> 39 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="履歴" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ht6-rd-JXF" customClass="AutoTransLabel">
40 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/> 40 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/>
41 <fontDescription key="fontDescription" type="system" pointSize="17"/> 41 <fontDescription key="fontDescription" type="system" pointSize="17"/>
42 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 42 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
43 <nil key="highlightedColor"/> 43 <nil key="highlightedColor"/>
44 <userDefinedRuntimeAttributes> 44 <userDefinedRuntimeAttributes>
45 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.history.title"/> 45 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.history.title"/>
46 </userDefinedRuntimeAttributes> 46 </userDefinedRuntimeAttributes>
47 </label> 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 <rect key="frame" x="0.0" y="5" width="70" height="36"/> 49 <rect key="frame" x="0.0" y="5" width="70" height="36"/>
50 <constraints> 50 <constraints>
51 <constraint firstAttribute="width" constant="70" id="xAE-oP-WEf"/> 51 <constraint firstAttribute="width" constant="70" id="xAE-oP-WEf"/>
52 </constraints> 52 </constraints>
53 <state key="normal" image="today_back_button"/> 53 <state key="normal" image="today_back_button"/>
54 </button> 54 </button>
55 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="CFx-sO-MAH"> 55 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="CFx-sO-MAH">
56 <rect key="frame" x="330" y="0.0" width="45" height="46"/> 56 <rect key="frame" x="330" y="0.0" width="45" height="46"/>
57 <constraints> 57 <constraints>
58 <constraint firstAttribute="width" constant="45" id="V0g-Ii-pNQ"/> 58 <constraint firstAttribute="width" constant="45" id="V0g-Ii-pNQ"/>
59 </constraints> 59 </constraints>
60 <state key="normal" image="icon_menu"/> 60 <state key="normal" image="icon_menu"/>
61 </button> 61 </button>
62 </subviews> 62 </subviews>
63 <color key="backgroundColor" red="0.098039215686274508" green="0.098039215686274508" blue="0.098039215686274508" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 63 <color key="backgroundColor" red="0.098039215686274508" green="0.098039215686274508" blue="0.098039215686274508" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
64 <constraints> 64 <constraints>
65 <constraint firstAttribute="trailing" secondItem="Ht6-rd-JXF" secondAttribute="trailing" id="Fr9-Yj-q5e"/> 65 <constraint firstAttribute="trailing" secondItem="Ht6-rd-JXF" secondAttribute="trailing" id="Fr9-Yj-q5e"/>
66 <constraint firstItem="ytc-zM-ZGC" firstAttribute="leading" secondItem="clL-JG-rbd" secondAttribute="leading" id="LDb-Pq-Z5k"/> 66 <constraint firstItem="ytc-zM-ZGC" firstAttribute="leading" secondItem="clL-JG-rbd" secondAttribute="leading" id="LDb-Pq-Z5k"/>
67 <constraint firstAttribute="trailing" secondItem="CFx-sO-MAH" secondAttribute="trailing" id="PTh-vI-2DI"/> 67 <constraint firstAttribute="trailing" secondItem="CFx-sO-MAH" secondAttribute="trailing" id="PTh-vI-2DI"/>
68 <constraint firstItem="Ht6-rd-JXF" firstAttribute="top" secondItem="clL-JG-rbd" secondAttribute="top" id="URG-nj-C2r"/> 68 <constraint firstItem="Ht6-rd-JXF" firstAttribute="top" secondItem="clL-JG-rbd" secondAttribute="top" id="URG-nj-C2r"/>
69 <constraint firstItem="CFx-sO-MAH" firstAttribute="top" secondItem="clL-JG-rbd" secondAttribute="top" id="Uxg-Wl-DlF"/> 69 <constraint firstItem="CFx-sO-MAH" firstAttribute="top" secondItem="clL-JG-rbd" secondAttribute="top" id="Uxg-Wl-DlF"/>
70 <constraint firstAttribute="bottom" secondItem="CFx-sO-MAH" secondAttribute="bottom" id="X9D-m3-QXF"/> 70 <constraint firstAttribute="bottom" secondItem="CFx-sO-MAH" secondAttribute="bottom" id="X9D-m3-QXF"/>
71 <constraint firstAttribute="bottom" secondItem="ytc-zM-ZGC" secondAttribute="bottom" constant="5" id="hWb-ga-1wm"/> 71 <constraint firstAttribute="bottom" secondItem="ytc-zM-ZGC" secondAttribute="bottom" constant="5" id="hWb-ga-1wm"/>
72 <constraint firstAttribute="bottom" secondItem="Ht6-rd-JXF" secondAttribute="bottom" id="iqI-Bi-QI1"/> 72 <constraint firstAttribute="bottom" secondItem="Ht6-rd-JXF" secondAttribute="bottom" id="iqI-Bi-QI1"/>
73 <constraint firstItem="Ht6-rd-JXF" firstAttribute="leading" secondItem="clL-JG-rbd" secondAttribute="leading" id="uzc-SO-7mw"/> 73 <constraint firstItem="Ht6-rd-JXF" firstAttribute="leading" secondItem="clL-JG-rbd" secondAttribute="leading" id="uzc-SO-7mw"/>
74 <constraint firstItem="ytc-zM-ZGC" firstAttribute="top" secondItem="clL-JG-rbd" secondAttribute="top" constant="5" id="vFt-FE-klC"/> 74 <constraint firstItem="ytc-zM-ZGC" firstAttribute="top" secondItem="clL-JG-rbd" secondAttribute="top" constant="5" id="vFt-FE-klC"/>
75 <constraint firstAttribute="height" constant="46" id="xGd-BD-bgs"/> 75 <constraint firstAttribute="height" constant="46" id="xGd-BD-bgs"/>
76 </constraints> 76 </constraints>
77 </view> 77 </view>
78 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Cf1-lP-zbB" userLabel="ViewTime"> 78 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Cf1-lP-zbB" userLabel="ViewTime">
79 <rect key="frame" x="10" y="46" width="355" height="35"/> 79 <rect key="frame" x="10" y="46" width="355" height="35"/>
80 <subviews> 80 <subviews>
81 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="6T2-M9-9wV"> 81 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="6T2-M9-9wV">
82 <rect key="frame" x="0.0" y="0.0" width="35" height="35"/> 82 <rect key="frame" x="0.0" y="0.0" width="35" height="35"/>
83 <constraints> 83 <constraints>
84 <constraint firstAttribute="width" secondItem="6T2-M9-9wV" secondAttribute="height" multiplier="1:1" id="RlM-6u-eer"/> 84 <constraint firstAttribute="width" secondItem="6T2-M9-9wV" secondAttribute="height" multiplier="1:1" id="RlM-6u-eer"/>
85 </constraints> 85 </constraints>
86 <state key="normal" backgroundImage="arrow_back"/> 86 <state key="normal" backgroundImage="arrow_back"/>
87 </button> 87 </button>
88 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Cwb-8M-pDi"> 88 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Cwb-8M-pDi">
89 <rect key="frame" x="320" y="0.0" width="35" height="35"/> 89 <rect key="frame" x="320" y="0.0" width="35" height="35"/>
90 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 90 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
91 <state key="normal" backgroundImage="arrow_next"/> 91 <state key="normal" backgroundImage="arrow_next"/>
92 </button> 92 </button>
93 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2017年1月1日 日曜日" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="EM7-vA-s1e"> 93 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2017年1月1日 日曜日" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="EM7-vA-s1e">
94 <rect key="frame" x="40" y="2" width="275" height="31"/> 94 <rect key="frame" x="40" y="2" width="275" height="31"/>
95 <fontDescription key="fontDescription" type="system" pointSize="17"/> 95 <fontDescription key="fontDescription" type="system" pointSize="17"/>
96 <nil key="textColor"/> 96 <nil key="textColor"/>
97 <nil key="highlightedColor"/> 97 <nil key="highlightedColor"/>
98 </label> 98 </label>
99 </subviews> 99 </subviews>
100 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 100 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
101 <constraints> 101 <constraints>
102 <constraint firstItem="Cwb-8M-pDi" firstAttribute="top" secondItem="Cf1-lP-zbB" secondAttribute="top" id="4Jr-r7-y6d"/> 102 <constraint firstItem="Cwb-8M-pDi" firstAttribute="top" secondItem="Cf1-lP-zbB" secondAttribute="top" id="4Jr-r7-y6d"/>
103 <constraint firstAttribute="bottom" secondItem="6T2-M9-9wV" secondAttribute="bottom" id="8bU-NI-m32"/> 103 <constraint firstAttribute="bottom" secondItem="6T2-M9-9wV" secondAttribute="bottom" id="8bU-NI-m32"/>
104 <constraint firstItem="EM7-vA-s1e" firstAttribute="leading" secondItem="6T2-M9-9wV" secondAttribute="trailing" constant="5" id="9G1-I6-nSV"/> 104 <constraint firstItem="EM7-vA-s1e" firstAttribute="leading" secondItem="6T2-M9-9wV" secondAttribute="trailing" constant="5" id="9G1-I6-nSV"/>
105 <constraint firstItem="EM7-vA-s1e" firstAttribute="top" secondItem="Cf1-lP-zbB" secondAttribute="top" constant="2" id="9Yk-sv-gkx"/> 105 <constraint firstItem="EM7-vA-s1e" firstAttribute="top" secondItem="Cf1-lP-zbB" secondAttribute="top" constant="2" id="9Yk-sv-gkx"/>
106 <constraint firstItem="Cwb-8M-pDi" firstAttribute="leading" secondItem="EM7-vA-s1e" secondAttribute="trailing" constant="5" id="JQI-18-cWP"/> 106 <constraint firstItem="Cwb-8M-pDi" firstAttribute="leading" secondItem="EM7-vA-s1e" secondAttribute="trailing" constant="5" id="JQI-18-cWP"/>
107 <constraint firstAttribute="height" constant="35" id="Pdg-IR-g8y"/> 107 <constraint firstAttribute="height" constant="35" id="Pdg-IR-g8y"/>
108 <constraint firstItem="6T2-M9-9wV" firstAttribute="leading" secondItem="Cf1-lP-zbB" secondAttribute="leading" id="Pgh-zZ-vrG"/> 108 <constraint firstItem="6T2-M9-9wV" firstAttribute="leading" secondItem="Cf1-lP-zbB" secondAttribute="leading" id="Pgh-zZ-vrG"/>
109 <constraint firstAttribute="bottom" secondItem="Cwb-8M-pDi" secondAttribute="bottom" id="WWs-Ey-osm"/> 109 <constraint firstAttribute="bottom" secondItem="Cwb-8M-pDi" secondAttribute="bottom" id="WWs-Ey-osm"/>
110 <constraint firstItem="Cwb-8M-pDi" firstAttribute="width" secondItem="Cwb-8M-pDi" secondAttribute="height" multiplier="1:1" id="YHa-MU-GKi"/> 110 <constraint firstItem="Cwb-8M-pDi" firstAttribute="width" secondItem="Cwb-8M-pDi" secondAttribute="height" multiplier="1:1" id="YHa-MU-GKi"/>
111 <constraint firstItem="6T2-M9-9wV" firstAttribute="top" secondItem="Cf1-lP-zbB" secondAttribute="top" id="fiM-o3-Us0"/> 111 <constraint firstItem="6T2-M9-9wV" firstAttribute="top" secondItem="Cf1-lP-zbB" secondAttribute="top" id="fiM-o3-Us0"/>
112 <constraint firstAttribute="trailing" secondItem="Cwb-8M-pDi" secondAttribute="trailing" id="oCE-RP-EmX"/> 112 <constraint firstAttribute="trailing" secondItem="Cwb-8M-pDi" secondAttribute="trailing" id="oCE-RP-EmX"/>
113 <constraint firstAttribute="bottom" secondItem="EM7-vA-s1e" secondAttribute="bottom" constant="2" id="oOd-ip-MZy"/> 113 <constraint firstAttribute="bottom" secondItem="EM7-vA-s1e" secondAttribute="bottom" constant="2" id="oOd-ip-MZy"/>
114 </constraints> 114 </constraints>
115 </view> 115 </view>
116 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="yxY-4d-tB6" customClass="CollectionView"> 116 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="yxY-4d-tB6" customClass="CollectionView">
117 <rect key="frame" x="2" y="96" width="371" height="40"/> 117 <rect key="frame" x="2" y="96" width="371" height="40"/>
118 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 118 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
119 <constraints> 119 <constraints>
120 <constraint firstAttribute="height" constant="40" id="U7Q-wa-CDi"/> 120 <constraint firstAttribute="height" constant="40" id="U7Q-wa-CDi"/>
121 </constraints> 121 </constraints>
122 </view> 122 </view>
123 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="BVv-qD-EHM" customClass="CollectionView"> 123 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="BVv-qD-EHM" customClass="CollectionView">
124 <rect key="frame" x="0.0" y="577" width="375" height="40"/> 124 <rect key="frame" x="0.0" y="577" width="375" height="40"/>
125 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 125 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
126 <constraints> 126 <constraints>
127 <constraint firstAttribute="height" constant="40" id="6wc-NQ-UAH"/> 127 <constraint firstAttribute="height" constant="40" id="6wc-NQ-UAH"/>
128 </constraints> 128 </constraints>
129 </view> 129 </view>
130 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="FLa-rV-Aas" userLabel="ViewContent"> 130 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="FLa-rV-Aas" userLabel="ViewContent">
131 <rect key="frame" x="0.0" y="151" width="375" height="421"/> 131 <rect key="frame" x="0.0" y="151" width="375" height="421"/>
132 <subviews> 132 <subviews>
133 <tableView clipsSubviews="YES" alpha="0.0" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" rowHeight="100" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="FXQ-4O-sRc"> 133 <tableView clipsSubviews="YES" alpha="0.0" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" rowHeight="100" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="FXQ-4O-sRc">
134 <rect key="frame" x="5" y="0.0" width="365" height="421"/> 134 <rect key="frame" x="5" y="0.0" width="365" height="421"/>
135 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 135 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
136 <connections> 136 <connections>
137 <outlet property="dataSource" destination="-1" id="GQy-lg-1Af"/> 137 <outlet property="dataSource" destination="-1" id="GQy-lg-1Af"/>
138 <outlet property="delegate" destination="-1" id="Jka-Ij-zNq"/> 138 <outlet property="delegate" destination="-1" id="Jka-Ij-zNq"/>
139 </connections> 139 </connections>
140 </tableView> 140 </tableView>
141 <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="rey-N3-l8b"> 141 <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="rey-N3-l8b">
142 <rect key="frame" x="0.0" y="0.0" width="375" height="421"/> 142 <rect key="frame" x="0.0" y="0.0" width="375" height="421"/>
143 <subviews> 143 <subviews>
144 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Cam-ML-IEO"> 144 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Cam-ML-IEO">
145 <rect key="frame" x="0.0" y="0.0" width="375" height="421"/> 145 <rect key="frame" x="0.0" y="0.0" width="375" height="421"/>
146 <subviews> 146 <subviews>
147 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Kzk-mN-AOf"> 147 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Kzk-mN-AOf">
148 <rect key="frame" x="20" y="30" width="120" height="120"/> 148 <rect key="frame" x="20" y="30" width="120" height="120"/>
149 <subviews> 149 <subviews>
150 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="500 step" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="oWg-A8-aCr"> 150 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="500 step" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="oWg-A8-aCr">
151 <rect key="frame" x="18" y="35" width="82" height="21"/> 151 <rect key="frame" x="18" y="35" width="82" height="21"/>
152 <constraints> 152 <constraints>
153 <constraint firstAttribute="height" constant="21" id="zOX-0d-IVv"/> 153 <constraint firstAttribute="height" constant="21" id="zOX-0d-IVv"/>
154 </constraints> 154 </constraints>
155 <fontDescription key="fontDescription" type="system" pointSize="17"/> 155 <fontDescription key="fontDescription" type="system" pointSize="17"/>
156 <nil key="textColor"/> 156 <nil key="textColor"/>
157 <nil key="highlightedColor"/> 157 <nil key="highlightedColor"/>
158 </label> 158 </label>
159 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Kr7-S0-Fpl"> 159 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Kr7-S0-Fpl">
160 <rect key="frame" x="20" y="61" width="80" height="42"/> 160 <rect key="frame" x="20" y="61" width="80" height="42"/>
161 <constraints> 161 <constraints>
162 <constraint firstAttribute="width" constant="80" id="IOc-sB-dA2"/> 162 <constraint firstAttribute="width" constant="80" id="IOc-sB-dA2"/>
163 <constraint firstAttribute="height" constant="42" id="zRP-Fu-qZ9"/> 163 <constraint firstAttribute="height" constant="42" id="zRP-Fu-qZ9"/>
164 </constraints> 164 </constraints>
165 <string key="text">目標まであと 165 <string key="text">目標まであと
166 500 stepです</string> 166 500 stepです</string>
167 <fontDescription key="fontDescription" type="system" pointSize="11"/> 167 <fontDescription key="fontDescription" type="system" pointSize="11"/>
168 <nil key="textColor"/> 168 <nil key="textColor"/>
169 <nil key="highlightedColor"/> 169 <nil key="highlightedColor"/>
170 </label> 170 </label>
171 </subviews> 171 </subviews>
172 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 172 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
173 <constraints> 173 <constraints>
174 <constraint firstItem="Kr7-S0-Fpl" firstAttribute="top" secondItem="oWg-A8-aCr" secondAttribute="bottom" constant="5" id="2KK-Lm-h74"/> 174 <constraint firstItem="Kr7-S0-Fpl" firstAttribute="top" secondItem="oWg-A8-aCr" secondAttribute="bottom" constant="5" id="2KK-Lm-h74"/>
175 <constraint firstItem="oWg-A8-aCr" firstAttribute="leading" secondItem="Kzk-mN-AOf" secondAttribute="leading" constant="18" id="CdG-qa-ud5"/> 175 <constraint firstItem="oWg-A8-aCr" firstAttribute="leading" secondItem="Kzk-mN-AOf" secondAttribute="leading" constant="18" id="CdG-qa-ud5"/>
176 <constraint firstAttribute="width" constant="120" id="E48-cC-dsc"/> 176 <constraint firstAttribute="width" constant="120" id="E48-cC-dsc"/>
177 <constraint firstAttribute="height" constant="120" id="SlY-sr-tR9"/> 177 <constraint firstAttribute="height" constant="120" id="SlY-sr-tR9"/>
178 <constraint firstItem="Kr7-S0-Fpl" firstAttribute="centerX" secondItem="Kzk-mN-AOf" secondAttribute="centerX" id="jJV-RH-pk1"/> 178 <constraint firstItem="Kr7-S0-Fpl" firstAttribute="centerX" secondItem="Kzk-mN-AOf" secondAttribute="centerX" id="jJV-RH-pk1"/>
179 <constraint firstItem="oWg-A8-aCr" firstAttribute="top" secondItem="Kzk-mN-AOf" secondAttribute="top" constant="35" id="oBl-zo-td5"/> 179 <constraint firstItem="oWg-A8-aCr" firstAttribute="top" secondItem="Kzk-mN-AOf" secondAttribute="top" constant="35" id="oBl-zo-td5"/>
180 <constraint firstAttribute="trailing" secondItem="oWg-A8-aCr" secondAttribute="trailing" constant="20" id="xgh-d4-jOF"/> 180 <constraint firstAttribute="trailing" secondItem="oWg-A8-aCr" secondAttribute="trailing" constant="20" id="xgh-d4-jOF"/>
181 </constraints> 181 </constraints>
182 <userDefinedRuntimeAttributes> 182 <userDefinedRuntimeAttributes>
183 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> 183 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
184 <integer key="value" value="60"/> 184 <integer key="value" value="60"/>
185 </userDefinedRuntimeAttribute> 185 </userDefinedRuntimeAttribute>
186 </userDefinedRuntimeAttributes> 186 </userDefinedRuntimeAttributes>
187 </view> 187 </view>
188 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4ix-HE-d9T"> 188 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4ix-HE-d9T">
189 <rect key="frame" x="148" y="30" width="219" height="120"/> 189 <rect key="frame" x="148" y="30" width="219" height="120"/>
190 <subviews> 190 <subviews>
191 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="目標" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YE6-wh-77T" customClass="AutoTransLabel"> 191 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="目標" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YE6-wh-77T" customClass="AutoTransLabel">
192 <rect key="frame" x="10" y="38" width="45" height="15"/> 192 <rect key="frame" x="10" y="38" width="45" height="15"/>
193 <constraints> 193 <constraints>
194 <constraint firstAttribute="width" constant="45" id="6Ce-YE-wbx"/> 194 <constraint firstAttribute="width" constant="45" id="6Ce-YE-wbx"/>
195 <constraint firstAttribute="height" constant="15" id="eFR-Ao-75U"/> 195 <constraint firstAttribute="height" constant="15" id="eFR-Ao-75U"/>
196 </constraints> 196 </constraints>
197 <fontDescription key="fontDescription" type="system" pointSize="12"/> 197 <fontDescription key="fontDescription" type="system" pointSize="12"/>
198 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 198 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
199 <nil key="highlightedColor"/> 199 <nil key="highlightedColor"/>
200 <userDefinedRuntimeAttributes> 200 <userDefinedRuntimeAttributes>
201 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.history.title.total"/> 201 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.history.title.total"/>
202 </userDefinedRuntimeAttributes> 202 </userDefinedRuntimeAttributes>
203 </label> 203 </label>
204 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="残歩数" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="HOl-Tj-xiT" customClass="AutoTransLabel"> 204 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="残歩数" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="HOl-Tj-xiT" customClass="AutoTransLabel">
205 <rect key="frame" x="10" y="53" width="45" height="15"/> 205 <rect key="frame" x="10" y="53" width="45" height="15"/>
206 <fontDescription key="fontDescription" type="system" pointSize="12"/> 206 <fontDescription key="fontDescription" type="system" pointSize="12"/>
207 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 207 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
208 <nil key="highlightedColor"/> 208 <nil key="highlightedColor"/>
209 <userDefinedRuntimeAttributes> 209 <userDefinedRuntimeAttributes>
210 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.history.title.remaining"/> 210 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.history.title.remaining"/>
211 </userDefinedRuntimeAttributes> 211 </userDefinedRuntimeAttributes>
212 </label> 212 </label>
213 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="達成率" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="l0h-qA-2Ai" customClass="AutoTransLabel"> 213 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="達成率" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="l0h-qA-2Ai" customClass="AutoTransLabel">
214 <rect key="frame" x="10" y="68" width="45" height="15"/> 214 <rect key="frame" x="10" y="68" width="45" height="15"/>
215 <fontDescription key="fontDescription" type="system" pointSize="12"/> 215 <fontDescription key="fontDescription" type="system" pointSize="12"/>
216 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 216 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
217 <nil key="highlightedColor"/> 217 <nil key="highlightedColor"/>
218 <userDefinedRuntimeAttributes> 218 <userDefinedRuntimeAttributes>
219 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.history.title.percent"/> 219 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.history.title.percent"/>
220 </userDefinedRuntimeAttributes> 220 </userDefinedRuntimeAttributes>
221 </label> 221 </label>
222 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1000 step" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0pf-fX-QXT"> 222 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1000 step" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0pf-fX-QXT">
223 <rect key="frame" x="63" y="38" width="118" height="15"/> 223 <rect key="frame" x="63" y="38" width="118" height="15"/>
224 <constraints> 224 <constraints>
225 <constraint firstAttribute="height" constant="15" id="Z6o-LI-Eu9"/> 225 <constraint firstAttribute="height" constant="15" id="Z6o-LI-Eu9"/>
226 </constraints> 226 </constraints>
227 <fontDescription key="fontDescription" type="system" pointSize="12"/> 227 <fontDescription key="fontDescription" type="system" pointSize="12"/>
228 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 228 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
229 <nil key="highlightedColor"/> 229 <nil key="highlightedColor"/>
230 </label> 230 </label>
231 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="500 step" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1NH-b3-ST8"> 231 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="500 step" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1NH-b3-ST8">
232 <rect key="frame" x="63" y="53" width="118" height="15"/> 232 <rect key="frame" x="63" y="53" width="118" height="15"/>
233 <fontDescription key="fontDescription" type="system" pointSize="12"/> 233 <fontDescription key="fontDescription" type="system" pointSize="12"/>
234 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 234 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
235 <nil key="highlightedColor"/> 235 <nil key="highlightedColor"/>
236 </label> 236 </label>
237 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="50 %" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8Ru-Jc-Ouv"> 237 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="50 %" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8Ru-Jc-Ouv">
238 <rect key="frame" x="63" y="68" width="118" height="15"/> 238 <rect key="frame" x="63" y="68" width="118" height="15"/>
239 <fontDescription key="fontDescription" type="system" pointSize="12"/> 239 <fontDescription key="fontDescription" type="system" pointSize="12"/>
240 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 240 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
241 <nil key="highlightedColor"/> 241 <nil key="highlightedColor"/>
242 </label> 242 </label>
243 </subviews> 243 </subviews>
244 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 244 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
245 <constraints> 245 <constraints>
246 <constraint firstItem="l0h-qA-2Ai" firstAttribute="top" secondItem="HOl-Tj-xiT" secondAttribute="bottom" id="0dv-3h-eHs"/> 246 <constraint firstItem="l0h-qA-2Ai" firstAttribute="top" secondItem="HOl-Tj-xiT" secondAttribute="bottom" id="0dv-3h-eHs"/>
247 <constraint firstItem="l0h-qA-2Ai" firstAttribute="leading" secondItem="YE6-wh-77T" secondAttribute="leading" id="7z3-ph-BM4"/> 247 <constraint firstItem="l0h-qA-2Ai" firstAttribute="leading" secondItem="YE6-wh-77T" secondAttribute="leading" id="7z3-ph-BM4"/>
248 <constraint firstItem="1NH-b3-ST8" firstAttribute="leading" secondItem="0pf-fX-QXT" secondAttribute="leading" id="ACu-BV-ieg"/> 248 <constraint firstItem="1NH-b3-ST8" firstAttribute="leading" secondItem="0pf-fX-QXT" secondAttribute="leading" id="ACu-BV-ieg"/>
249 <constraint firstItem="8Ru-Jc-Ouv" firstAttribute="top" secondItem="1NH-b3-ST8" secondAttribute="bottom" id="Abh-FK-4X7"/> 249 <constraint firstItem="8Ru-Jc-Ouv" firstAttribute="top" secondItem="1NH-b3-ST8" secondAttribute="bottom" id="Abh-FK-4X7"/>
250 <constraint firstItem="1NH-b3-ST8" firstAttribute="top" secondItem="0pf-fX-QXT" secondAttribute="bottom" id="B3I-n2-Oks"/> 250 <constraint firstItem="1NH-b3-ST8" firstAttribute="top" secondItem="0pf-fX-QXT" secondAttribute="bottom" id="B3I-n2-Oks"/>
251 <constraint firstItem="1NH-b3-ST8" firstAttribute="height" secondItem="0pf-fX-QXT" secondAttribute="height" id="BAn-7O-jBX"/> 251 <constraint firstItem="1NH-b3-ST8" firstAttribute="height" secondItem="0pf-fX-QXT" secondAttribute="height" id="BAn-7O-jBX"/>
252 <constraint firstItem="0pf-fX-QXT" firstAttribute="leading" secondItem="YE6-wh-77T" secondAttribute="trailing" constant="8" id="G20-xx-HEH"/> 252 <constraint firstItem="0pf-fX-QXT" firstAttribute="leading" secondItem="YE6-wh-77T" secondAttribute="trailing" constant="8" id="G20-xx-HEH"/>
253 <constraint firstItem="8Ru-Jc-Ouv" firstAttribute="leading" secondItem="0pf-fX-QXT" secondAttribute="leading" id="NIm-Zw-fnf"/> 253 <constraint firstItem="8Ru-Jc-Ouv" firstAttribute="leading" secondItem="0pf-fX-QXT" secondAttribute="leading" id="NIm-Zw-fnf"/>
254 <constraint firstItem="8Ru-Jc-Ouv" firstAttribute="height" secondItem="0pf-fX-QXT" secondAttribute="height" id="PdQ-qd-Sqc"/> 254 <constraint firstItem="8Ru-Jc-Ouv" firstAttribute="height" secondItem="0pf-fX-QXT" secondAttribute="height" id="PdQ-qd-Sqc"/>
255 <constraint firstItem="HOl-Tj-xiT" firstAttribute="width" secondItem="YE6-wh-77T" secondAttribute="width" id="WpC-o9-bDa"/> 255 <constraint firstItem="HOl-Tj-xiT" firstAttribute="width" secondItem="YE6-wh-77T" secondAttribute="width" id="WpC-o9-bDa"/>
256 <constraint firstItem="l0h-qA-2Ai" firstAttribute="height" secondItem="YE6-wh-77T" secondAttribute="height" id="bR8-Ki-lS1"/> 256 <constraint firstItem="l0h-qA-2Ai" firstAttribute="height" secondItem="YE6-wh-77T" secondAttribute="height" id="bR8-Ki-lS1"/>
257 <constraint firstItem="HOl-Tj-xiT" firstAttribute="height" secondItem="YE6-wh-77T" secondAttribute="height" id="c0u-hz-5O9"/> 257 <constraint firstItem="HOl-Tj-xiT" firstAttribute="height" secondItem="YE6-wh-77T" secondAttribute="height" id="c0u-hz-5O9"/>
258 <constraint firstItem="1NH-b3-ST8" firstAttribute="leading" secondItem="0pf-fX-QXT" secondAttribute="leading" id="chf-kb-ClX"/> 258 <constraint firstItem="1NH-b3-ST8" firstAttribute="leading" secondItem="0pf-fX-QXT" secondAttribute="leading" id="chf-kb-ClX"/>
259 <constraint firstItem="8Ru-Jc-Ouv" firstAttribute="leading" secondItem="0pf-fX-QXT" secondAttribute="leading" id="din-4T-V5w"/> 259 <constraint firstItem="8Ru-Jc-Ouv" firstAttribute="leading" secondItem="0pf-fX-QXT" secondAttribute="leading" id="din-4T-V5w"/>
260 <constraint firstItem="l0h-qA-2Ai" firstAttribute="width" secondItem="YE6-wh-77T" secondAttribute="width" id="eo0-xw-d1f"/> 260 <constraint firstItem="l0h-qA-2Ai" firstAttribute="width" secondItem="YE6-wh-77T" secondAttribute="width" id="eo0-xw-d1f"/>
261 <constraint firstItem="8Ru-Jc-Ouv" firstAttribute="width" secondItem="0pf-fX-QXT" secondAttribute="width" id="gjt-3e-Pkx"/> 261 <constraint firstItem="8Ru-Jc-Ouv" firstAttribute="width" secondItem="0pf-fX-QXT" secondAttribute="width" id="gjt-3e-Pkx"/>
262 <constraint firstItem="1NH-b3-ST8" firstAttribute="width" secondItem="0pf-fX-QXT" secondAttribute="width" id="kOM-6S-Amv"/> 262 <constraint firstItem="1NH-b3-ST8" firstAttribute="width" secondItem="0pf-fX-QXT" secondAttribute="width" id="kOM-6S-Amv"/>
263 <constraint firstItem="HOl-Tj-xiT" firstAttribute="leading" secondItem="YE6-wh-77T" secondAttribute="leading" id="oOc-TB-k4j"/> 263 <constraint firstItem="HOl-Tj-xiT" firstAttribute="leading" secondItem="YE6-wh-77T" secondAttribute="leading" id="oOc-TB-k4j"/>
264 <constraint firstItem="1NH-b3-ST8" firstAttribute="centerY" secondItem="HOl-Tj-xiT" secondAttribute="centerY" id="pGW-dw-56G"/> 264 <constraint firstItem="1NH-b3-ST8" firstAttribute="centerY" secondItem="HOl-Tj-xiT" secondAttribute="centerY" id="pGW-dw-56G"/>
265 <constraint firstItem="HOl-Tj-xiT" firstAttribute="top" secondItem="YE6-wh-77T" secondAttribute="bottom" id="s6n-mU-Sp6"/> 265 <constraint firstItem="HOl-Tj-xiT" firstAttribute="top" secondItem="YE6-wh-77T" secondAttribute="bottom" id="s6n-mU-Sp6"/>
266 <constraint firstItem="HOl-Tj-xiT" firstAttribute="centerY" secondItem="4ix-HE-d9T" secondAttribute="centerY" id="vB9-RR-pao"/> 266 <constraint firstItem="HOl-Tj-xiT" firstAttribute="centerY" secondItem="4ix-HE-d9T" secondAttribute="centerY" id="vB9-RR-pao"/>
267 <constraint firstAttribute="trailing" secondItem="0pf-fX-QXT" secondAttribute="trailing" constant="38" id="xiP-fg-Ozi"/> 267 <constraint firstAttribute="trailing" secondItem="0pf-fX-QXT" secondAttribute="trailing" constant="38" id="xiP-fg-Ozi"/>
268 <constraint firstItem="YE6-wh-77T" firstAttribute="leading" secondItem="4ix-HE-d9T" secondAttribute="leading" constant="10" id="xj6-In-ihz"/> 268 <constraint firstItem="YE6-wh-77T" firstAttribute="leading" secondItem="4ix-HE-d9T" secondAttribute="leading" constant="10" id="xj6-In-ihz"/>
269 </constraints> 269 </constraints>
270 </view> 270 </view>
271 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="iEh-Ze-suq"> 271 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="iEh-Ze-suq">
272 <rect key="frame" x="20" y="158" width="335" height="35"/> 272 <rect key="frame" x="20" y="158" width="335" height="35"/>
273 <subviews> 273 <subviews>
274 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="UwA-5Q-gdv"> 274 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="UwA-5Q-gdv">
275 <rect key="frame" x="0.0" y="0.0" width="111.5" height="35"/> 275 <rect key="frame" x="0.0" y="0.0" width="111.5" height="35"/>
276 <subviews> 276 <subviews>
277 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="消費カロリー" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zRU-L6-Ed4" customClass="AutoTransLabel"> 277 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="消費カロリー" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zRU-L6-Ed4" customClass="AutoTransLabel">
278 <rect key="frame" x="0.0" y="0.0" width="111.5" height="18"/> 278 <rect key="frame" x="0.0" y="0.0" width="111.5" height="18"/>
279 <constraints> 279 <constraints>
280 <constraint firstAttribute="height" constant="18" id="Ywp-RA-6am"/> 280 <constraint firstAttribute="height" constant="18" id="Ywp-RA-6am"/>
281 </constraints> 281 </constraints>
282 <fontDescription key="fontDescription" type="system" pointSize="12"/> 282 <fontDescription key="fontDescription" type="system" pointSize="12"/>
283 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 283 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
284 <nil key="highlightedColor"/> 284 <nil key="highlightedColor"/>
285 <userDefinedRuntimeAttributes> 285 <userDefinedRuntimeAttributes>
286 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.history.title.calories"/> 286 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.history.title.calories"/>
287 </userDefinedRuntimeAttributes> 287 </userDefinedRuntimeAttributes>
288 </label> 288 </label>
289 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1000 kcal" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dAE-C8-QLr"> 289 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1000 kcal" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dAE-C8-QLr">
290 <rect key="frame" x="0.0" y="17" width="111.5" height="18"/> 290 <rect key="frame" x="0.0" y="17" width="111.5" height="18"/>
291 <constraints> 291 <constraints>
292 <constraint firstAttribute="height" constant="18" id="r0d-xi-3u7"/> 292 <constraint firstAttribute="height" constant="18" id="r0d-xi-3u7"/>
293 </constraints> 293 </constraints>
294 <fontDescription key="fontDescription" type="system" pointSize="12"/> 294 <fontDescription key="fontDescription" type="system" pointSize="12"/>
295 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 295 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
296 <nil key="highlightedColor"/> 296 <nil key="highlightedColor"/>
297 </label> 297 </label>
298 </subviews> 298 </subviews>
299 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 299 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
300 <constraints> 300 <constraints>
301 <constraint firstItem="zRU-L6-Ed4" firstAttribute="leading" secondItem="UwA-5Q-gdv" secondAttribute="leading" id="Zbe-7f-cuR"/> 301 <constraint firstItem="zRU-L6-Ed4" firstAttribute="leading" secondItem="UwA-5Q-gdv" secondAttribute="leading" id="Zbe-7f-cuR"/>
302 <constraint firstAttribute="bottom" secondItem="dAE-C8-QLr" secondAttribute="bottom" id="aZH-zh-M1V"/> 302 <constraint firstAttribute="bottom" secondItem="dAE-C8-QLr" secondAttribute="bottom" id="aZH-zh-M1V"/>
303 <constraint firstItem="zRU-L6-Ed4" firstAttribute="top" secondItem="UwA-5Q-gdv" secondAttribute="top" id="bsw-KU-Tcu"/> 303 <constraint firstItem="zRU-L6-Ed4" firstAttribute="top" secondItem="UwA-5Q-gdv" secondAttribute="top" id="bsw-KU-Tcu"/>
304 <constraint firstAttribute="trailing" secondItem="zRU-L6-Ed4" secondAttribute="trailing" id="iMB-ch-u4B"/> 304 <constraint firstAttribute="trailing" secondItem="zRU-L6-Ed4" secondAttribute="trailing" id="iMB-ch-u4B"/>
305 <constraint firstItem="dAE-C8-QLr" firstAttribute="leading" secondItem="UwA-5Q-gdv" secondAttribute="leading" id="qNu-WH-Jjj"/> 305 <constraint firstItem="dAE-C8-QLr" firstAttribute="leading" secondItem="UwA-5Q-gdv" secondAttribute="leading" id="qNu-WH-Jjj"/>
306 <constraint firstAttribute="trailing" secondItem="dAE-C8-QLr" secondAttribute="trailing" id="wRF-1x-XC1"/> 306 <constraint firstAttribute="trailing" secondItem="dAE-C8-QLr" secondAttribute="trailing" id="wRF-1x-XC1"/>
307 </constraints> 307 </constraints>
308 </view> 308 </view>
309 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="BVs-KG-fDF"> 309 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="BVs-KG-fDF">
310 <rect key="frame" x="111.5" y="0.0" width="112" height="35"/> 310 <rect key="frame" x="111.5" y="0.0" width="112" height="35"/>
311 <subviews> 311 <subviews>
312 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="距離" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="XGt-pc-sd7" customClass="AutoTransLabel"> 312 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="距離" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="XGt-pc-sd7" customClass="AutoTransLabel">
313 <rect key="frame" x="0.0" y="0.0" width="112" height="18"/> 313 <rect key="frame" x="0.0" y="0.0" width="112" height="18"/>
314 <constraints> 314 <constraints>
315 <constraint firstAttribute="height" constant="18" id="tct-pY-7wo"/> 315 <constraint firstAttribute="height" constant="18" id="tct-pY-7wo"/>
316 </constraints> 316 </constraints>
317 <fontDescription key="fontDescription" type="system" pointSize="12"/> 317 <fontDescription key="fontDescription" type="system" pointSize="12"/>
318 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 318 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
319 <nil key="highlightedColor"/> 319 <nil key="highlightedColor"/>
320 <userDefinedRuntimeAttributes> 320 <userDefinedRuntimeAttributes>
321 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.history.title.distance"/> 321 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.history.title.distance"/>
322 </userDefinedRuntimeAttributes> 322 </userDefinedRuntimeAttributes>
323 </label> 323 </label>
324 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="4.0 KM" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1tR-JC-pyw"> 324 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="4.0 KM" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1tR-JC-pyw">
325 <rect key="frame" x="0.0" y="17" width="112" height="18"/> 325 <rect key="frame" x="0.0" y="17" width="112" height="18"/>
326 <constraints> 326 <constraints>
327 <constraint firstAttribute="height" constant="18" id="sNT-xl-BKH"/> 327 <constraint firstAttribute="height" constant="18" id="sNT-xl-BKH"/>
328 </constraints> 328 </constraints>
329 <fontDescription key="fontDescription" type="system" pointSize="12"/> 329 <fontDescription key="fontDescription" type="system" pointSize="12"/>
330 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 330 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
331 <nil key="highlightedColor"/> 331 <nil key="highlightedColor"/>
332 </label> 332 </label>
333 </subviews> 333 </subviews>
334 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 334 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
335 <constraints> 335 <constraints>
336 <constraint firstItem="XGt-pc-sd7" firstAttribute="leading" secondItem="BVs-KG-fDF" secondAttribute="leading" id="Bd8-ZX-shc"/> 336 <constraint firstItem="XGt-pc-sd7" firstAttribute="leading" secondItem="BVs-KG-fDF" secondAttribute="leading" id="Bd8-ZX-shc"/>
337 <constraint firstAttribute="trailing" secondItem="1tR-JC-pyw" secondAttribute="trailing" id="Mrw-gb-r3n"/> 337 <constraint firstAttribute="trailing" secondItem="1tR-JC-pyw" secondAttribute="trailing" id="Mrw-gb-r3n"/>
338 <constraint firstAttribute="trailing" secondItem="XGt-pc-sd7" secondAttribute="trailing" id="cTc-te-Pc1"/> 338 <constraint firstAttribute="trailing" secondItem="XGt-pc-sd7" secondAttribute="trailing" id="cTc-te-Pc1"/>
339 <constraint firstItem="XGt-pc-sd7" firstAttribute="top" secondItem="BVs-KG-fDF" secondAttribute="top" id="cs1-A7-e5C"/> 339 <constraint firstItem="XGt-pc-sd7" firstAttribute="top" secondItem="BVs-KG-fDF" secondAttribute="top" id="cs1-A7-e5C"/>
340 <constraint firstAttribute="bottom" secondItem="1tR-JC-pyw" secondAttribute="bottom" id="vsZ-FE-X5m"/> 340 <constraint firstAttribute="bottom" secondItem="1tR-JC-pyw" secondAttribute="bottom" id="vsZ-FE-X5m"/>
341 <constraint firstItem="1tR-JC-pyw" firstAttribute="leading" secondItem="BVs-KG-fDF" secondAttribute="leading" id="xOd-ZK-rZn"/> 341 <constraint firstItem="1tR-JC-pyw" firstAttribute="leading" secondItem="BVs-KG-fDF" secondAttribute="leading" id="xOd-ZK-rZn"/>
342 </constraints> 342 </constraints>
343 </view> 343 </view>
344 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="j5h-QD-Igf"> 344 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="j5h-QD-Igf">
345 <rect key="frame" x="223.5" y="0.0" width="111.5" height="35"/> 345 <rect key="frame" x="223.5" y="0.0" width="111.5" height="35"/>
346 <subviews> 346 <subviews>
347 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="時間" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="OEO-l8-Ibg" customClass="AutoTransLabel"> 347 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="時間" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="OEO-l8-Ibg" customClass="AutoTransLabel">
348 <rect key="frame" x="0.0" y="0.0" width="111.5" height="18"/> 348 <rect key="frame" x="0.0" y="0.0" width="111.5" height="18"/>
349 <constraints> 349 <constraints>
350 <constraint firstAttribute="height" constant="18" id="EVe-qW-qqp"/> 350 <constraint firstAttribute="height" constant="18" id="EVe-qW-qqp"/>
351 </constraints> 351 </constraints>
352 <fontDescription key="fontDescription" type="system" pointSize="12"/> 352 <fontDescription key="fontDescription" type="system" pointSize="12"/>
353 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 353 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
354 <nil key="highlightedColor"/> 354 <nil key="highlightedColor"/>
355 <userDefinedRuntimeAttributes> 355 <userDefinedRuntimeAttributes>
356 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.history.title.time"/> 356 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.history.title.time"/>
357 </userDefinedRuntimeAttributes> 357 </userDefinedRuntimeAttributes>
358 </label> 358 </label>
359 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1:00 時間" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="PfZ-7x-LAR"> 359 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1:00 時間" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="PfZ-7x-LAR">
360 <rect key="frame" x="0.0" y="17" width="111.5" height="18"/> 360 <rect key="frame" x="0.0" y="17" width="111.5" height="18"/>
361 <constraints> 361 <constraints>
362 <constraint firstAttribute="height" constant="18" id="lno-Dx-ZNm"/> 362 <constraint firstAttribute="height" constant="18" id="lno-Dx-ZNm"/>
363 </constraints> 363 </constraints>
364 <fontDescription key="fontDescription" type="system" pointSize="12"/> 364 <fontDescription key="fontDescription" type="system" pointSize="12"/>
365 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 365 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
366 <nil key="highlightedColor"/> 366 <nil key="highlightedColor"/>
367 </label> 367 </label>
368 </subviews> 368 </subviews>
369 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 369 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
370 <constraints> 370 <constraints>
371 <constraint firstAttribute="trailing" secondItem="PfZ-7x-LAR" secondAttribute="trailing" id="3Ir-mZ-xmI"/> 371 <constraint firstAttribute="trailing" secondItem="PfZ-7x-LAR" secondAttribute="trailing" id="3Ir-mZ-xmI"/>
372 <constraint firstItem="OEO-l8-Ibg" firstAttribute="leading" secondItem="j5h-QD-Igf" secondAttribute="leading" id="5oW-CQ-vWi"/> 372 <constraint firstItem="OEO-l8-Ibg" firstAttribute="leading" secondItem="j5h-QD-Igf" secondAttribute="leading" id="5oW-CQ-vWi"/>
373 <constraint firstItem="PfZ-7x-LAR" firstAttribute="leading" secondItem="j5h-QD-Igf" secondAttribute="leading" id="Qur-SO-10d"/> 373 <constraint firstItem="PfZ-7x-LAR" firstAttribute="leading" secondItem="j5h-QD-Igf" secondAttribute="leading" id="Qur-SO-10d"/>
374 <constraint firstAttribute="trailing" secondItem="OEO-l8-Ibg" secondAttribute="trailing" id="WQn-Gv-plQ"/> 374 <constraint firstAttribute="trailing" secondItem="OEO-l8-Ibg" secondAttribute="trailing" id="WQn-Gv-plQ"/>
375 <constraint firstItem="OEO-l8-Ibg" firstAttribute="top" secondItem="j5h-QD-Igf" secondAttribute="top" id="lt7-Qt-rBM"/> 375 <constraint firstItem="OEO-l8-Ibg" firstAttribute="top" secondItem="j5h-QD-Igf" secondAttribute="top" id="lt7-Qt-rBM"/>
376 <constraint firstAttribute="bottom" secondItem="PfZ-7x-LAR" secondAttribute="bottom" id="qcA-M9-NYS"/> 376 <constraint firstAttribute="bottom" secondItem="PfZ-7x-LAR" secondAttribute="bottom" id="qcA-M9-NYS"/>
377 </constraints> 377 </constraints>
378 </view> 378 </view>
379 </subviews> 379 </subviews>
380 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 380 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
381 <constraints> 381 <constraints>
382 <constraint firstAttribute="bottom" secondItem="j5h-QD-Igf" secondAttribute="bottom" id="IsO-UX-w9t"/> 382 <constraint firstAttribute="bottom" secondItem="j5h-QD-Igf" secondAttribute="bottom" id="IsO-UX-w9t"/>
383 <constraint firstItem="j5h-QD-Igf" firstAttribute="top" secondItem="iEh-Ze-suq" secondAttribute="top" id="Msr-oS-nFH"/> 383 <constraint firstItem="j5h-QD-Igf" firstAttribute="top" secondItem="iEh-Ze-suq" secondAttribute="top" id="Msr-oS-nFH"/>
384 <constraint firstItem="BVs-KG-fDF" firstAttribute="top" secondItem="iEh-Ze-suq" secondAttribute="top" id="Ohk-mJ-oCK"/> 384 <constraint firstItem="BVs-KG-fDF" firstAttribute="top" secondItem="iEh-Ze-suq" secondAttribute="top" id="Ohk-mJ-oCK"/>
385 <constraint firstItem="UwA-5Q-gdv" firstAttribute="top" secondItem="iEh-Ze-suq" secondAttribute="top" id="Pue-sC-wfB"/> 385 <constraint firstItem="UwA-5Q-gdv" firstAttribute="top" secondItem="iEh-Ze-suq" secondAttribute="top" id="Pue-sC-wfB"/>
386 <constraint firstAttribute="height" constant="35" id="WDe-uC-4Qb"/> 386 <constraint firstAttribute="height" constant="35" id="WDe-uC-4Qb"/>
387 <constraint firstItem="BVs-KG-fDF" firstAttribute="leading" secondItem="UwA-5Q-gdv" secondAttribute="trailing" id="f8Q-F0-hjc"/> 387 <constraint firstItem="BVs-KG-fDF" firstAttribute="leading" secondItem="UwA-5Q-gdv" secondAttribute="trailing" id="f8Q-F0-hjc"/>
388 <constraint firstItem="BVs-KG-fDF" firstAttribute="width" secondItem="UwA-5Q-gdv" secondAttribute="width" id="fdz-YH-1kJ"/> 388 <constraint firstItem="BVs-KG-fDF" firstAttribute="width" secondItem="UwA-5Q-gdv" secondAttribute="width" id="fdz-YH-1kJ"/>
389 <constraint firstAttribute="bottom" secondItem="UwA-5Q-gdv" secondAttribute="bottom" id="gxD-wy-TgL"/> 389 <constraint firstAttribute="bottom" secondItem="UwA-5Q-gdv" secondAttribute="bottom" id="gxD-wy-TgL"/>
390 <constraint firstItem="j5h-QD-Igf" firstAttribute="width" secondItem="UwA-5Q-gdv" secondAttribute="width" id="i3o-n4-fZN"/> 390 <constraint firstItem="j5h-QD-Igf" firstAttribute="width" secondItem="UwA-5Q-gdv" secondAttribute="width" id="i3o-n4-fZN"/>
391 <constraint firstAttribute="trailing" secondItem="j5h-QD-Igf" secondAttribute="trailing" id="nT6-nS-H9z"/> 391 <constraint firstAttribute="trailing" secondItem="j5h-QD-Igf" secondAttribute="trailing" id="nT6-nS-H9z"/>
392 <constraint firstAttribute="bottom" secondItem="BVs-KG-fDF" secondAttribute="bottom" id="nqB-N3-F3F"/> 392 <constraint firstAttribute="bottom" secondItem="BVs-KG-fDF" secondAttribute="bottom" id="nqB-N3-F3F"/>
393 <constraint firstItem="UwA-5Q-gdv" firstAttribute="leading" secondItem="iEh-Ze-suq" secondAttribute="leading" id="oV9-IH-tYC"/> 393 <constraint firstItem="UwA-5Q-gdv" firstAttribute="leading" secondItem="iEh-Ze-suq" secondAttribute="leading" id="oV9-IH-tYC"/>
394 <constraint firstItem="j5h-QD-Igf" firstAttribute="leading" secondItem="BVs-KG-fDF" secondAttribute="trailing" id="zOb-WE-3CI"/> 394 <constraint firstItem="j5h-QD-Igf" firstAttribute="leading" secondItem="BVs-KG-fDF" secondAttribute="trailing" id="zOb-WE-3CI"/>
395 </constraints> 395 </constraints>
396 </view> 396 </view>
397 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="VqD-Y3-cYQ" customClass="BarChartView" customModule="Charts"> 397 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="VqD-Y3-cYQ" customClass="BarChartView" customModule="Charts">
398 <rect key="frame" x="0.0" y="201" width="375" height="100"/> 398 <rect key="frame" x="0.0" y="201" width="375" height="100"/>
399 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 399 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
400 <constraints> 400 <constraints>
401 <constraint firstAttribute="height" constant="100" id="aQR-hf-MhR"/> 401 <constraint firstAttribute="height" constant="100" id="aQR-hf-MhR"/>
402 </constraints> 402 </constraints>
403 </view> 403 </view>
404 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Iw2-nW-e7g" customClass="CollectionView"> 404 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Iw2-nW-e7g" customClass="CollectionView">
405 <rect key="frame" x="20" y="316" width="335" height="50"/> 405 <rect key="frame" x="20" y="316" width="335" height="50"/>
406 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 406 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
407 <constraints> 407 <constraints>
408 <constraint firstAttribute="height" constant="50" id="Yzh-hD-r0n"/> 408 <constraint firstAttribute="height" constant="50" id="Yzh-hD-r0n"/>
409 </constraints> 409 </constraints>
410 </view> 410 </view>
411 </subviews> 411 </subviews>
412 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 412 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
413 <constraints> 413 <constraints>
414 <constraint firstItem="VqD-Y3-cYQ" firstAttribute="top" secondItem="iEh-Ze-suq" secondAttribute="bottom" constant="8" id="0BA-6p-JLT"/> 414 <constraint firstItem="VqD-Y3-cYQ" firstAttribute="top" secondItem="iEh-Ze-suq" secondAttribute="bottom" constant="8" id="0BA-6p-JLT"/>
415 <constraint firstItem="Iw2-nW-e7g" firstAttribute="leading" secondItem="Cam-ML-IEO" secondAttribute="leading" constant="20" id="2lH-sF-Mp0"/> 415 <constraint firstItem="Iw2-nW-e7g" firstAttribute="leading" secondItem="Cam-ML-IEO" secondAttribute="leading" constant="20" id="2lH-sF-Mp0"/>
416 <constraint firstItem="iEh-Ze-suq" firstAttribute="top" secondItem="4ix-HE-d9T" secondAttribute="bottom" constant="8" id="9Sm-IQ-feL"/> 416 <constraint firstItem="iEh-Ze-suq" firstAttribute="top" secondItem="4ix-HE-d9T" secondAttribute="bottom" constant="8" id="9Sm-IQ-feL"/>
417 <constraint firstItem="VqD-Y3-cYQ" firstAttribute="leading" secondItem="Cam-ML-IEO" secondAttribute="leading" id="Gbd-bD-rFf"/> 417 <constraint firstItem="VqD-Y3-cYQ" firstAttribute="leading" secondItem="Cam-ML-IEO" secondAttribute="leading" id="Gbd-bD-rFf"/>
418 <constraint firstItem="4ix-HE-d9T" firstAttribute="top" secondItem="Cam-ML-IEO" secondAttribute="top" constant="30" id="JyQ-KD-MhR"/> 418 <constraint firstItem="4ix-HE-d9T" firstAttribute="top" secondItem="Cam-ML-IEO" secondAttribute="top" constant="30" id="JyQ-KD-MhR"/>
419 <constraint firstAttribute="trailing" secondItem="iEh-Ze-suq" secondAttribute="trailing" constant="20" id="RcZ-yN-56e"/> 419 <constraint firstAttribute="trailing" secondItem="iEh-Ze-suq" secondAttribute="trailing" constant="20" id="RcZ-yN-56e"/>
420 <constraint firstAttribute="trailing" secondItem="Iw2-nW-e7g" secondAttribute="trailing" constant="20" id="Xso-Or-Fgf"/> 420 <constraint firstAttribute="trailing" secondItem="Iw2-nW-e7g" secondAttribute="trailing" constant="20" id="Xso-Or-Fgf"/>
421 <constraint firstItem="Kzk-mN-AOf" firstAttribute="top" secondItem="Cam-ML-IEO" secondAttribute="top" constant="30" id="YzU-Mb-veC"/> 421 <constraint firstItem="Kzk-mN-AOf" firstAttribute="top" secondItem="Cam-ML-IEO" secondAttribute="top" constant="30" id="YzU-Mb-veC"/>
422 <constraint firstAttribute="trailing" secondItem="4ix-HE-d9T" secondAttribute="trailing" constant="8" id="del-xz-Tos"/> 422 <constraint firstAttribute="trailing" secondItem="4ix-HE-d9T" secondAttribute="trailing" constant="8" id="del-xz-Tos"/>
423 <constraint firstItem="4ix-HE-d9T" firstAttribute="height" secondItem="Kzk-mN-AOf" secondAttribute="height" id="duV-wT-9wp"/> 423 <constraint firstItem="4ix-HE-d9T" firstAttribute="height" secondItem="Kzk-mN-AOf" secondAttribute="height" id="duV-wT-9wp"/>
424 <constraint firstItem="Iw2-nW-e7g" firstAttribute="top" secondItem="VqD-Y3-cYQ" secondAttribute="bottom" constant="15" id="ekR-kS-L5v"/> 424 <constraint firstItem="Iw2-nW-e7g" firstAttribute="top" secondItem="VqD-Y3-cYQ" secondAttribute="bottom" constant="15" id="ekR-kS-L5v"/>
425 <constraint firstItem="Kzk-mN-AOf" firstAttribute="leading" secondItem="Cam-ML-IEO" secondAttribute="leading" constant="20" id="hFq-WM-gLq"/> 425 <constraint firstItem="Kzk-mN-AOf" firstAttribute="leading" secondItem="Cam-ML-IEO" secondAttribute="leading" constant="20" id="hFq-WM-gLq"/>
426 <constraint firstItem="4ix-HE-d9T" firstAttribute="leading" secondItem="Kzk-mN-AOf" secondAttribute="trailing" constant="8" id="hzO-hA-cNG"/> 426 <constraint firstItem="4ix-HE-d9T" firstAttribute="leading" secondItem="Kzk-mN-AOf" secondAttribute="trailing" constant="8" id="hzO-hA-cNG"/>
427 <constraint firstAttribute="trailing" secondItem="VqD-Y3-cYQ" secondAttribute="trailing" id="ptF-2O-CNR"/> 427 <constraint firstAttribute="trailing" secondItem="VqD-Y3-cYQ" secondAttribute="trailing" id="ptF-2O-CNR"/>
428 <constraint firstItem="iEh-Ze-suq" firstAttribute="leading" secondItem="Cam-ML-IEO" secondAttribute="leading" constant="20" id="u5o-P4-qkL"/> 428 <constraint firstItem="iEh-Ze-suq" firstAttribute="leading" secondItem="Cam-ML-IEO" secondAttribute="leading" constant="20" id="u5o-P4-qkL"/>
429 </constraints> 429 </constraints>
430 </view> 430 </view>
431 </subviews> 431 </subviews>
432 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 432 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
433 <constraints> 433 <constraints>
434 <constraint firstItem="Cam-ML-IEO" firstAttribute="centerY" secondItem="rey-N3-l8b" secondAttribute="centerY" id="0WD-1q-SWm"/> 434 <constraint firstItem="Cam-ML-IEO" firstAttribute="centerY" secondItem="rey-N3-l8b" secondAttribute="centerY" id="0WD-1q-SWm"/>
435 <constraint firstItem="Cam-ML-IEO" firstAttribute="width" secondItem="rey-N3-l8b" secondAttribute="width" id="LbF-3h-cxa"/> 435 <constraint firstItem="Cam-ML-IEO" firstAttribute="width" secondItem="rey-N3-l8b" secondAttribute="width" id="LbF-3h-cxa"/>
436 <constraint firstAttribute="trailing" secondItem="Cam-ML-IEO" secondAttribute="trailing" id="UHb-6d-wF8"/> 436 <constraint firstAttribute="trailing" secondItem="Cam-ML-IEO" secondAttribute="trailing" id="UHb-6d-wF8"/>
437 <constraint firstItem="Cam-ML-IEO" firstAttribute="leading" secondItem="rey-N3-l8b" secondAttribute="leading" id="Y4U-kD-V28"/> 437 <constraint firstItem="Cam-ML-IEO" firstAttribute="leading" secondItem="rey-N3-l8b" secondAttribute="leading" id="Y4U-kD-V28"/>
438 <constraint firstItem="Cam-ML-IEO" firstAttribute="top" secondItem="rey-N3-l8b" secondAttribute="top" id="ohS-iH-IIM"/> 438 <constraint firstItem="Cam-ML-IEO" firstAttribute="top" secondItem="rey-N3-l8b" secondAttribute="top" id="ohS-iH-IIM"/>
439 <constraint firstAttribute="bottom" secondItem="Cam-ML-IEO" secondAttribute="bottom" id="th8-dH-zv1"/> 439 <constraint firstAttribute="bottom" secondItem="Cam-ML-IEO" secondAttribute="bottom" id="th8-dH-zv1"/>
440 </constraints> 440 </constraints>
441 <connections> 441 <connections>
442 <outlet property="delegate" destination="-1" id="3Fl-Qy-gjm"/> 442 <outlet property="delegate" destination="-1" id="3Fl-Qy-gjm"/>
443 </connections> 443 </connections>
444 </scrollView> 444 </scrollView>
445 </subviews> 445 </subviews>
446 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 446 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
447 <constraints> 447 <constraints>
448 <constraint firstAttribute="trailing" secondItem="FXQ-4O-sRc" secondAttribute="trailing" constant="5" id="5y0-NC-rHp"/> 448 <constraint firstAttribute="trailing" secondItem="FXQ-4O-sRc" secondAttribute="trailing" constant="5" id="5y0-NC-rHp"/>
449 <constraint firstItem="FXQ-4O-sRc" firstAttribute="leading" secondItem="FLa-rV-Aas" secondAttribute="leading" constant="5" id="C0U-21-SKl"/> 449 <constraint firstItem="FXQ-4O-sRc" firstAttribute="leading" secondItem="FLa-rV-Aas" secondAttribute="leading" constant="5" id="C0U-21-SKl"/>
450 <constraint firstItem="FXQ-4O-sRc" firstAttribute="top" secondItem="FLa-rV-Aas" secondAttribute="top" id="CB0-VD-h5m"/> 450 <constraint firstItem="FXQ-4O-sRc" firstAttribute="top" secondItem="FLa-rV-Aas" secondAttribute="top" id="CB0-VD-h5m"/>
451 <constraint firstAttribute="bottom" secondItem="FXQ-4O-sRc" secondAttribute="bottom" id="FbP-FY-h1E"/> 451 <constraint firstAttribute="bottom" secondItem="FXQ-4O-sRc" secondAttribute="bottom" id="FbP-FY-h1E"/>
452 <constraint firstAttribute="trailing" secondItem="rey-N3-l8b" secondAttribute="trailing" id="KFD-f5-xci"/> 452 <constraint firstAttribute="trailing" secondItem="rey-N3-l8b" secondAttribute="trailing" id="KFD-f5-xci"/>
453 <constraint firstItem="rey-N3-l8b" firstAttribute="top" secondItem="FLa-rV-Aas" secondAttribute="top" id="SpB-31-H3a"/> 453 <constraint firstItem="rey-N3-l8b" firstAttribute="top" secondItem="FLa-rV-Aas" secondAttribute="top" id="SpB-31-H3a"/>
454 <constraint firstItem="rey-N3-l8b" firstAttribute="leading" secondItem="FLa-rV-Aas" secondAttribute="leading" id="YvS-I2-8Dg"/> 454 <constraint firstItem="rey-N3-l8b" firstAttribute="leading" secondItem="FLa-rV-Aas" secondAttribute="leading" id="YvS-I2-8Dg"/>
455 <constraint firstAttribute="bottom" secondItem="rey-N3-l8b" secondAttribute="bottom" id="enX-7g-Eib"/> 455 <constraint firstAttribute="bottom" secondItem="rey-N3-l8b" secondAttribute="bottom" id="enX-7g-Eib"/>
456 </constraints> 456 </constraints>
457 <connections> 457 <connections>
458 <outletCollection property="gestureRecognizers" destination="Qjg-St-rCc" appends="YES" id="egt-sX-aBC"/> 458 <outletCollection property="gestureRecognizers" destination="Qjg-St-rCc" appends="YES" id="egt-sX-aBC"/>
459 <outletCollection property="gestureRecognizers" destination="VSZ-i0-Jhb" appends="YES" id="UKr-c3-9pp"/> 459 <outletCollection property="gestureRecognizers" destination="VSZ-i0-Jhb" appends="YES" id="UKr-c3-9pp"/>
460 </connections> 460 </connections>
461 </view> 461 </view>
462 </subviews> 462 </subviews>
463 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/> 463 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
464 <gestureRecognizers/> 464 <gestureRecognizers/>
465 <constraints> 465 <constraints>
466 <constraint firstAttribute="trailing" secondItem="Cf1-lP-zbB" secondAttribute="trailing" constant="10" id="20C-UL-MCu"/> 466 <constraint firstAttribute="trailing" secondItem="Cf1-lP-zbB" secondAttribute="trailing" constant="10" id="20C-UL-MCu"/>
467 <constraint firstItem="clL-JG-rbd" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="3tf-ab-v41"/> 467 <constraint firstItem="clL-JG-rbd" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="3tf-ab-v41"/>
468 <constraint firstItem="Cf1-lP-zbB" firstAttribute="top" secondItem="clL-JG-rbd" secondAttribute="bottom" id="5vy-x5-G38"/> 468 <constraint firstItem="Cf1-lP-zbB" firstAttribute="top" secondItem="clL-JG-rbd" secondAttribute="bottom" id="5vy-x5-G38"/>
469 <constraint firstItem="Cf1-lP-zbB" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="10" id="974-wJ-aRb"/> 469 <constraint firstItem="Cf1-lP-zbB" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="10" id="974-wJ-aRb"/>
470 <constraint firstItem="yxY-4d-tB6" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="2" id="Jqg-nE-6dv"/> 470 <constraint firstItem="yxY-4d-tB6" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="2" id="Jqg-nE-6dv"/>
471 <constraint firstAttribute="trailing" secondItem="BVv-qD-EHM" secondAttribute="trailing" id="MCi-Tl-hSp"/> 471 <constraint firstAttribute="trailing" secondItem="BVv-qD-EHM" secondAttribute="trailing" id="MCi-Tl-hSp"/>
472 <constraint firstAttribute="trailing" secondItem="yxY-4d-tB6" secondAttribute="trailing" constant="2" id="Qs5-ky-nmB"/> 472 <constraint firstAttribute="trailing" secondItem="yxY-4d-tB6" secondAttribute="trailing" constant="2" id="Qs5-ky-nmB"/>
473 <constraint firstAttribute="bottom" secondItem="BVv-qD-EHM" secondAttribute="bottom" constant="50" id="SbT-PG-8MJ"/> 473 <constraint firstAttribute="bottom" secondItem="BVv-qD-EHM" secondAttribute="bottom" constant="50" id="SbT-PG-8MJ"/>
474 <constraint firstItem="BVv-qD-EHM" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="SqH-AA-Z2K"/> 474 <constraint firstItem="BVv-qD-EHM" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="SqH-AA-Z2K"/>
475 <constraint firstItem="FLa-rV-Aas" firstAttribute="top" secondItem="yxY-4d-tB6" secondAttribute="bottom" constant="15" id="cWw-RX-1Kp"/> 475 <constraint firstItem="FLa-rV-Aas" firstAttribute="top" secondItem="yxY-4d-tB6" secondAttribute="bottom" constant="15" id="cWw-RX-1Kp"/>
476 <constraint firstItem="yxY-4d-tB6" firstAttribute="top" secondItem="Cf1-lP-zbB" secondAttribute="bottom" constant="15" id="dSN-ey-gQ7"/> 476 <constraint firstItem="yxY-4d-tB6" firstAttribute="top" secondItem="Cf1-lP-zbB" secondAttribute="bottom" constant="15" id="dSN-ey-gQ7"/>
477 <constraint firstItem="clL-JG-rbd" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="i5Z-XR-Msb"/> 477 <constraint firstItem="clL-JG-rbd" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="i5Z-XR-Msb"/>
478 <constraint firstItem="FLa-rV-Aas" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="iiN-Zj-1uu"/> 478 <constraint firstItem="FLa-rV-Aas" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="iiN-Zj-1uu"/>
479 <constraint firstAttribute="trailing" secondItem="FLa-rV-Aas" secondAttribute="trailing" id="jme-cz-cFt"/> 479 <constraint firstAttribute="trailing" secondItem="FLa-rV-Aas" secondAttribute="trailing" id="jme-cz-cFt"/>
480 <constraint firstItem="BVv-qD-EHM" firstAttribute="top" secondItem="FLa-rV-Aas" secondAttribute="bottom" constant="5" id="qbT-yT-phN"/> 480 <constraint firstItem="BVv-qD-EHM" firstAttribute="top" secondItem="FLa-rV-Aas" secondAttribute="bottom" constant="5" id="qbT-yT-phN"/>
481 <constraint firstAttribute="trailing" secondItem="clL-JG-rbd" secondAttribute="trailing" id="ri5-LG-xJH"/> 481 <constraint firstAttribute="trailing" secondItem="clL-JG-rbd" secondAttribute="trailing" id="ri5-LG-xJH"/>
482 </constraints> 482 </constraints>
483 <point key="canvasLocation" x="26.5" y="52.5"/> 483 <point key="canvasLocation" x="26.5" y="52.5"/>
484 </view> 484 </view>
485 <swipeGestureRecognizer cancelsTouchesInView="NO" direction="left" id="Qjg-St-rCc"> 485 <swipeGestureRecognizer cancelsTouchesInView="NO" direction="left" id="Qjg-St-rCc">
486 <connections> 486 <connections>
487 <action selector="swipeAction:" destination="-1" id="2Vl-bM-Ta7"/> 487 <action selector="swipeAction:" destination="-1" id="2Vl-bM-Ta7"/>
488 </connections> 488 </connections>
489 </swipeGestureRecognizer> 489 </swipeGestureRecognizer>
490 <swipeGestureRecognizer cancelsTouchesInView="NO" direction="right" id="VSZ-i0-Jhb"> 490 <swipeGestureRecognizer cancelsTouchesInView="NO" direction="right" id="VSZ-i0-Jhb">
491 <connections> 491 <connections>
492 <action selector="swipeAction:" destination="-1" id="hoY-6M-DoS"/> 492 <action selector="swipeAction:" destination="-1" id="hoY-6M-DoS"/>
493 </connections> 493 </connections>
494 </swipeGestureRecognizer> 494 </swipeGestureRecognizer>
495 </objects> 495 </objects>
496 <resources> 496 <resources>
497 <image name="arrow_back" width="22" height="22"/> 497 <image name="arrow_back" width="22" height="22"/>
498 <image name="arrow_next" width="22" height="22"/> 498 <image name="arrow_next" width="22" height="22"/>
499 <image name="icon_menu" width="30" height="30"/> 499 <image name="icon_menu" width="30" height="30"/>
500 <image name="today_back_button" width="73" height="37"/> 500 <image name="today_back_button" width="73" height="37"/>
501 </resources> 501 </resources>
502 </document> 502 </document>
503 503
LifeLog/LifeLog/MemberObject.h
File was created 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
26
LifeLog/LifeLog/MemberObject.m
File was created 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
48
LifeLog/LifeLog/RankingViewController.xib
1 <?xml version="1.0" encoding="UTF-8"?> 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="12121" systemVersion="16A323" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
3 <device id="retina4_7" orientation="portrait"> 3 <device id="retina4_7" orientation="portrait">
4 <adaptation id="fullscreen"/> 4 <adaptation id="fullscreen"/>
5 </device> 5 </device>
6 <dependencies> 6 <dependencies>
7 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/> 7 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
8 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> 8 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
9 </dependencies> 9 </dependencies>
10 <objects> 10 <objects>
11 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="RankingViewController"> 11 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="RankingViewController">
12 <connections> 12 <connections>
13 <outlet property="tableRank" destination="R3A-K9-MFe" id="uEX-sL-6D2"/> 13 <outlet property="tableRank" destination="R3A-K9-MFe" id="uEX-sL-6D2"/>
14 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> 14 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
15 <outlet property="viewCollectionMode" destination="B33-xX-Jro" id="HP4-Xb-LJm"/> 15 <outlet property="viewCollectionMode" destination="B33-xX-Jro" id="HP4-Xb-LJm"/>
16 <outlet property="viewCollectionTime" destination="syA-uK-pbr" id="WdA-Cq-Flj"/> 16 <outlet property="viewCollectionTime" destination="syA-uK-pbr" id="WdA-Cq-Flj"/>
17 <outlet property="viewCollectionType" destination="oUo-Eo-tz5" id="bjw-El-34G"/> 17 <outlet property="viewCollectionType" destination="oUo-Eo-tz5" id="bjw-El-34G"/>
18 </connections> 18 </connections>
19 </placeholder> 19 </placeholder>
20 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> 20 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
21 <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT"> 21 <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
22 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> 22 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
23 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> 23 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
24 <subviews> 24 <subviews>
25 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="GBx-lY-9YI" userLabel="ViewHeader"> 25 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="GBx-lY-9YI" userLabel="ViewHeader">
26 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/> 26 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/>
27 <subviews> 27 <subviews>
28 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="ランキング" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="p97-40-8m9" customClass="AutoTransLabel"> 28 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="ランキング" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="p97-40-8m9" customClass="AutoTransLabel">
29 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/> 29 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/>
30 <fontDescription key="fontDescription" type="system" pointSize="17"/> 30 <fontDescription key="fontDescription" type="system" pointSize="17"/>
31 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 31 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
32 <nil key="highlightedColor"/> 32 <nil key="highlightedColor"/>
33 <userDefinedRuntimeAttributes> 33 <userDefinedRuntimeAttributes>
34 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.rank.title"/> 34 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.rank.title"/>
35 </userDefinedRuntimeAttributes> 35 </userDefinedRuntimeAttributes>
36 </label> 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 <rect key="frame" x="0.0" y="5" width="70" height="36"/> 38 <rect key="frame" x="0.0" y="5" width="70" height="36"/>
39 <constraints> 39 <constraints>
40 <constraint firstAttribute="width" constant="70" id="bEy-jt-69Q"/> 40 <constraint firstAttribute="width" constant="70" id="bEy-jt-69Q"/>
41 </constraints> 41 </constraints>
42 <state key="normal" image="today_back_button"/> 42 <state key="normal" image="today_back_button"/>
43 </button> 43 </button>
44 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="WGc-2i-Swk"> 44 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="WGc-2i-Swk">
45 <rect key="frame" x="330" y="0.0" width="45" height="46"/> 45 <rect key="frame" x="330" y="0.0" width="45" height="46"/>
46 <constraints> 46 <constraints>
47 <constraint firstAttribute="width" constant="45" id="nJ2-jH-Z45"/> 47 <constraint firstAttribute="width" constant="45" id="nJ2-jH-Z45"/>
48 </constraints> 48 </constraints>
49 <state key="normal" image="icon_menu"/> 49 <state key="normal" image="icon_menu"/>
50 </button> 50 </button>
51 </subviews> 51 </subviews>
52 <color key="backgroundColor" red="0.098039215690000001" green="0.098039215690000001" blue="0.098039215690000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 52 <color key="backgroundColor" red="0.098039215690000001" green="0.098039215690000001" blue="0.098039215690000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
53 <constraints> 53 <constraints>
54 <constraint firstAttribute="bottom" secondItem="WGc-2i-Swk" secondAttribute="bottom" id="0hd-fk-kJG"/> 54 <constraint firstAttribute="bottom" secondItem="WGc-2i-Swk" secondAttribute="bottom" id="0hd-fk-kJG"/>
55 <constraint firstAttribute="bottom" secondItem="p97-40-8m9" secondAttribute="bottom" id="78G-b2-wAu"/> 55 <constraint firstAttribute="bottom" secondItem="p97-40-8m9" secondAttribute="bottom" id="78G-b2-wAu"/>
56 <constraint firstItem="qPe-ff-jRp" firstAttribute="leading" secondItem="GBx-lY-9YI" secondAttribute="leading" id="9ND-Te-qX9"/> 56 <constraint firstItem="qPe-ff-jRp" firstAttribute="leading" secondItem="GBx-lY-9YI" secondAttribute="leading" id="9ND-Te-qX9"/>
57 <constraint firstItem="qPe-ff-jRp" firstAttribute="top" secondItem="GBx-lY-9YI" secondAttribute="top" constant="5" id="9ZX-A3-Bnp"/> 57 <constraint firstItem="qPe-ff-jRp" firstAttribute="top" secondItem="GBx-lY-9YI" secondAttribute="top" constant="5" id="9ZX-A3-Bnp"/>
58 <constraint firstItem="p97-40-8m9" firstAttribute="top" secondItem="GBx-lY-9YI" secondAttribute="top" id="CVN-ke-5KK"/> 58 <constraint firstItem="p97-40-8m9" firstAttribute="top" secondItem="GBx-lY-9YI" secondAttribute="top" id="CVN-ke-5KK"/>
59 <constraint firstAttribute="height" constant="46" id="SDI-ij-KbH"/> 59 <constraint firstAttribute="height" constant="46" id="SDI-ij-KbH"/>
60 <constraint firstItem="p97-40-8m9" firstAttribute="leading" secondItem="GBx-lY-9YI" secondAttribute="leading" id="U19-fM-q7G"/> 60 <constraint firstItem="p97-40-8m9" firstAttribute="leading" secondItem="GBx-lY-9YI" secondAttribute="leading" id="U19-fM-q7G"/>
61 <constraint firstAttribute="bottom" secondItem="qPe-ff-jRp" secondAttribute="bottom" constant="5" id="jU7-xM-YKX"/> 61 <constraint firstAttribute="bottom" secondItem="qPe-ff-jRp" secondAttribute="bottom" constant="5" id="jU7-xM-YKX"/>
62 <constraint firstItem="WGc-2i-Swk" firstAttribute="top" secondItem="GBx-lY-9YI" secondAttribute="top" id="knL-Yf-VTN"/> 62 <constraint firstItem="WGc-2i-Swk" firstAttribute="top" secondItem="GBx-lY-9YI" secondAttribute="top" id="knL-Yf-VTN"/>
63 <constraint firstAttribute="trailing" secondItem="p97-40-8m9" secondAttribute="trailing" id="sLL-ca-92S"/> 63 <constraint firstAttribute="trailing" secondItem="p97-40-8m9" secondAttribute="trailing" id="sLL-ca-92S"/>
64 <constraint firstAttribute="trailing" secondItem="WGc-2i-Swk" secondAttribute="trailing" id="v0h-pb-83W"/> 64 <constraint firstAttribute="trailing" secondItem="WGc-2i-Swk" secondAttribute="trailing" id="v0h-pb-83W"/>
65 </constraints> 65 </constraints>
66 </view> 66 </view>
67 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="syA-uK-pbr" customClass="CollectionView"> 67 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="syA-uK-pbr" customClass="CollectionView">
68 <rect key="frame" x="0.0" y="46" width="375" height="30"/> 68 <rect key="frame" x="0.0" y="46" width="375" height="30"/>
69 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 69 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
70 <constraints> 70 <constraints>
71 <constraint firstAttribute="height" constant="30" id="ezW-Qs-M7K"/> 71 <constraint firstAttribute="height" constant="30" id="ezW-Qs-M7K"/>
72 </constraints> 72 </constraints>
73 </view> 73 </view>
74 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="B33-xX-Jro" customClass="CollectionView"> 74 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="B33-xX-Jro" customClass="CollectionView">
75 <rect key="frame" x="0.0" y="116" width="375" height="30"/> 75 <rect key="frame" x="0.0" y="116" width="375" height="30"/>
76 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 76 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
77 <constraints> 77 <constraints>
78 <constraint firstAttribute="height" constant="30" id="snn-FM-11r"/> 78 <constraint firstAttribute="height" constant="30" id="snn-FM-11r"/>
79 </constraints> 79 </constraints>
80 </view> 80 </view>
81 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="u5D-xz-8dK"> 81 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="u5D-xz-8dK">
82 <rect key="frame" x="0.0" y="76" width="375" height="40"/> 82 <rect key="frame" x="0.0" y="76" width="375" height="40"/>
83 <subviews> 83 <subviews>
84 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5Ro-k6-fvT"> 84 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5Ro-k6-fvT">
85 <rect key="frame" x="0.0" y="0.0" width="375" height="40"/> 85 <rect key="frame" x="0.0" y="0.0" width="375" height="40"/>
86 <string key="text" base64-UTF8="YES"> 86 <string key="text" base64-UTF8="YES">
87 MjAxNuW5tCAx5pyIMjLml6XjgIDvvI3jgIAyMDE35bm0IDHmnIgyMeaXpQ0KAA 87 MjAxNuW5tCAx5pyIMjLml6XjgIDvvI3jgIAyMDE35bm0IDHmnIgyMeaXpQ0KAA
88 </string> 88 </string>
89 <fontDescription key="fontDescription" type="system" pointSize="13"/> 89 <fontDescription key="fontDescription" type="system" pointSize="13"/>
90 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 90 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
91 <nil key="highlightedColor"/> 91 <nil key="highlightedColor"/>
92 </label> 92 </label>
93 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="eiH-Sk-3VV"> 93 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="eiH-Sk-3VV">
94 <rect key="frame" x="15" y="5" width="30" height="30"/> 94 <rect key="frame" x="15" y="5" width="30" height="30"/>
95 <constraints> 95 <constraints>
96 <constraint firstAttribute="height" constant="30" id="kEd-sQ-0ub"/> 96 <constraint firstAttribute="height" constant="30" id="kEd-sQ-0ub"/>
97 <constraint firstAttribute="width" constant="30" id="sFT-sr-7pL"/> 97 <constraint firstAttribute="width" constant="30" id="sFT-sr-7pL"/>
98 </constraints> 98 </constraints>
99 <state key="normal" image="icon_left"/> 99 <state key="normal" image="icon_left"/>
100 <connections> 100 <connections>
101 <action selector="clickButton:" destination="-1" eventType="touchUpInside" id="f1Y-rj-F7d"/> 101 <action selector="clickButton:" destination="-1" eventType="touchUpInside" id="f1Y-rj-F7d"/>
102 </connections> 102 </connections>
103 </button> 103 </button>
104 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Usl-Cl-d9d"> 104 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Usl-Cl-d9d">
105 <rect key="frame" x="330" y="5" width="30" height="30"/> 105 <rect key="frame" x="330" y="5" width="30" height="30"/>
106 <constraints> 106 <constraints>
107 <constraint firstAttribute="width" constant="30" id="uFf-AY-LsL"/> 107 <constraint firstAttribute="width" constant="30" id="uFf-AY-LsL"/>
108 <constraint firstAttribute="height" constant="30" id="v8w-hV-CY1"/> 108 <constraint firstAttribute="height" constant="30" id="v8w-hV-CY1"/>
109 </constraints> 109 </constraints>
110 <state key="normal" image="icon_right"/> 110 <state key="normal" image="icon_right"/>
111 <connections> 111 <connections>
112 <action selector="clickButton:" destination="-1" eventType="touchUpInside" id="OB1-mE-CGE"/> 112 <action selector="clickButton:" destination="-1" eventType="touchUpInside" id="OB1-mE-CGE"/>
113 </connections> 113 </connections>
114 </button> 114 </button>
115 </subviews> 115 </subviews>
116 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 116 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
117 <constraints> 117 <constraints>
118 <constraint firstAttribute="height" constant="40" id="C5o-Zd-KjG"/> 118 <constraint firstAttribute="height" constant="40" id="C5o-Zd-KjG"/>
119 <constraint firstAttribute="bottom" secondItem="5Ro-k6-fvT" secondAttribute="bottom" id="DQQ-wh-s1Q"/> 119 <constraint firstAttribute="bottom" secondItem="5Ro-k6-fvT" secondAttribute="bottom" id="DQQ-wh-s1Q"/>
120 <constraint firstAttribute="trailing" secondItem="5Ro-k6-fvT" secondAttribute="trailing" id="E0c-bJ-AIi"/> 120 <constraint firstAttribute="trailing" secondItem="5Ro-k6-fvT" secondAttribute="trailing" id="E0c-bJ-AIi"/>
121 <constraint firstItem="5Ro-k6-fvT" firstAttribute="top" secondItem="u5D-xz-8dK" secondAttribute="top" id="Mrk-FC-rqh"/> 121 <constraint firstItem="5Ro-k6-fvT" firstAttribute="top" secondItem="u5D-xz-8dK" secondAttribute="top" id="Mrk-FC-rqh"/>
122 <constraint firstItem="eiH-Sk-3VV" firstAttribute="centerY" secondItem="u5D-xz-8dK" secondAttribute="centerY" id="k2J-Lc-ZDI"/> 122 <constraint firstItem="eiH-Sk-3VV" firstAttribute="centerY" secondItem="u5D-xz-8dK" secondAttribute="centerY" id="k2J-Lc-ZDI"/>
123 <constraint firstItem="5Ro-k6-fvT" firstAttribute="leading" secondItem="u5D-xz-8dK" secondAttribute="leading" id="rj5-0J-xs3"/> 123 <constraint firstItem="5Ro-k6-fvT" firstAttribute="leading" secondItem="u5D-xz-8dK" secondAttribute="leading" id="rj5-0J-xs3"/>
124 <constraint firstItem="Usl-Cl-d9d" firstAttribute="centerY" secondItem="u5D-xz-8dK" secondAttribute="centerY" id="sJX-n3-1pz"/> 124 <constraint firstItem="Usl-Cl-d9d" firstAttribute="centerY" secondItem="u5D-xz-8dK" secondAttribute="centerY" id="sJX-n3-1pz"/>
125 <constraint firstItem="eiH-Sk-3VV" firstAttribute="leading" secondItem="u5D-xz-8dK" secondAttribute="leading" constant="15" id="to7-WU-7xo"/> 125 <constraint firstItem="eiH-Sk-3VV" firstAttribute="leading" secondItem="u5D-xz-8dK" secondAttribute="leading" constant="15" id="to7-WU-7xo"/>
126 <constraint firstAttribute="trailing" secondItem="Usl-Cl-d9d" secondAttribute="trailing" constant="15" id="yDF-9k-XlW"/> 126 <constraint firstAttribute="trailing" secondItem="Usl-Cl-d9d" secondAttribute="trailing" constant="15" id="yDF-9k-XlW"/>
127 </constraints> 127 </constraints>
128 </view> 128 </view>
129 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="oUo-Eo-tz5" customClass="CollectionView"> 129 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="oUo-Eo-tz5" customClass="CollectionView">
130 <rect key="frame" x="0.0" y="577" width="375" height="40"/> 130 <rect key="frame" x="0.0" y="577" width="375" height="40"/>
131 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 131 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
132 <constraints> 132 <constraints>
133 <constraint firstAttribute="height" constant="40" id="Trr-Ku-Ssy"/> 133 <constraint firstAttribute="height" constant="40" id="Trr-Ku-Ssy"/>
134 </constraints> 134 </constraints>
135 </view> 135 </view>
136 <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" rowHeight="80" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="R3A-K9-MFe"> 136 <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" rowHeight="80" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="R3A-K9-MFe">
137 <rect key="frame" x="0.0" y="147" width="375" height="429"/> 137 <rect key="frame" x="0.0" y="147" width="375" height="429"/>
138 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 138 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
139 <color key="separatorColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 139 <color key="separatorColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
140 <connections> 140 <connections>
141 <outlet property="dataSource" destination="-1" id="JJX-cg-LPL"/> 141 <outlet property="dataSource" destination="-1" id="JJX-cg-LPL"/>
142 <outlet property="delegate" destination="-1" id="u0m-93-lsi"/> 142 <outlet property="delegate" destination="-1" id="u0m-93-lsi"/>
143 </connections> 143 </connections>
144 </tableView> 144 </tableView>
145 </subviews> 145 </subviews>
146 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/> 146 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
147 <constraints> 147 <constraints>
148 <constraint firstItem="B33-xX-Jro" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="2Mu-hy-FVU"/> 148 <constraint firstItem="B33-xX-Jro" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="2Mu-hy-FVU"/>
149 <constraint firstItem="GBx-lY-9YI" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="5CL-wT-MBg"/> 149 <constraint firstItem="GBx-lY-9YI" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="5CL-wT-MBg"/>
150 <constraint firstItem="u5D-xz-8dK" firstAttribute="top" secondItem="syA-uK-pbr" secondAttribute="bottom" id="5uu-dZ-oXI"/> 150 <constraint firstItem="u5D-xz-8dK" firstAttribute="top" secondItem="syA-uK-pbr" secondAttribute="bottom" id="5uu-dZ-oXI"/>
151 <constraint firstItem="syA-uK-pbr" firstAttribute="top" secondItem="GBx-lY-9YI" secondAttribute="bottom" id="6FQ-vy-d4N"/> 151 <constraint firstItem="syA-uK-pbr" firstAttribute="top" secondItem="GBx-lY-9YI" secondAttribute="bottom" id="6FQ-vy-d4N"/>
152 <constraint firstItem="u5D-xz-8dK" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="75z-RN-ObF"/> 152 <constraint firstItem="u5D-xz-8dK" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="75z-RN-ObF"/>
153 <constraint firstItem="R3A-K9-MFe" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="LyL-9p-qcd"/> 153 <constraint firstItem="R3A-K9-MFe" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="LyL-9p-qcd"/>
154 <constraint firstItem="oUo-Eo-tz5" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="M7I-ue-lip"/> 154 <constraint firstItem="oUo-Eo-tz5" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="M7I-ue-lip"/>
155 <constraint firstAttribute="trailing" secondItem="B33-xX-Jro" secondAttribute="trailing" id="Pjd-Ay-GaV"/> 155 <constraint firstAttribute="trailing" secondItem="B33-xX-Jro" secondAttribute="trailing" id="Pjd-Ay-GaV"/>
156 <constraint firstItem="oUo-Eo-tz5" firstAttribute="top" secondItem="R3A-K9-MFe" secondAttribute="bottom" constant="1" id="QMu-aq-2Zt"/> 156 <constraint firstItem="oUo-Eo-tz5" firstAttribute="top" secondItem="R3A-K9-MFe" secondAttribute="bottom" constant="1" id="QMu-aq-2Zt"/>
157 <constraint firstAttribute="trailing" secondItem="syA-uK-pbr" secondAttribute="trailing" id="Qnl-Pp-y2G"/> 157 <constraint firstAttribute="trailing" secondItem="syA-uK-pbr" secondAttribute="trailing" id="Qnl-Pp-y2G"/>
158 <constraint firstItem="B33-xX-Jro" firstAttribute="top" secondItem="u5D-xz-8dK" secondAttribute="bottom" id="VOl-jo-wU3"/> 158 <constraint firstItem="B33-xX-Jro" firstAttribute="top" secondItem="u5D-xz-8dK" secondAttribute="bottom" id="VOl-jo-wU3"/>
159 <constraint firstItem="GBx-lY-9YI" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="YjB-ef-xTt"/> 159 <constraint firstItem="GBx-lY-9YI" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="YjB-ef-xTt"/>
160 <constraint firstItem="syA-uK-pbr" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="aTf-mb-wlT"/> 160 <constraint firstItem="syA-uK-pbr" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="aTf-mb-wlT"/>
161 <constraint firstAttribute="bottom" secondItem="oUo-Eo-tz5" secondAttribute="bottom" constant="50" id="cux-Vm-qq7"/> 161 <constraint firstAttribute="bottom" secondItem="oUo-Eo-tz5" secondAttribute="bottom" constant="50" id="cux-Vm-qq7"/>
162 <constraint firstAttribute="trailing" secondItem="R3A-K9-MFe" secondAttribute="trailing" id="jBn-JI-SQP"/> 162 <constraint firstAttribute="trailing" secondItem="R3A-K9-MFe" secondAttribute="trailing" id="jBn-JI-SQP"/>
163 <constraint firstItem="R3A-K9-MFe" firstAttribute="top" secondItem="B33-xX-Jro" secondAttribute="bottom" constant="1" id="jTi-59-XsZ"/> 163 <constraint firstItem="R3A-K9-MFe" firstAttribute="top" secondItem="B33-xX-Jro" secondAttribute="bottom" constant="1" id="jTi-59-XsZ"/>
164 <constraint firstAttribute="trailing" secondItem="u5D-xz-8dK" secondAttribute="trailing" id="mDB-o3-gtA"/> 164 <constraint firstAttribute="trailing" secondItem="u5D-xz-8dK" secondAttribute="trailing" id="mDB-o3-gtA"/>
165 <constraint firstAttribute="trailing" secondItem="GBx-lY-9YI" secondAttribute="trailing" id="yaf-8r-ySL"/> 165 <constraint firstAttribute="trailing" secondItem="GBx-lY-9YI" secondAttribute="trailing" id="yaf-8r-ySL"/>
166 <constraint firstAttribute="trailing" secondItem="oUo-Eo-tz5" secondAttribute="trailing" id="zkl-by-qMp"/> 166 <constraint firstAttribute="trailing" secondItem="oUo-Eo-tz5" secondAttribute="trailing" id="zkl-by-qMp"/>
167 </constraints> 167 </constraints>
168 <point key="canvasLocation" x="26.5" y="52.5"/> 168 <point key="canvasLocation" x="26.5" y="52.5"/>
169 </view> 169 </view>
170 </objects> 170 </objects>
171 <resources> 171 <resources>
172 <image name="icon_left" width="30" height="30"/> 172 <image name="icon_left" width="30" height="30"/>
173 <image name="icon_menu" width="30" height="30"/> 173 <image name="icon_menu" width="30" height="30"/>
174 <image name="icon_right" width="30" height="30"/> 174 <image name="icon_right" width="30" height="30"/>
175 <image name="today_back_button" width="73" height="37"/> 175 <image name="today_back_button" width="73" height="37"/>
176 </resources> 176 </resources>
177 </document> 177 </document>
178 178
LifeLog/LifeLog/SNSViewController.m
1 // 1 //
2 // SNSViewController.m 2 // SNSViewController.m
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by Nguyen Van Phong on 7/25/17. 5 // Created by Nguyen Van Phong on 7/25/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import "SNSViewController.h" 9 #import "SNSViewController.h"
10 10
11 #import <SDWebImage/UIImageView+WebCache.h> 11 #import <SDWebImage/UIImageView+WebCache.h>
12 12
13 #import "ServerAPI.h" 13 #import "ServerAPI.h"
14 #import "Utilities.h" 14 #import "Utilities.h"
15 15
16 #import "SNSRecentTopicTableViewCell.h" 16 #import "SNSRecentTopicTableViewCell.h"
17 #import "SearchGroupViewController.h" 17 #import "SearchGroupViewController.h"
18 #import "GroupDetailViewController.h" 18 #import "GroupDetailViewController.h"
19 19
20 @interface SNSViewController () 20 @interface SNSViewController ()
21 21
22 @end 22 @end
23 23
24 @implementation SNSViewController 24 @implementation SNSViewController
25 25
26 - (void)viewDidLoad { 26 - (void)viewDidLoad {
27 [super viewDidLoad]; 27 [super viewDidLoad];
28 // Do any additional setup after loading the view from its nib. 28 // Do any additional setup after loading the view from its nib.
29 self.title = NSLocalizedString(@"lifelog.tapbar.sns", nil); 29 self.title = NSLocalizedString(@"lifelog.tapbar.sns", nil);
30 30
31 [self callRequestToUpdateData]; 31 [self callRequestToUpdateData];
32 32
33 //register nib for table view 33 //register nib for table view
34 [self.tableBase registerNib:[UINib nibWithNibName:@"SNSRecentTopicTableViewCell" bundle:nil] forCellReuseIdentifier:@"RecentTopicCell"]; 34 [self.tableBase registerNib:[UINib nibWithNibName:@"SNSRecentTopicTableViewCell" bundle:nil] forCellReuseIdentifier:@"RecentTopicCell"];
35 } 35 }
36 36
37 - (void)didReceiveMemoryWarning { 37 - (void)didReceiveMemoryWarning {
38 [super didReceiveMemoryWarning]; 38 [super didReceiveMemoryWarning];
39 // Dispose of any resources that can be recreated. 39 // Dispose of any resources that can be recreated.
40 } 40 }
41 41
42 #pragma mark IBAction 42 #pragma mark IBAction
43 - (IBAction)clickRecommendGroup:(id)sender { 43 - (IBAction)clickRecommendGroup:(id)sender {
44 SearchGroupViewController * search = [[SearchGroupViewController alloc] init]; 44 SearchGroupViewController * search = [[SearchGroupViewController alloc] init];
45 [self.navigationController pushViewController:search animated:true]; 45 [self.navigationController pushViewController:search animated:true];
46 } 46 }
47 47
48 - (IBAction)clickMyGroup:(id)sender { 48 - (IBAction)clickMyGroup:(id)sender {
49 // GroupDetailViewController * detail = [[GroupDetailViewController alloc] init]; 49 // GroupDetailViewController * detail = [[GroupDetailViewController alloc] init];
50 // [self.navigationController pushViewController:detail animated:true]; 50 // [self.navigationController pushViewController:detail animated:true];
51 } 51 }
52 52
53 #pragma mark UITableView Delegate 53 #pragma mark UITableView Delegate
54 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 54 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
55 SNSRecentTopicTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"RecentTopicCell"]; 55 SNSRecentTopicTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"RecentTopicCell"];
56 TweetObject *object = [_curDataList objectAtIndex:indexPath.row]; 56 TweetObject *object = [_curDataList objectAtIndex:indexPath.row];
57 if(object.avatarLink && ![object.avatarLink isKindOfClass:[NSNull class]]) { 57 if(object.avatar && ![object.avatar isKindOfClass:[NSNull class]]) {
58 [cell.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatarLink]]]; 58 [cell.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatar]]];
59 } 59 }
60 cell.lblDateTime.text = [Utilities stringFromDate:object.createDate withFormat:@"YYYY/MM/dd hh:mm"]; 60 cell.lblDateTime.text = [Utilities stringFromDate:object.createDate withFormat:@"YYYY/MM/dd hh:mm"];
61 cell.lblUsername.text = object.userName; 61 cell.lblUsername.text = object.userName;
62 cell.lblDes.text = object.content; 62 cell.lblDes.text = object.content;
63 cell.lblMode.text = object.mode; 63 cell.lblMode.text = object.mode;
64 cell.lblDistance.text = [NSString stringWithFormat:@"%.0f m", object.distance]; 64 cell.lblDistance.text = [NSString stringWithFormat:@"%.0f m", object.distance];
65 cell.lblDuration.text = object.time; 65 cell.lblDuration.text = object.time;
66 return cell; 66 return cell;
67 } 67 }
68 68
69 #pragma mark Private Function 69 #pragma mark Private Function
70 70
71 -(void) callRequestToUpdateData { 71 -(void) callRequestToUpdateData {
72 [super callRequestToUpdateData]; 72 [super callRequestToUpdateData];
73 73
74 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken]; 74 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken];
75 MBProgressHUD *hudView = nil; 75 MBProgressHUD *hudView = nil;
76 if(_curPage == 1 && !self.refreshControl.isRefreshing) { 76 if(_curPage == 1 && !self.refreshControl.isRefreshing) {
77 hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true]; 77 hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true];
78 } 78 }
79 [[ServerAPI server] requestTweetsList:token groupID:-1 withPage:_curPage CompletionHandler:^(NSArray *array, NSError *error){ 79 [[ServerAPI server] requestTweetsList:token groupID:-1 withPage:_curPage CompletionHandler:^(NSArray *array, NSError *error){
80 dispatch_async(dispatch_get_main_queue(), ^{ 80 dispatch_async(dispatch_get_main_queue(), ^{
81 if(hudView != nil) { 81 if(hudView != nil) {
82 [hudView hideAnimated:true]; 82 [hudView hideAnimated:true];
83 } 83 }
84 }); 84 });
85 SNSViewController __weak *weakSelf = self; 85 SNSViewController __weak *weakSelf = self;
86 [weakSelf updateTableData:array error:error]; 86 [weakSelf updateTableData:array error:error];
87 }]; 87 }];
88 } 88 }
89 89
90 @end 90 @end
91 91
LifeLog/LifeLog/SNSViewController.xib
1 <?xml version="1.0" encoding="UTF-8"?> 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 <device id="retina4_7" orientation="portrait"> 3 <device id="retina4_7" orientation="portrait">
4 <adaptation id="fullscreen"/> 4 <adaptation id="fullscreen"/>
5 </device> 5 </device>
6 <dependencies> 6 <dependencies>
7 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12086"/> 7 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
8 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> 8 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
9 </dependencies> 9 </dependencies>
10 <objects> 10 <objects>
11 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="SNSViewController"> 11 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="SNSViewController">
12 <connections> 12 <connections>
13 <outlet property="tableBase" destination="KcG-O5-UhK" id="gDL-iU-n52"/> 13 <outlet property="tableBase" destination="KcG-O5-UhK" id="gDL-iU-n52"/>
14 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> 14 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
15 </connections> 15 </connections>
16 </placeholder> 16 </placeholder>
17 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> 17 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
18 <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT"> 18 <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
19 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> 19 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
20 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> 20 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
21 <subviews> 21 <subviews>
22 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="O4Q-H0-WBO" userLabel="ViewHeader"> 22 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="O4Q-H0-WBO" userLabel="ViewHeader">
23 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/> 23 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/>
24 <subviews> 24 <subviews>
25 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="SNS" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="afS-51-Q5Z" customClass="AutoTransLabel"> 25 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="SNS" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="afS-51-Q5Z" customClass="AutoTransLabel">
26 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/> 26 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/>
27 <fontDescription key="fontDescription" type="system" pointSize="17"/> 27 <fontDescription key="fontDescription" type="system" pointSize="17"/>
28 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 28 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
29 <nil key="highlightedColor"/> 29 <nil key="highlightedColor"/>
30 <userDefinedRuntimeAttributes> 30 <userDefinedRuntimeAttributes>
31 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.sns.title"/> 31 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.sns.title"/>
32 </userDefinedRuntimeAttributes> 32 </userDefinedRuntimeAttributes>
33 </label> 33 </label>
34 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="BIE-oM-ejb"> 34 <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="BIE-oM-ejb">
35 <rect key="frame" x="0.0" y="5" width="70" height="36"/> 35 <rect key="frame" x="0.0" y="5" width="70" height="36"/>
36 <constraints> 36 <constraints>
37 <constraint firstAttribute="width" constant="70" id="ZpD-Ru-8wG"/> 37 <constraint firstAttribute="width" constant="70" id="ZpD-Ru-8wG"/>
38 </constraints> 38 </constraints>
39 <state key="normal" image="today_back_button"/> 39 <state key="normal" image="today_back_button"/>
40 </button> 40 </button>
41 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="CJn-w1-o2o"> 41 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="CJn-w1-o2o">
42 <rect key="frame" x="330" y="0.0" width="45" height="46"/> 42 <rect key="frame" x="330" y="0.0" width="45" height="46"/>
43 <constraints> 43 <constraints>
44 <constraint firstAttribute="width" constant="45" id="5jv-6w-JAE"/> 44 <constraint firstAttribute="width" constant="45" id="5jv-6w-JAE"/>
45 </constraints> 45 </constraints>
46 <state key="normal" image="icon_menu"/> 46 <state key="normal" image="icon_menu"/>
47 </button> 47 </button>
48 </subviews> 48 </subviews>
49 <color key="backgroundColor" red="0.098039215690000001" green="0.098039215690000001" blue="0.098039215690000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 49 <color key="backgroundColor" red="0.098039215690000001" green="0.098039215690000001" blue="0.098039215690000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
50 <constraints> 50 <constraints>
51 <constraint firstItem="CJn-w1-o2o" firstAttribute="top" secondItem="O4Q-H0-WBO" secondAttribute="top" id="1zI-mI-RXX"/> 51 <constraint firstItem="CJn-w1-o2o" firstAttribute="top" secondItem="O4Q-H0-WBO" secondAttribute="top" id="1zI-mI-RXX"/>
52 <constraint firstAttribute="trailing" secondItem="afS-51-Q5Z" secondAttribute="trailing" id="7I5-1M-8AE"/> 52 <constraint firstAttribute="trailing" secondItem="afS-51-Q5Z" secondAttribute="trailing" id="7I5-1M-8AE"/>
53 <constraint firstItem="afS-51-Q5Z" firstAttribute="leading" secondItem="O4Q-H0-WBO" secondAttribute="leading" id="IEr-WN-6MO"/> 53 <constraint firstItem="afS-51-Q5Z" firstAttribute="leading" secondItem="O4Q-H0-WBO" secondAttribute="leading" id="IEr-WN-6MO"/>
54 <constraint firstAttribute="bottom" secondItem="afS-51-Q5Z" secondAttribute="bottom" id="LNL-Mo-g5c"/> 54 <constraint firstAttribute="bottom" secondItem="afS-51-Q5Z" secondAttribute="bottom" id="LNL-Mo-g5c"/>
55 <constraint firstItem="BIE-oM-ejb" firstAttribute="leading" secondItem="O4Q-H0-WBO" secondAttribute="leading" id="O9H-bB-I0V"/> 55 <constraint firstItem="BIE-oM-ejb" firstAttribute="leading" secondItem="O4Q-H0-WBO" secondAttribute="leading" id="O9H-bB-I0V"/>
56 <constraint firstAttribute="height" constant="46" id="Pmw-mV-DhU"/> 56 <constraint firstAttribute="height" constant="46" id="Pmw-mV-DhU"/>
57 <constraint firstAttribute="bottom" secondItem="CJn-w1-o2o" secondAttribute="bottom" id="Xmh-Qg-N81"/> 57 <constraint firstAttribute="bottom" secondItem="CJn-w1-o2o" secondAttribute="bottom" id="Xmh-Qg-N81"/>
58 <constraint firstAttribute="trailing" secondItem="CJn-w1-o2o" secondAttribute="trailing" id="l2g-NC-l1f"/> 58 <constraint firstAttribute="trailing" secondItem="CJn-w1-o2o" secondAttribute="trailing" id="l2g-NC-l1f"/>
59 <constraint firstAttribute="bottom" secondItem="BIE-oM-ejb" secondAttribute="bottom" constant="5" id="lwA-7z-Gi9"/> 59 <constraint firstAttribute="bottom" secondItem="BIE-oM-ejb" secondAttribute="bottom" constant="5" id="lwA-7z-Gi9"/>
60 <constraint firstItem="BIE-oM-ejb" firstAttribute="top" secondItem="O4Q-H0-WBO" secondAttribute="top" constant="5" id="r6e-SB-lb7"/> 60 <constraint firstItem="BIE-oM-ejb" firstAttribute="top" secondItem="O4Q-H0-WBO" secondAttribute="top" constant="5" id="r6e-SB-lb7"/>
61 <constraint firstItem="afS-51-Q5Z" firstAttribute="top" secondItem="O4Q-H0-WBO" secondAttribute="top" id="vAx-Bu-CLe"/> 61 <constraint firstItem="afS-51-Q5Z" firstAttribute="top" secondItem="O4Q-H0-WBO" secondAttribute="top" id="vAx-Bu-CLe"/>
62 </constraints> 62 </constraints>
63 </view> 63 </view>
64 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="5ZL-zf-geZ" customClass="AutoTransButton"> 64 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="5ZL-zf-geZ" customClass="AutoTransButton">
65 <rect key="frame" x="20" y="76" width="335" height="40"/> 65 <rect key="frame" x="20" y="76" width="335" height="40"/>
66 <color key="backgroundColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/> 66 <color key="backgroundColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
67 <constraints> 67 <constraints>
68 <constraint firstAttribute="height" constant="40" id="ATx-eA-hJ1"/> 68 <constraint firstAttribute="height" constant="40" id="ATx-eA-hJ1"/>
69 </constraints> 69 </constraints>
70 <fontDescription key="fontDescription" type="system" pointSize="13"/> 70 <fontDescription key="fontDescription" type="system" pointSize="13"/>
71 <state key="normal"> 71 <state key="normal">
72 <string key="title" base64-UTF8="YES"> 72 <string key="title" base64-UTF8="YES">
73 44Kq44K544K544Oh44Kw44Or44O844OXAA 73 44Kq44K544K544Oh44Kw44Or44O844OXAA
74 </string> 74 </string>
75 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 75 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
76 </state> 76 </state>
77 <userDefinedRuntimeAttributes> 77 <userDefinedRuntimeAttributes>
78 <userDefinedRuntimeAttribute type="number" keyPath="layer.corderRadius"> 78 <userDefinedRuntimeAttribute type="number" keyPath="layer.corderRadius">
79 <integer key="value" value="5"/> 79 <integer key="value" value="5"/>
80 </userDefinedRuntimeAttribute> 80 </userDefinedRuntimeAttribute>
81 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.sns.bt.commendgroup"/> 81 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.sns.bt.commendgroup"/>
82 </userDefinedRuntimeAttributes> 82 </userDefinedRuntimeAttributes>
83 <connections> 83 <connections>
84 <action selector="clickRecommendGroup:" destination="-1" eventType="touchUpInside" id="DEw-ej-loH"/> 84 <action selector="clickRecommendGroup:" destination="-1" eventType="touchUpInside" id="DEw-ej-loH"/>
85 </connections> 85 </connections>
86 </button> 86 </button>
87 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="uB3-Sm-i6e" customClass="AutoTransButton"> 87 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="uB3-Sm-i6e" customClass="AutoTransButton">
88 <rect key="frame" x="20" y="126" width="335" height="40"/> 88 <rect key="frame" x="20" y="126" width="335" height="40"/>
89 <color key="backgroundColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/> 89 <color key="backgroundColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
90 <constraints> 90 <constraints>
91 <constraint firstAttribute="height" constant="40" id="oph-d8-bxh"/> 91 <constraint firstAttribute="height" constant="40" id="oph-d8-bxh"/>
92 </constraints> 92 </constraints>
93 <fontDescription key="fontDescription" type="system" pointSize="13"/> 93 <fontDescription key="fontDescription" type="system" pointSize="13"/>
94 <state key="normal"> 94 <state key="normal">
95 <string key="title" base64-UTF8="YES"> 95 <string key="title" base64-UTF8="YES">
96 44Oe44Kk44Kw44Or44O844OXAA 96 44Oe44Kk44Kw44Or44O844OXAA
97 </string> 97 </string>
98 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 98 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
99 </state> 99 </state>
100 <userDefinedRuntimeAttributes> 100 <userDefinedRuntimeAttributes>
101 <userDefinedRuntimeAttribute type="number" keyPath="layer.corderRadius"> 101 <userDefinedRuntimeAttribute type="number" keyPath="layer.corderRadius">
102 <integer key="value" value="5"/> 102 <integer key="value" value="5"/>
103 </userDefinedRuntimeAttribute> 103 </userDefinedRuntimeAttribute>
104 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.sns.bt.mygroup"/> 104 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.sns.bt.mygroup"/>
105 </userDefinedRuntimeAttributes> 105 </userDefinedRuntimeAttributes>
106 <connections> 106 <connections>
107 <action selector="clickMyGroup:" destination="-1" eventType="touchUpInside" id="ph8-DF-WMt"/> 107 <action selector="clickMyGroup:" destination="-1" eventType="touchUpInside" id="ph8-DF-WMt"/>
108 </connections> 108 </connections>
109 </button> 109 </button>
110 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="最近の話題" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zzn-bU-X6s" customClass="AutoTransLabel"> 110 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="最近の話題" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zzn-bU-X6s" customClass="AutoTransLabel">
111 <rect key="frame" x="20" y="226" width="335" height="21"/> 111 <rect key="frame" x="20" y="226" width="335" height="21"/>
112 <constraints> 112 <constraints>
113 <constraint firstAttribute="height" constant="21" id="Gu9-7U-YXF"/> 113 <constraint firstAttribute="height" constant="21" id="Gu9-7U-YXF"/>
114 </constraints> 114 </constraints>
115 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/> 115 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/>
116 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 116 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
117 <nil key="highlightedColor"/> 117 <nil key="highlightedColor"/>
118 <userDefinedRuntimeAttributes> 118 <userDefinedRuntimeAttributes>
119 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.sns.lbl.recent"/> 119 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.sns.lbl.recent"/>
120 </userDefinedRuntimeAttributes> 120 </userDefinedRuntimeAttributes>
121 </label> 121 </label>
122 <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" rowHeight="100" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="KcG-O5-UhK"> 122 <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" rowHeight="100" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="KcG-O5-UhK">
123 <rect key="frame" x="0.0" y="255" width="375" height="362"/> 123 <rect key="frame" x="0.0" y="255" width="375" height="362"/>
124 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 124 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
125 <connections> 125 <connections>
126 <outlet property="dataSource" destination="-1" id="Y5Y-4y-Bzz"/> 126 <outlet property="dataSource" destination="-1" id="Y5Y-4y-Bzz"/>
127 <outlet property="delegate" destination="-1" id="VCg-Ha-vdk"/> 127 <outlet property="delegate" destination="-1" id="VCg-Ha-vdk"/>
128 </connections> 128 </connections>
129 </tableView> 129 </tableView>
130 </subviews> 130 </subviews>
131 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/> 131 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
132 <constraints> 132 <constraints>
133 <constraint firstItem="O4Q-H0-WBO" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="0u7-Ks-LSt"/> 133 <constraint firstItem="O4Q-H0-WBO" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="0u7-Ks-LSt"/>
134 <constraint firstAttribute="trailing" secondItem="O4Q-H0-WBO" secondAttribute="trailing" id="2pA-85-kwM"/> 134 <constraint firstAttribute="trailing" secondItem="O4Q-H0-WBO" secondAttribute="trailing" id="2pA-85-kwM"/>
135 <constraint firstItem="zzn-bU-X6s" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="20" id="4Uu-Hd-lEX"/> 135 <constraint firstItem="zzn-bU-X6s" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="20" id="4Uu-Hd-lEX"/>
136 <constraint firstItem="uB3-Sm-i6e" firstAttribute="top" secondItem="5ZL-zf-geZ" secondAttribute="bottom" constant="10" id="BBu-TF-Z8P"/> 136 <constraint firstItem="uB3-Sm-i6e" firstAttribute="top" secondItem="5ZL-zf-geZ" secondAttribute="bottom" constant="10" id="BBu-TF-Z8P"/>
137 <constraint firstItem="O4Q-H0-WBO" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="Ml4-eE-LTb"/> 137 <constraint firstItem="O4Q-H0-WBO" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="Ml4-eE-LTb"/>
138 <constraint firstAttribute="bottom" secondItem="KcG-O5-UhK" secondAttribute="bottom" constant="50" id="O0M-Cr-W0f"/> 138 <constraint firstAttribute="bottom" secondItem="KcG-O5-UhK" secondAttribute="bottom" constant="50" id="O0M-Cr-W0f"/>
139 <constraint firstAttribute="trailing" secondItem="uB3-Sm-i6e" secondAttribute="trailing" constant="20" id="Qu0-ja-Iwx"/> 139 <constraint firstAttribute="trailing" secondItem="uB3-Sm-i6e" secondAttribute="trailing" constant="20" id="Qu0-ja-Iwx"/>
140 <constraint firstAttribute="trailing" secondItem="5ZL-zf-geZ" secondAttribute="trailing" constant="20" id="Sdn-yt-XFa"/> 140 <constraint firstAttribute="trailing" secondItem="5ZL-zf-geZ" secondAttribute="trailing" constant="20" id="Sdn-yt-XFa"/>
141 <constraint firstAttribute="trailing" secondItem="KcG-O5-UhK" secondAttribute="trailing" id="T6S-Bu-Yqj"/> 141 <constraint firstAttribute="trailing" secondItem="KcG-O5-UhK" secondAttribute="trailing" id="T6S-Bu-Yqj"/>
142 <constraint firstItem="5ZL-zf-geZ" firstAttribute="top" secondItem="O4Q-H0-WBO" secondAttribute="bottom" constant="30" id="byK-GM-sv0"/> 142 <constraint firstItem="5ZL-zf-geZ" firstAttribute="top" secondItem="O4Q-H0-WBO" secondAttribute="bottom" constant="30" id="byK-GM-sv0"/>
143 <constraint firstItem="KcG-O5-UhK" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="eBl-Gj-eMk"/> 143 <constraint firstItem="KcG-O5-UhK" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="eBl-Gj-eMk"/>
144 <constraint firstItem="zzn-bU-X6s" firstAttribute="top" secondItem="uB3-Sm-i6e" secondAttribute="bottom" constant="60" id="edW-Ji-61a"/> 144 <constraint firstItem="zzn-bU-X6s" firstAttribute="top" secondItem="uB3-Sm-i6e" secondAttribute="bottom" constant="60" id="edW-Ji-61a"/>
145 <constraint firstAttribute="trailing" secondItem="zzn-bU-X6s" secondAttribute="trailing" constant="20" id="ftd-7J-C4c"/> 145 <constraint firstAttribute="trailing" secondItem="zzn-bU-X6s" secondAttribute="trailing" constant="20" id="ftd-7J-C4c"/>
146 <constraint firstItem="5ZL-zf-geZ" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="20" id="jDz-q1-ufR"/> 146 <constraint firstItem="5ZL-zf-geZ" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="20" id="jDz-q1-ufR"/>
147 <constraint firstItem="KcG-O5-UhK" firstAttribute="top" secondItem="zzn-bU-X6s" secondAttribute="bottom" constant="8" id="lFR-We-lIy"/> 147 <constraint firstItem="KcG-O5-UhK" firstAttribute="top" secondItem="zzn-bU-X6s" secondAttribute="bottom" constant="8" id="lFR-We-lIy"/>
148 <constraint firstItem="uB3-Sm-i6e" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="20" id="v4n-Fr-Vhx"/> 148 <constraint firstItem="uB3-Sm-i6e" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="20" id="v4n-Fr-Vhx"/>
149 </constraints> 149 </constraints>
150 <point key="canvasLocation" x="24.5" y="52.5"/> 150 <point key="canvasLocation" x="24.5" y="52.5"/>
151 </view> 151 </view>
152 </objects> 152 </objects>
153 <resources> 153 <resources>
154 <image name="icon_menu" width="30" height="30"/> 154 <image name="icon_menu" width="30" height="30"/>
155 <image name="today_back_button" width="73" height="37"/> 155 <image name="today_back_button" width="73" height="37"/>
156 </resources> 156 </resources>
157 </document> 157 </document>
158 158
LifeLog/LifeLog/ServerAPI.h
1 // 1 //
2 // ServerAPI.h 2 // ServerAPI.h
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by Nguyen Van Phong on 7/30/17. 5 // Created by Nguyen Van Phong on 7/30/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import <Foundation/Foundation.h> 9 #import <Foundation/Foundation.h>
10 #import "Entities.h" 10 #import "Entities.h"
11 11
12 extern NSString *const kServerAddress; 12 extern NSString *const kServerAddress;
13 extern NSString *const kUser; 13 extern NSString *const kUser;
14 extern NSString *const kToken; 14 extern NSString *const kToken;
15 extern NSString *const kNotificationToken; 15 extern NSString *const kNotificationToken;
16 16
17 @interface ServerAPI : NSObject 17 @interface ServerAPI : NSObject
18 + (instancetype) server; 18 + (instancetype) server;
19 @property (nonatomic, assign) NSTimeInterval timeOutInterval; 19 @property (nonatomic, assign) NSTimeInterval timeOutInterval;
20 20
21 #pragma mark - Login and Register 21 #pragma mark - Login and Register
22 - (void)loginWithEmail:(NSString *)email Password:(NSString *)password CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion; 22 - (void)loginWithEmail:(NSString *)email Password:(NSString *)password CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion;
23 - (void)registerUserWithParams:(NSDictionary *)params CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion; 23 - (void)registerUserWithParams:(NSDictionary *)params CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion;
24 - (void)uploadImage:(NSString *)token andImageData:(NSData *)data CompletionHandler:(void (^)(NSString *, NSError *)) completion; 24 - (void)uploadImage:(NSString *)token andImageData:(NSData *)data CompletionHandler:(void (^)(NSString *, NSError *)) completion;
25 - (void)forgetPass:(NSString *)email CompletionHandler:(void (^)(NSError *)) completion; 25 - (void)forgetPass:(NSString *)email CompletionHandler:(void (^)(NSError *)) completion;
26 - (void)confirmForgetPass:(NSString *)email withConfirm:(NSString *)confirm CompletionHandler:(void (^)(NSError *)) completion; 26 - (void)confirmForgetPass:(NSString *)email withConfirm:(NSString *)confirm CompletionHandler:(void (^)(NSError *)) completion;
27 27
28 #pragma mark - Home Screen Function 28 #pragma mark - Home Screen Function
29 - (void)requestTopWithMode:(int)mode andDate:(NSString *)date CompletionHandler:(void (^)(TopObject *, NSError *)) completion; 29 - (void)requestTopWithMode:(int)mode andDate:(NSString *)date CompletionHandler:(void (^)(TopObject *, NSError *)) completion;
30 - (void)requestCreateLog:(int)mode withStep:(int)numStep startDate:(NSString *)startDate endDate:(NSString *)endDate CompletionHandler:(void (^)(NSError *))completion; 30 - (void)requestCreateLog:(int)mode withStep:(int)numStep startDate:(NSString *)startDate endDate:(NSString *)endDate CompletionHandler:(void (^)(NSError *))completion;
31 31
32 #pragma mark - History Screen Function 32 #pragma mark - History Screen Function
33 - (void) requestHistory:(NSString *)token atDate:(NSDate *)date withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryObject *, NSError *)) completion; 33 - (void) requestHistory:(NSString *)token atDate:(NSDate *)date withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryObject *, NSError *)) completion;
34 - (void) requestHistoryGraph:(NSString *)token withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryGraphObject *, NSError *)) completion; 34 - (void) requestHistoryGraph:(NSString *)token withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryGraphObject *, NSError *)) completion;
35 - (void) requestHistoryList:(NSString *)token withType:(int)type andMode:(int) mode AtPage:(int) page CompletionHandler:(void (^)(NSArray *, NSError *)) completion; 35 - (void) requestHistoryList:(NSString *)token withType:(int)type andMode:(int) mode AtPage:(int) page CompletionHandler:(void (^)(NSArray *, NSError *)) completion;
36 - (void) requestJoinGroup:(NSString *)token groupID: (int) groupID CompletionHandler:(void (^)(NSError *)) completion;
36 37
37 #pragma mark - SNS Screen Function 38 #pragma mark - SNS Screen Function
38 /* 39 /*
39 Get tweet of group and get recent tweet is same API 40 Get tweet of group and get recent tweet is same API
40 If groupID equal -1, it will request recent tweet. Otherwise will request tweet of group 41 If groupID equal -1, it will request recent tweet. Otherwise will request tweet of group
41 */ 42 */
42 - (void) requestTweetsList:(NSString *)token groupID: (int) groupID withPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion; 43 - (void) requestTweetsList:(NSString *)token groupID: (int) groupID withPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion;
43 - (void) searchGroup:(NSString *)token withKey:(NSString *)key andPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion; 44 - (void) searchGroup:(NSString *)token withKey:(NSString *)key andPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion;
44 45
45 #pragma mark - Group Function 46 #pragma mark - Group Function
46 - (void) getGroupDetail:(NSString *)token withGroupID:(int)groupID CompletionHandler:(void (^)(GroupObject *, NSError *)) completion; 47 - (void) getGroupDetail:(NSString *)token withGroupID:(int)groupID CompletionHandler:(void (^)(GroupObject *, NSError *)) completion;
48 - (void) requestMemberList:(NSString *)token groupID: (int) groupID withPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion;
47 49
48 #pragma mark - Common API 50 #pragma mark - Common API
49 - (void)refreshToken: (NSString *)userID CompletionHandler:(void (^)(NSString *, NSError *))completion; 51 - (void)refreshToken: (NSString *)userID CompletionHandler:(void (^)(NSString *, NSError *))completion;
50 @end 52 @end
51 53
LifeLog/LifeLog/ServerAPI.m
1 // 1 //
2 // ServerAPI.m 2 // ServerAPI.m
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by Nguyen Van Phong on 7/30/17. 5 // Created by Nguyen Van Phong on 7/30/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import "ServerAPI.h" 9 #import "ServerAPI.h"
10 10
11 NSString *const kServerAddress = @"http://clover.timesfun.jp:9001/"; 11 NSString *const kServerAddress = @"http://clover.timesfun.jp:9001/";
12 NSString *const kUser = @"KEY_USER"; 12 NSString *const kUser = @"KEY_USER";
13 NSString *const kToken = @"KEY_TOKEN"; 13 NSString *const kToken = @"KEY_TOKEN";
14 NSString *const kNotificationToken = @"TOKEN_INVALID"; 14 NSString *const kNotificationToken = @"TOKEN_INVALID";
15 15
16 @implementation NSString (NSString_Extended) 16 @implementation NSString (NSString_Extended)
17 - (NSString *)urlencode { 17 - (NSString *)urlencode {
18 NSMutableString *output = [NSMutableString string]; 18 NSMutableString *output = [NSMutableString string];
19 const unsigned char *source = (const unsigned char *)[self UTF8String]; 19 const unsigned char *source = (const unsigned char *)[self UTF8String];
20 int sourceLen = (int)strlen((const char *)source); 20 int sourceLen = (int)strlen((const char *)source);
21 for (int i = 0; i < sourceLen; ++i) { 21 for (int i = 0; i < sourceLen; ++i) {
22 const unsigned char thisChar = source[i]; 22 const unsigned char thisChar = source[i];
23 if (thisChar == ' '){ 23 if (thisChar == ' '){
24 [output appendString:@"+"]; 24 [output appendString:@"+"];
25 } else if (thisChar == '.' || thisChar == '-' || thisChar == '_' || thisChar == '~' || 25 } else if (thisChar == '.' || thisChar == '-' || thisChar == '_' || thisChar == '~' ||
26 (thisChar >= 'a' && thisChar <= 'z') || 26 (thisChar >= 'a' && thisChar <= 'z') ||
27 (thisChar >= 'A' && thisChar <= 'Z') || 27 (thisChar >= 'A' && thisChar <= 'Z') ||
28 (thisChar >= '0' && thisChar <= '9')) { 28 (thisChar >= '0' && thisChar <= '9')) {
29 [output appendFormat:@"%c", thisChar]; 29 [output appendFormat:@"%c", thisChar];
30 } else { 30 } else {
31 [output appendFormat:@"%%%02X", thisChar]; 31 [output appendFormat:@"%%%02X", thisChar];
32 } 32 }
33 } 33 }
34 return output; 34 return output;
35 } 35 }
36 @end 36 @end
37 37
38 @implementation ServerAPI 38 @implementation ServerAPI
39 static ServerAPI *_server = nil; 39 static ServerAPI *_server = nil;
40 40
41 NSURLSessionDataTask * searchTask; 41 NSURLSessionDataTask * searchTask;
42 42
43 @synthesize timeOutInterval = _timeOutInterval; 43 @synthesize timeOutInterval = _timeOutInterval;
44 44
45 + (instancetype)server 45 + (instancetype)server
46 { 46 {
47 @synchronized(self) { 47 @synchronized(self) {
48 if (_server == nil) { 48 if (_server == nil) {
49 _server = [[ServerAPI alloc] init]; 49 _server = [[ServerAPI alloc] init];
50 } 50 }
51 } 51 }
52 return _server; 52 return _server;
53 } 53 }
54 54
55 - (instancetype)init 55 - (instancetype)init
56 { 56 {
57 self = [super init]; 57 self = [super init];
58 if (self != nil) { 58 if (self != nil) {
59 self.timeOutInterval = 150; 59 self.timeOutInterval = 150;
60 } 60 }
61 return self; 61 return self;
62 } 62 }
63 63
64 #pragma mark - Login and Register 64 #pragma mark - Login and Register
65 // Login 65 // Login
66 - (void)loginWithEmail:(NSString *)email Password:(NSString *)password CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion 66 - (void)loginWithEmail:(NSString *)email Password:(NSString *)password CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion
67 { 67 {
68 [self _request:[kServerAddress stringByAppendingFormat: @"login"] method:@"POST" token:@"" paras:@{@"email":email, @"password": password} completion:^(NSData *data, NSError *error) { 68 [self _request:[kServerAddress stringByAppendingFormat: @"login"] method:@"POST" token:@"" paras:@{@"email":email, @"password": password} completion:^(NSData *data, NSError *error) {
69 69
70 if (completion == NULL) { 70 if (completion == NULL) {
71 return ; 71 return ;
72 } 72 }
73 73
74 if (error == nil) 74 if (error == nil)
75 { 75 {
76 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 76 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
77 77
78 int status = [dataResult[@"status"] intValue]; 78 int status = [dataResult[@"status"] intValue];
79 if (status == 1) { // status = 1 success 79 if (status == 1) { // status = 1 success
80 NSString *token = dataResult[@"result"][@"token"]; 80 NSString *token = dataResult[@"result"][@"token"];
81 NSDictionary *dictUser = dataResult[@"result"][@"user"]; 81 NSDictionary *dictUser = dataResult[@"result"][@"user"];
82 User *user = [[User alloc] init]; 82 User *user = [[User alloc] init];
83 user.user_id = [NSString stringWithFormat:@"%@",dictUser[@"id"]]; 83 user.user_id = [NSString stringWithFormat:@"%@",dictUser[@"id"]];
84 user.username = [NSString stringWithFormat:@"%@",dictUser[@"username"]]; 84 user.username = [NSString stringWithFormat:@"%@",dictUser[@"username"]];
85 user.full_name = [NSString stringWithFormat:@"%@",dictUser[@"full_name"]]; 85 user.full_name = [NSString stringWithFormat:@"%@",dictUser[@"full_name"]];
86 user.nickname = [NSString stringWithFormat:@"%@",dictUser[@"nickname"]]; 86 user.nickname = [NSString stringWithFormat:@"%@",dictUser[@"nickname"]];
87 user.email = [NSString stringWithFormat:@"%@",dictUser[@"email"]]; 87 user.email = [NSString stringWithFormat:@"%@",dictUser[@"email"]];
88 user.password = [NSString stringWithFormat:@"%@",dictUser[@"password"]]; 88 user.password = [NSString stringWithFormat:@"%@",dictUser[@"password"]];
89 user.birthday = [NSString stringWithFormat:@"%@",dictUser[@"birthday"]]; 89 user.birthday = [NSString stringWithFormat:@"%@",dictUser[@"birthday"]];
90 user.address = [NSString stringWithFormat:@"%@",dictUser[@"address"]]; 90 user.address = [NSString stringWithFormat:@"%@",dictUser[@"address"]];
91 user.gender = [[NSString stringWithFormat:@"%@",dictUser[@"gender"]] intValue]; 91 user.gender = [[NSString stringWithFormat:@"%@",dictUser[@"gender"]] intValue];
92 user.height = [[NSString stringWithFormat:@"%@",dictUser[@"height"]] floatValue]; 92 user.height = [[NSString stringWithFormat:@"%@",dictUser[@"height"]] floatValue];
93 user.weight = [[NSString stringWithFormat:@"%@",dictUser[@"weight"]] floatValue]; 93 user.weight = [[NSString stringWithFormat:@"%@",dictUser[@"weight"]] floatValue];
94 user.user_description = [NSString stringWithFormat:@"%@",dictUser[@"description"]]; 94 user.user_description = [NSString stringWithFormat:@"%@",dictUser[@"description"]];
95 user.created_at = [NSString stringWithFormat:@"%@",dictUser[@"created_at"]]; 95 user.created_at = [NSString stringWithFormat:@"%@",dictUser[@"created_at"]];
96 user.physical_activity = [NSString stringWithFormat:@"%@",dictUser[@"physical_activity"]]; 96 user.physical_activity = [NSString stringWithFormat:@"%@",dictUser[@"physical_activity"]];
97 user.profile_image = [NSString stringWithFormat:@"%@",dictUser[@"profile_image"]]; 97 user.profile_image = [NSString stringWithFormat:@"%@",dictUser[@"profile_image"]];
98 user.updated_at = [NSString stringWithFormat:@"%@",dictUser[@"updated_at"]]; 98 user.updated_at = [NSString stringWithFormat:@"%@",dictUser[@"updated_at"]];
99 user.delete_flag = [[NSString stringWithFormat:@"%@",dictUser[@"delete_flag"]] intValue]; 99 user.delete_flag = [[NSString stringWithFormat:@"%@",dictUser[@"delete_flag"]] intValue];
100 user.fat_rate = [[NSString stringWithFormat:@"%@",dictUser[@"fat_rate"]] intValue]; 100 user.fat_rate = [[NSString stringWithFormat:@"%@",dictUser[@"fat_rate"]] intValue];
101 user.profiles_share = [[NSString stringWithFormat:@"%@",dictUser[@"profiles_share"]] intValue]; 101 user.profiles_share = [[NSString stringWithFormat:@"%@",dictUser[@"profiles_share"]] intValue];
102 user.remember_me = [[NSString stringWithFormat:@"%@",dictUser[@"remember_me"]] intValue]; 102 user.remember_me = [[NSString stringWithFormat:@"%@",dictUser[@"remember_me"]] intValue];
103 user.sound_notifications_share = [[NSString stringWithFormat:@"%@",dictUser[@"sound_notifications_share"]] intValue]; 103 user.sound_notifications_share = [[NSString stringWithFormat:@"%@",dictUser[@"sound_notifications_share"]] intValue];
104 user.spend_calo_in_day = [[NSString stringWithFormat:@"%@",dictUser[@"spend_calo_in_day"]] intValue]; 104 user.spend_calo_in_day = [[NSString stringWithFormat:@"%@",dictUser[@"spend_calo_in_day"]] intValue];
105 user.target = [[NSString stringWithFormat:@"%@",dictUser[@"target"]] intValue]; 105 user.target = [[NSString stringWithFormat:@"%@",dictUser[@"target"]] intValue];
106 completion(user, token, nil); 106 completion(user, token, nil);
107 } 107 }
108 else { // status = 0 error 108 else { // status = 0 error
109 NSString *message = dataResult[@"message"]; 109 NSString *message = dataResult[@"message"];
110 if (message == nil) { 110 if (message == nil) {
111 message = @"Unknown error"; 111 message = @"Unknown error";
112 } 112 }
113 NSError *loginFaild = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 113 NSError *loginFaild = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
114 completion(nil, nil, loginFaild); 114 completion(nil, nil, loginFaild);
115 } 115 }
116 } 116 }
117 else 117 else
118 { 118 {
119 completion(nil, nil, error); 119 completion(nil, nil, error);
120 } 120 }
121 }]; 121 }];
122 } 122 }
123 123
124 // Register 124 // Register
125 - (void)registerUserWithParams:(NSDictionary *)params CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion { 125 - (void)registerUserWithParams:(NSDictionary *)params CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion {
126 [self _request:[kServerAddress stringByAppendingFormat: @"register"] method:@"POST" token:@"" paras:params completion:^(NSData *data, NSError *error) { 126 [self _request:[kServerAddress stringByAppendingFormat: @"register"] method:@"POST" token:@"" paras:params completion:^(NSData *data, NSError *error) {
127 127
128 if (completion == NULL) { 128 if (completion == NULL) {
129 return ; 129 return ;
130 } 130 }
131 131
132 if (error == nil) 132 if (error == nil)
133 { 133 {
134 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 134 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
135 135
136 int status = [dataResult[@"status"] intValue]; 136 int status = [dataResult[@"status"] intValue];
137 if (status == 1) { // status = 1 success 137 if (status == 1) { // status = 1 success
138 NSString *token = dataResult[@"result"][@"token"]; 138 NSString *token = dataResult[@"result"][@"token"];
139 NSDictionary *dictUser = dataResult[@"result"][@"user"]; 139 NSDictionary *dictUser = dataResult[@"result"][@"user"];
140 User *user = [[User alloc] init]; 140 User *user = [[User alloc] init];
141 user.user_id = [NSString stringWithFormat:@"%@",dictUser[@"id"]]; 141 user.user_id = [NSString stringWithFormat:@"%@",dictUser[@"id"]];
142 user.username = [NSString stringWithFormat:@"%@",dictUser[@"username"]]; 142 user.username = [NSString stringWithFormat:@"%@",dictUser[@"username"]];
143 user.full_name = [NSString stringWithFormat:@"%@",dictUser[@"full_name"]]; 143 user.full_name = [NSString stringWithFormat:@"%@",dictUser[@"full_name"]];
144 user.nickname = [NSString stringWithFormat:@"%@",dictUser[@"nickname"]]; 144 user.nickname = [NSString stringWithFormat:@"%@",dictUser[@"nickname"]];
145 user.email = [NSString stringWithFormat:@"%@",dictUser[@"email"]]; 145 user.email = [NSString stringWithFormat:@"%@",dictUser[@"email"]];
146 user.password = [NSString stringWithFormat:@"%@",dictUser[@"password"]]; 146 user.password = [NSString stringWithFormat:@"%@",dictUser[@"password"]];
147 user.birthday = [NSString stringWithFormat:@"%@",dictUser[@"birthday"]]; 147 user.birthday = [NSString stringWithFormat:@"%@",dictUser[@"birthday"]];
148 user.address = [NSString stringWithFormat:@"%@",dictUser[@"address"]]; 148 user.address = [NSString stringWithFormat:@"%@",dictUser[@"address"]];
149 user.gender = [[NSString stringWithFormat:@"%@",dictUser[@"gender"]] intValue]; 149 user.gender = [[NSString stringWithFormat:@"%@",dictUser[@"gender"]] intValue];
150 user.height = [[NSString stringWithFormat:@"%@",dictUser[@"height"]] floatValue]; 150 user.height = [[NSString stringWithFormat:@"%@",dictUser[@"height"]] floatValue];
151 user.weight = [[NSString stringWithFormat:@"%@",dictUser[@"weight"]] floatValue]; 151 user.weight = [[NSString stringWithFormat:@"%@",dictUser[@"weight"]] floatValue];
152 user.user_description = [NSString stringWithFormat:@"%@",dictUser[@"description"]]; 152 user.user_description = [NSString stringWithFormat:@"%@",dictUser[@"description"]];
153 user.created_at = [NSString stringWithFormat:@"%@",dictUser[@"created_at"]]; 153 user.created_at = [NSString stringWithFormat:@"%@",dictUser[@"created_at"]];
154 user.physical_activity = [NSString stringWithFormat:@"%@",dictUser[@"physical_activity"]]; 154 user.physical_activity = [NSString stringWithFormat:@"%@",dictUser[@"physical_activity"]];
155 user.profile_image = [NSString stringWithFormat:@"%@",dictUser[@"profile_image"]]; 155 user.profile_image = [NSString stringWithFormat:@"%@",dictUser[@"profile_image"]];
156 user.updated_at = [NSString stringWithFormat:@"%@",dictUser[@"updated_at"]]; 156 user.updated_at = [NSString stringWithFormat:@"%@",dictUser[@"updated_at"]];
157 user.delete_flag = [[NSString stringWithFormat:@"%@",dictUser[@"delete_flag"]] intValue]; 157 user.delete_flag = [[NSString stringWithFormat:@"%@",dictUser[@"delete_flag"]] intValue];
158 user.fat_rate = [[NSString stringWithFormat:@"%@",dictUser[@"fat_rate"]] intValue]; 158 user.fat_rate = [[NSString stringWithFormat:@"%@",dictUser[@"fat_rate"]] intValue];
159 user.profiles_share = [[NSString stringWithFormat:@"%@",dictUser[@"profiles_share"]] intValue]; 159 user.profiles_share = [[NSString stringWithFormat:@"%@",dictUser[@"profiles_share"]] intValue];
160 user.remember_me = [[NSString stringWithFormat:@"%@",dictUser[@"remember_me"]] intValue]; 160 user.remember_me = [[NSString stringWithFormat:@"%@",dictUser[@"remember_me"]] intValue];
161 user.sound_notifications_share = [[NSString stringWithFormat:@"%@",dictUser[@"sound_notifications_share"]] intValue]; 161 user.sound_notifications_share = [[NSString stringWithFormat:@"%@",dictUser[@"sound_notifications_share"]] intValue];
162 user.spend_calo_in_day = [[NSString stringWithFormat:@"%@",dictUser[@"spend_calo_in_day"]] intValue]; 162 user.spend_calo_in_day = [[NSString stringWithFormat:@"%@",dictUser[@"spend_calo_in_day"]] intValue];
163 user.target = [[NSString stringWithFormat:@"%@",dictUser[@"target"]] intValue]; 163 user.target = [[NSString stringWithFormat:@"%@",dictUser[@"target"]] intValue];
164 completion(user, token, nil); 164 completion(user, token, nil);
165 } 165 }
166 else { // status = 0 error 166 else { // status = 0 error
167 NSString *message = dataResult[@"message"]; 167 NSString *message = dataResult[@"message"];
168 if (message == nil) { 168 if (message == nil) {
169 message = @"Unknown error"; 169 message = @"Unknown error";
170 } 170 }
171 NSError *loginFaild = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 171 NSError *loginFaild = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
172 completion(nil, nil, loginFaild); 172 completion(nil, nil, loginFaild);
173 } 173 }
174 } 174 }
175 else 175 else
176 { 176 {
177 completion(nil, nil, error); 177 completion(nil, nil, error);
178 } 178 }
179 }]; 179 }];
180 } 180 }
181 181
182 - (void)forgetPass:(NSString *)email CompletionHandler:(void (^)(NSError *)) completion { 182 - (void)forgetPass:(NSString *)email CompletionHandler:(void (^)(NSError *)) completion {
183 [self _request:[kServerAddress stringByAppendingFormat: @"forgetPass"] method:@"POST" token:@"" paras:@{@"email":email} completion:^(NSData *data, NSError *error) { 183 [self _request:[kServerAddress stringByAppendingFormat: @"forgetPass"] method:@"POST" token:@"" paras:@{@"email":email} completion:^(NSData *data, NSError *error) {
184 184
185 if (completion == NULL) { 185 if (completion == NULL) {
186 return ; 186 return ;
187 } 187 }
188 188
189 if (error == nil) 189 if (error == nil)
190 { 190 {
191 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 191 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
192 192
193 int status = [dataResult[@"status"] intValue]; 193 int status = [dataResult[@"status"] intValue];
194 if (status == 1) { // status = 1 success 194 if (status == 1) { // status = 1 success
195 completion(nil); 195 completion(nil);
196 } 196 }
197 else { // status = 0 error 197 else { // status = 0 error
198 NSString *message = dataResult[@"message"]; 198 NSString *message = dataResult[@"message"];
199 if (message == nil) { 199 if (message == nil) {
200 message = @"Unknown error"; 200 message = @"Unknown error";
201 } 201 }
202 NSError *forgetPass = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 202 NSError *forgetPass = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
203 completion(forgetPass); 203 completion(forgetPass);
204 } 204 }
205 } 205 }
206 else 206 else
207 { 207 {
208 completion(error); 208 completion(error);
209 } 209 }
210 }]; 210 }];
211 } 211 }
212 - (void)confirmForgetPass:(NSString *)email withConfirm:(NSString *)confirm CompletionHandler:(void (^)(NSError *)) completion { 212 - (void)confirmForgetPass:(NSString *)email withConfirm:(NSString *)confirm CompletionHandler:(void (^)(NSError *)) completion {
213 [self _request:[kServerAddress stringByAppendingFormat: @"forgetPass/confirm"] method:@"POST" token:@"" paras:@{@"email":email, @"code_confirm": confirm} completion:^(NSData *data, NSError *error) { 213 [self _request:[kServerAddress stringByAppendingFormat: @"forgetPass/confirm"] method:@"POST" token:@"" paras:@{@"email":email, @"code_confirm": confirm} completion:^(NSData *data, NSError *error) {
214 214
215 if (completion == NULL) { 215 if (completion == NULL) {
216 return ; 216 return ;
217 } 217 }
218 218
219 if (error == nil) 219 if (error == nil)
220 { 220 {
221 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 221 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
222 222
223 int status = [dataResult[@"status"] intValue]; 223 int status = [dataResult[@"status"] intValue];
224 if (status == 1) { // status = 1 success 224 if (status == 1) { // status = 1 success
225 completion(nil); 225 completion(nil);
226 } 226 }
227 else { // status = 0 error 227 else { // status = 0 error
228 NSString *message = dataResult[@"message"]; 228 NSString *message = dataResult[@"message"];
229 NSError *confirmForgetPass = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 229 NSError *confirmForgetPass = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
230 completion(confirmForgetPass); 230 completion(confirmForgetPass);
231 } 231 }
232 } 232 }
233 else 233 else
234 { 234 {
235 completion(error); 235 completion(error);
236 } 236 }
237 }]; 237 }];
238 } 238 }
239 239
240 - (void)uploadImage:(NSString *)token andImageData:(NSData *)data CompletionHandler:(void (^)(NSString *, NSError *)) completion { 240 - (void)uploadImage:(NSString *)token andImageData:(NSData *)data CompletionHandler:(void (^)(NSString *, NSError *)) completion {
241 NSDictionary *dict = nil; 241 NSDictionary *dict = nil;
242 NSString *base64Encoded = [data base64EncodedStringWithOptions:0]; 242 NSString *base64Encoded = [data base64EncodedStringWithOptions:0];
243 if (token != nil) { 243 if (token != nil) {
244 dict = @{@"token":token, @"img": base64Encoded}; 244 dict = @{@"token":token, @"img": base64Encoded};
245 } 245 }
246 else { 246 else {
247 dict = @{@"img": base64Encoded}; 247 dict = @{@"img": base64Encoded};
248 } 248 }
249 [self _request:[kServerAddress stringByAppendingFormat: @"upload-image"] method:@"POST" token:token paras:dict completion:^(NSData *data, NSError *error) { 249 [self _request:[kServerAddress stringByAppendingFormat: @"upload-image"] method:@"POST" token:token paras:dict completion:^(NSData *data, NSError *error) {
250 250
251 if (completion == NULL) { 251 if (completion == NULL) {
252 return ; 252 return ;
253 } 253 }
254 254
255 if (error == nil) 255 if (error == nil)
256 { 256 {
257 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 257 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
258 NSString *image_profile = [NSString stringWithFormat:@"%@", dataResult[@"message"]]; 258 NSString *image_profile = [NSString stringWithFormat:@"%@", dataResult[@"message"]];
259 completion(image_profile, nil); 259 completion(image_profile, nil);
260 } 260 }
261 else 261 else
262 { 262 {
263 completion(nil, error); 263 completion(nil, error);
264 } 264 }
265 }]; 265 }];
266 } 266 }
267 267
268 -(NSString *) convertIntToString : (int) type { 268 -(NSString *) convertIntToString : (int) type {
269 switch (type) { 269 switch (type) {
270 case 1: 270 case 1:
271 return @"week"; 271 return @"week";
272 break; 272 break;
273 case 2: 273 case 2:
274 return @"oneMonth"; 274 return @"oneMonth";
275 break; 275 break;
276 case 3: 276 case 3:
277 return @"threeMonth"; 277 return @"threeMonth";
278 break; 278 break;
279 case 4: 279 case 4:
280 return @"sixMonth"; 280 return @"sixMonth";
281 break; 281 break;
282 default: 282 default:
283 return @"today"; 283 return @"today";
284 break; 284 break;
285 } 285 }
286 } 286 }
287 287
288 #pragma mark - Home Screen Function 288 #pragma mark - Home Screen Function
289 - (void)requestTopWithMode:(int)mode andDate:(NSString *)date CompletionHandler:(void (^)(TopObject *, NSError *)) completion 289 - (void)requestTopWithMode:(int)mode andDate:(NSString *)date CompletionHandler:(void (^)(TopObject *, NSError *)) completion
290 { 290 {
291 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken]; 291 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken];
292 NSString *url = [kServerAddress stringByAppendingFormat:@"api/top/%d/%@", mode, date]; 292 NSString *url = [kServerAddress stringByAppendingFormat:@"api/top/%d/%@", mode, date];
293 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) { 293 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) {
294 294
295 if (completion == NULL) { 295 if (completion == NULL) {
296 return ; 296 return ;
297 } 297 }
298 298
299 if (error == nil) 299 if (error == nil)
300 { 300 {
301 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 301 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
302 int status = [dataResult[@"status"] intValue]; 302 int status = [dataResult[@"status"] intValue];
303 if (status == 1) { // status = 1 success 303 if (status == 1) { // status = 1 success
304 if(dataResult[@"result"] != nil) { 304 if(dataResult[@"result"] != nil) {
305 NSDictionary * dictResult = dataResult[@"result"]; 305 NSDictionary * dictResult = dataResult[@"result"];
306 TopObject *topObject = [[TopObject alloc] init]; 306 TopObject *topObject = [[TopObject alloc] init];
307 TargetInfor *targetInfor = [[TargetInfor alloc] initWithData:dictResult[@"targetInf"]]; 307 TargetInfor *targetInfor = [[TargetInfor alloc] initWithData:dictResult[@"targetInf"]];
308 topObject.targetInfor = targetInfor; 308 topObject.targetInfor = targetInfor;
309 topObject.kcal = [[NSString stringWithFormat:@"%@", dictResult[@"kcal"]] intValue]; 309 topObject.kcal = [[NSString stringWithFormat:@"%@", dictResult[@"kcal"]] intValue];
310 topObject.distance = [[NSString stringWithFormat:@"%@", dictResult[@"distance"]] floatValue]; 310 topObject.distance = [[NSString stringWithFormat:@"%@", dictResult[@"distance"]] floatValue];
311 topObject.time = [NSString stringWithFormat:@"%@", dictResult[@"time"]]; 311 topObject.time = [NSString stringWithFormat:@"%@", dictResult[@"time"]];
312 NSMutableArray *arrayStep = [[NSMutableArray alloc] init]; 312 NSMutableArray *arrayStep = [[NSMutableArray alloc] init];
313 NSArray *array = dictResult[@"dataChart"]; 313 NSArray *array = dictResult[@"dataChart"];
314 for(NSDictionary *dict in array) { 314 for(NSDictionary *dict in array) {
315 StepObject *object = [[StepObject alloc] init]; 315 StepObject *object = [[StepObject alloc] init];
316 if([dict objectForKey:@"numStep"] != nil) { 316 if([dict objectForKey:@"numStep"] != nil) {
317 object.step = [dict[@"numStep"] intValue]; 317 object.step = [dict[@"numStep"] intValue];
318 } 318 }
319 if([dict objectForKey:@"hour"] != nil) { 319 if([dict objectForKey:@"hour"] != nil) {
320 object.hour = [dict[@"hour"] intValue]; 320 object.hour = [dict[@"hour"] intValue];
321 } 321 }
322 switch (mode) { 322 switch (mode) {
323 case 1: 323 case 1:
324 object.typeStep = @"walking"; 324 object.typeStep = @"walking";
325 break; 325 break;
326 case 2: 326 case 2:
327 object.typeStep = @"running"; 327 object.typeStep = @"running";
328 break; 328 break;
329 case 3: 329 case 3:
330 object.typeStep = @"bike"; 330 object.typeStep = @"bike";
331 break; 331 break;
332 default: 332 default:
333 break; 333 break;
334 } 334 }
335 [arrayStep addObject:object]; 335 [arrayStep addObject:object];
336 } 336 }
337 topObject.dataChart = [[NSMutableArray alloc] initWithArray:arrayStep]; 337 topObject.dataChart = [[NSMutableArray alloc] initWithArray:arrayStep];
338 completion(topObject, nil); 338 completion(topObject, nil);
339 } 339 }
340 else { 340 else {
341 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}]; 341 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}];
342 completion(nil, errorObject); 342 completion(nil, errorObject);
343 } 343 }
344 } 344 }
345 else { 345 else {
346 NSString *message = dataResult[@"message"]; 346 NSString *message = dataResult[@"message"];
347 if (message == nil) { 347 if (message == nil) {
348 message = @"Unknown error"; 348 message = @"Unknown error";
349 } 349 }
350 350
351 if ([message isEqualToString:@"Token is invalid"]) { 351 if ([message isEqualToString:@"Token is invalid"]) {
352 [self performSelectorOnMainThread:@selector(checkToken) withObject:nil waitUntilDone:YES]; 352 [self performSelectorOnMainThread:@selector(checkToken) withObject:nil waitUntilDone:YES];
353 [self requestTopWithMode:mode andDate:date CompletionHandler:completion]; 353 [self requestTopWithMode:mode andDate:date CompletionHandler:completion];
354 } 354 }
355 else { 355 else {
356 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 356 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
357 completion(nil, errorObject); 357 completion(nil, errorObject);
358 } 358 }
359 } 359 }
360 } 360 }
361 else 361 else
362 { 362 {
363 completion(nil, error); 363 completion(nil, error);
364 } 364 }
365 }]; 365 }];
366 } 366 }
367 367
368 - (void)requestCreateLog:(int)mode withStep:(int)numStep startDate:(NSString *)startDate endDate:(NSString *)endDate CompletionHandler:(void (^)(NSError *))completion { 368 - (void)requestCreateLog:(int)mode withStep:(int)numStep startDate:(NSString *)startDate endDate:(NSString *)endDate CompletionHandler:(void (^)(NSError *))completion {
369 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken]; 369 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken];
370 NSString *url = [kServerAddress stringByAppendingFormat:@"api/createLog"]; 370 NSString *url = [kServerAddress stringByAppendingFormat:@"api/createLog"];
371 NSDictionary *dict = @{@"mode": [NSNumber numberWithInt:mode], @"numStep": [NSNumber numberWithInt:numStep], @"startTime": startDate, @"endTime": endDate}; 371 NSDictionary *dict = @{@"mode": [NSNumber numberWithInt:mode], @"numStep": [NSNumber numberWithInt:numStep], @"startTime": startDate, @"endTime": endDate};
372 [self _request:url method:@"POST" token:token paras:dict completion:^(NSData *data, NSError *error) { 372 [self _request:url method:@"POST" token:token paras:dict completion:^(NSData *data, NSError *error) {
373 373
374 if (completion == NULL) { 374 if (completion == NULL) {
375 return ; 375 return ;
376 } 376 }
377 377
378 if (error == nil) 378 if (error == nil)
379 { 379 {
380 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 380 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
381 int status = [dataResult[@"status"] intValue]; 381 int status = [dataResult[@"status"] intValue];
382 if (status == 1) { // status = 1 success 382 if (status == 1) { // status = 1 success
383 completion(nil); 383 completion(nil);
384 } 384 }
385 else { 385 else {
386 NSString *message = dataResult[@"message"]; 386 NSString *message = dataResult[@"message"];
387 if (message == nil) { 387 if (message == nil) {
388 message = @"Unknown error"; 388 message = @"Unknown error";
389 } 389 }
390 390
391 if ([message isEqualToString:@"Token is invalid"]) { 391 if ([message isEqualToString:@"Token is invalid"]) {
392 [self performSelectorOnMainThread:@selector(checkToken) withObject:nil waitUntilDone:YES]; 392 [self performSelectorOnMainThread:@selector(checkToken) withObject:nil waitUntilDone:YES];
393 [self requestCreateLog:mode withStep:numStep startDate:startDate endDate:endDate CompletionHandler:completion]; 393 [self requestCreateLog:mode withStep:numStep startDate:startDate endDate:endDate CompletionHandler:completion];
394 } 394 }
395 else { 395 else {
396 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 396 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
397 completion(errorObject); 397 completion(errorObject);
398 } 398 }
399 } 399 }
400 } 400 }
401 else 401 else
402 { 402 {
403 completion(error); 403 completion(error);
404 } 404 }
405 }]; 405 }];
406 } 406 }
407 407
408 #pragma mark - History Screen Function 408 #pragma mark - History Screen Function
409 - (void) requestHistory:(NSString *)token atDate:(NSDate *)date withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryObject *, NSError *)) completion { 409 - (void) requestHistory:(NSString *)token atDate:(NSDate *)date withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryObject *, NSError *)) completion {
410 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/history/%@/%d", [self convertIntToString:type], mode]; 410 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/history/%@/%d", [self convertIntToString:type], mode];
411 NSLog(@"requestHistory link %@", url); 411 NSLog(@"requestHistory link %@", url);
412 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) { 412 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) {
413 413
414 if (completion == NULL) { 414 if (completion == NULL) {
415 return ; 415 return ;
416 } 416 }
417 417
418 if (error == nil) 418 if (error == nil)
419 { 419 {
420 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 420 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
421 NSLog(@"%@", dataResult); 421 NSLog(@"%@", dataResult);
422 int status = [dataResult[@"status"] intValue]; 422 int status = [dataResult[@"status"] intValue];
423 if (status == 1) { // status = 1 success 423 if (status == 1) { // status = 1 success
424 HistoryObject * object = [[HistoryObject alloc] initWithData:dataResult[@"result"]]; 424 HistoryObject * object = [[HistoryObject alloc] initWithData:dataResult[@"result"]];
425 completion(object, nil); 425 completion(object, nil);
426 } 426 }
427 else { 427 else {
428 NSString *message = dataResult[@"message"]; 428 NSString *message = dataResult[@"message"];
429 if (message == nil) { 429 if (message == nil) {
430 message = @"Unknown error"; 430 message = @"Unknown error";
431 } 431 }
432 432
433 if ([message isEqualToString:@"Token is invalid"]) { 433 if ([message isEqualToString:@"Token is invalid"]) {
434 [self performSelectorOnMainThread:@selector(checkToken) withObject:nil waitUntilDone:YES]; 434 [self performSelectorOnMainThread:@selector(checkToken) withObject:nil waitUntilDone:YES];
435 NSString *tokenNew = [[NSUserDefaults standardUserDefaults] objectForKey:kToken]; 435 NSString *tokenNew = [[NSUserDefaults standardUserDefaults] objectForKey:kToken];
436 [self requestHistory:tokenNew atDate:date withType:type andMode:mode CompletionHandler:completion]; 436 [self requestHistory:tokenNew atDate:date withType:type andMode:mode CompletionHandler:completion];
437 } 437 }
438 else { 438 else {
439 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 439 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
440 completion(nil, errorObject); 440 completion(nil, errorObject);
441 } 441 }
442 } 442 }
443 } 443 }
444 else 444 else
445 { 445 {
446 completion(nil, error); 446 completion(nil, error);
447 } 447 }
448 }]; 448 }];
449 } 449 }
450 450
451 - (void) requestHistoryGraph:(NSString *)token withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryGraphObject *, NSError *)) completion { 451 - (void) requestHistoryGraph:(NSString *)token withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryGraphObject *, NSError *)) completion {
452 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/history/graph/%@/%d", [self convertIntToString:type], mode]; 452 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/history/graph/%@/%d", [self convertIntToString:type], mode];
453 NSLog(@"requestHistoryGraph link %@", url); 453 NSLog(@"requestHistoryGraph link %@", url);
454 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) { 454 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) {
455 455
456 if (completion == NULL) { 456 if (completion == NULL) {
457 return ; 457 return ;
458 } 458 }
459 459
460 if (error == nil) 460 if (error == nil)
461 { 461 {
462 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 462 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
463 NSLog(@"%@", dataResult); 463 NSLog(@"%@", dataResult);
464 int status = [dataResult[@"status"] intValue]; 464 int status = [dataResult[@"status"] intValue];
465 if (status == 1) { // status = 1 success 465 if (status == 1) { // status = 1 success
466 HistoryGraphObject * object = [[HistoryGraphObject alloc] initWithData:dataResult[@"result"]]; 466 HistoryGraphObject * object = [[HistoryGraphObject alloc] initWithData:dataResult[@"result"]];
467 completion(object, nil); 467 completion(object, nil);
468 } 468 }
469 else { 469 else {
470 NSString *message = dataResult[@"message"]; 470 NSString *message = dataResult[@"message"];
471 if (message == nil) { 471 if (message == nil) {
472 message = @"Unknown error"; 472 message = @"Unknown error";
473 } 473 }
474 474
475 if ([message isEqualToString:@"Token is invalid"]) { 475 if ([message isEqualToString:@"Token is invalid"]) {
476 [self performSelectorOnMainThread:@selector(checkToken) withObject:nil waitUntilDone:YES]; 476 [self performSelectorOnMainThread:@selector(checkToken) withObject:nil waitUntilDone:YES];
477 NSString *tokenNew = [[NSUserDefaults standardUserDefaults] objectForKey:kToken]; 477 NSString *tokenNew = [[NSUserDefaults standardUserDefaults] objectForKey:kToken];
478 [self requestHistoryGraph:tokenNew withType:type andMode:mode CompletionHandler:completion]; 478 [self requestHistoryGraph:tokenNew withType:type andMode:mode CompletionHandler:completion];
479 } 479 }
480 else { 480 else {
481 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 481 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
482 completion(nil, errorObject); 482 completion(nil, errorObject);
483 } 483 }
484 } 484 }
485 } 485 }
486 else 486 else
487 { 487 {
488 completion(nil, error); 488 completion(nil, error);
489 } 489 }
490 }]; 490 }];
491 } 491 }
492 492
493 - (void) requestHistoryList:(NSString *)token withType:(int)type andMode:(int) mode AtPage:(int) page CompletionHandler:(void (^)(NSArray *, NSError *)) completion { 493 - (void) requestHistoryList:(NSString *)token withType:(int)type andMode:(int) mode AtPage:(int) page CompletionHandler:(void (^)(NSArray *, NSError *)) completion {
494 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/history/list/%@/%d?page=%d&record=50", [self convertIntToString:type], mode, page]; 494 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/history/list/%@/%d?page=%d&record=50", [self convertIntToString:type], mode, page];
495 NSLog(@"requestHistoryList link %@", url); 495 NSLog(@"requestHistoryList link %@", url);
496 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) { 496 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) {
497 497
498 if (completion == NULL) { 498 if (completion == NULL) {
499 return ; 499 return ;
500 } 500 }
501 501
502 if (error == nil) 502 if (error == nil)
503 { 503 {
504 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 504 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
505 NSLog(@"%@", dataResult); 505 NSLog(@"%@", dataResult);
506 int status = [dataResult[@"status"] intValue]; 506 int status = [dataResult[@"status"] intValue];
507 if (status == 1) { // status = 1 success 507 if (status == 1) { // status = 1 success
508 if(dataResult[@"result"] != nil) { 508 if(dataResult[@"result"] != nil) {
509 NSArray * array = dataResult[@"result"][@"data"]; 509 NSArray * array = dataResult[@"result"][@"data"];
510 NSMutableArray * arrayHistory = [[NSMutableArray alloc] init]; 510 NSMutableArray * arrayHistory = [[NSMutableArray alloc] init];
511 for(NSDictionary * dict in array) { 511 for(NSDictionary * dict in array) {
512 HistoryObject * object = [[HistoryObject alloc] initWithData:dict]; 512 HistoryObject * object = [[HistoryObject alloc] initWithData:dict];
513 [arrayHistory addObject:object]; 513 [arrayHistory addObject:object];
514 } 514 }
515 completion(arrayHistory, nil); 515 completion(arrayHistory, nil);
516 } 516 }
517 else { 517 else {
518 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}]; 518 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}];
519 completion(nil, errorObject); 519 completion(nil, errorObject);
520 } 520 }
521 } 521 }
522 else { 522 else {
523 NSString *message = dataResult[@"message"]; 523 NSString *message = dataResult[@"message"];
524 if (message == nil) { 524 if (message == nil) {
525 message = @"Unknown error"; 525 message = @"Unknown error";
526 } 526 }
527 527
528 if ([message isEqualToString:@"Token is invalid"]) { 528 if ([message isEqualToString:@"Token is invalid"]) {
529 [self performSelectorOnMainThread:@selector(checkToken) withObject:nil waitUntilDone:YES]; 529 [self performSelectorOnMainThread:@selector(checkToken) withObject:nil waitUntilDone:YES];
530 NSString *tokenNew = [[NSUserDefaults standardUserDefaults] objectForKey:kToken]; 530 NSString *tokenNew = [[NSUserDefaults standardUserDefaults] objectForKey:kToken];
531 [self requestHistoryList:tokenNew withType:type andMode:mode AtPage:page CompletionHandler:completion]; 531 [self requestHistoryList:tokenNew withType:type andMode:mode AtPage:page CompletionHandler:completion];
532 } 532 }
533 else { 533 else {
534 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 534 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
535 completion(nil, errorObject); 535 completion(nil, errorObject);
536 } 536 }
537 } 537 }
538 } 538 }
539 else 539 else
540 { 540 {
541 completion(nil, error); 541 completion(nil, error);
542 } 542 }
543 }]; 543 }];
544 } 544 }
545 545
546 #pragma mark - SNS Screen Function 546 #pragma mark - SNS Screen Function
547 - (void) requestTweetsList:(NSString *)token groupID: (int) groupID withPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion { 547 - (void) requestTweetsList:(NSString *)token groupID: (int) groupID withPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion {
548 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/sns/%d", page]; 548 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/sns/%d", page];
549 if(groupID > -1) { 549 if(groupID > -1) {
550 url = [kServerAddress stringByAppendingFormat:@"api/tweet/list?group_id=%d&page=%d&record=10", groupID, page]; 550 url = [kServerAddress stringByAppendingFormat:@"api/tweet/list?group_id=%d&page=%d&record=10", groupID, page];
551 } 551 }
552 NSLog(@"requestTweetsList link %@", url); 552 NSLog(@"requestTweetsList link %@", url);
553 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) { 553 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) {
554 554
555 if (completion == NULL) { 555 if (completion == NULL) {
556 return ; 556 return ;
557 } 557 }
558 558
559 if (error == nil) 559 if (error == nil)
560 { 560 {
561 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 561 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
562 NSLog(@"%@", dataResult); 562 NSLog(@"%@", dataResult);
563 int status = [dataResult[@"status"] intValue]; 563 int status = [dataResult[@"status"] intValue];
564 if (status == 1) { // status = 1 success 564 if (status == 1) { // status = 1 success
565 if(dataResult[@"result"] != nil) { 565 if(dataResult[@"result"] != nil) {
566 NSArray * array = dataResult[@"result"]; 566 NSArray * array = dataResult[@"result"];
567 NSMutableArray * arrayTweets = [[NSMutableArray alloc] init]; 567 NSMutableArray * arrayTweets = [[NSMutableArray alloc] init];
568 for(NSDictionary * dict in array) { 568 for(NSDictionary * dict in array) {
569 TweetObject * object = [[TweetObject alloc] initWithData:dict]; 569 TweetObject * object = [[TweetObject alloc] initWithData:dict];
570 [arrayTweets addObject:object]; 570 [arrayTweets addObject:object];
571 } 571 }
572 completion(arrayTweets, nil); 572 completion(arrayTweets, nil);
573 } 573 }
574 else { 574 else {
575 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}]; 575 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}];
576 completion(nil, errorObject); 576 completion(nil, errorObject);
577 } 577 }
578 } 578 }
579 else { 579 else {
580 NSString *message = dataResult[@"message"]; 580 NSString *message = dataResult[@"message"];
581 if (message == nil) { 581 if (message == nil) {
582 message = @"Unknown error"; 582 message = @"Unknown error";
583 } 583 }
584 584
585 if ([message isEqualToString:@"Token is invalid"]) { 585 if ([message isEqualToString:@"Token is invalid"]) {
586 [self performSelectorOnMainThread:@selector(checkToken) withObject:nil waitUntilDone:YES]; 586 [self performSelectorOnMainThread:@selector(checkToken) withObject:nil waitUntilDone:YES];
587 NSString *tokenNew = [[NSUserDefaults standardUserDefaults] objectForKey:kToken]; 587 NSString *tokenNew = [[NSUserDefaults standardUserDefaults] objectForKey:kToken];
588 [self requestTweetsList:tokenNew groupID:groupID withPage:page CompletionHandler:completion]; 588 [self requestTweetsList:tokenNew groupID:groupID withPage:page CompletionHandler:completion];
589 } 589 }
590 else { 590 else {
591 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 591 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
592 completion(nil, errorObject); 592 completion(nil, errorObject);
593 } 593 }
594 } 594 }
595 } 595 }
596 else 596 else
597 { 597 {
598 completion(nil, error); 598 completion(nil, error);
599 } 599 }
600 }]; 600 }];
601 } 601 }
602 602
603 - (void) searchGroup:(NSString *)token withKey:(NSString *)key andPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion { 603 - (void) searchGroup:(NSString *)token withKey:(NSString *)key andPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion {
604 NSString *url = [kServerAddress stringByAppendingFormat:@"api/sns/group/search"]; 604 NSString *url = [kServerAddress stringByAppendingFormat:@"api/sns/group/search"];
605 NSLog(@"searchGroup link %@ page %d", url, page); 605 NSLog(@"searchGroup link %@ page %d", url, page);
606 if(searchTask != nil) { 606 if(searchTask != nil) {
607 [searchTask cancel]; 607 [searchTask cancel];
608 } 608 }
609 609
610 searchTask = [self _request:url method:@"POST" token:token paras:@{@"keyword":key, @"page": [NSNumber numberWithInt:page]} completion:^(NSData *data, NSError *error) { 610 searchTask = [self _request:url method:@"POST" token:token paras:@{@"keyword":key, @"page": [NSNumber numberWithInt:page]} completion:^(NSData *data, NSError *error) {
611 searchTask = nil; 611 searchTask = nil;
612 if (completion == NULL) { 612 if (completion == NULL) {
613 return ; 613 return ;
614 } 614 }
615 615
616 if (error == nil) 616 if (error == nil)
617 { 617 {
618 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 618 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
619 NSLog(@"%@", dataResult); 619 NSLog(@"%@", dataResult);
620 int status = [dataResult[@"status"] intValue]; 620 int status = [dataResult[@"status"] intValue];
621 if (status == 1) { // status = 1 success 621 if (status == 1) { // status = 1 success
622 if(dataResult[@"result"] != nil) { 622 if(dataResult[@"result"] != nil) {
623 NSArray * array = dataResult[@"result"]; 623 NSArray * array = dataResult[@"result"];
624 NSMutableArray * arrayTweets = [[NSMutableArray alloc] init]; 624 NSMutableArray * arrayTweets = [[NSMutableArray alloc] init];
625 for(NSDictionary * dict in array) { 625 for(NSDictionary * dict in array) {
626 GroupObject * object = [[GroupObject alloc] initWithData:dict]; 626 GroupObject * object = [[GroupObject alloc] initWithData:dict];
627 [arrayTweets addObject:object]; 627 [arrayTweets addObject:object];
628 } 628 }
629 completion(arrayTweets, nil); 629 completion(arrayTweets, nil);
630 } 630 }
631 else { 631 else {
632 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}]; 632 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}];
633 completion(nil, errorObject); 633 completion(nil, errorObject);
634 } 634 }
635 } 635 }
636 else { 636 else {
637 NSString *message = dataResult[@"message"]; 637 NSString *message = dataResult[@"message"];
638 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 638 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
639 completion(nil, errorObject); 639 completion(nil, errorObject);
640 } 640 }
641 } 641 }
642 else 642 else
643 { 643 {
644 completion(nil, error); 644 completion(nil, error);
645 } 645 }
646 }]; 646 }];
647 } 647 }
648 648
649 #pragma mark - Group Function 649 #pragma mark - Group Function
650 - (void) getGroupDetail:(NSString *)token withGroupID:(int)groupID CompletionHandler:(void (^)(GroupObject *, NSError *)) completion { 650 - (void) getGroupDetail:(NSString *)token withGroupID:(int)groupID CompletionHandler:(void (^)(GroupObject *, NSError *)) completion {
651 NSString *url = [kServerAddress stringByAppendingFormat:@"api/sns/group/detail/%d", groupID]; 651 NSString *url = [kServerAddress stringByAppendingFormat:@"api/sns/group/detail/%d", groupID];
652 NSLog(@"getGroupDetail link %@", url); 652 NSLog(@"getGroupDetail link %@", url);
653 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) { 653 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) {
654 654
655 if (completion == NULL) { 655 if (completion == NULL) {
656 return ; 656 return ;
657 } 657 }
658 658
659 if (error == nil) 659 if (error == nil)
660 { 660 {
661 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 661 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
662 NSLog(@"%@", dataResult); 662 NSLog(@"%@", dataResult);
663 int status = [dataResult[@"status"] intValue]; 663 int status = [dataResult[@"status"] intValue];
664 if (status == 1) { // status = 1 success 664 if (status == 1) { // status = 1 success
665 if(dataResult[@"result"] != nil) { 665 if(dataResult[@"result"] != nil) {
666 NSArray * array = dataResult[@"result"]; 666 NSArray * array = dataResult[@"result"];
667 GroupObject * object = [[GroupObject alloc] initWithData:array[0]]; 667 GroupObject * object = [[GroupObject alloc] initWithData:array[0]];
668 completion(object, nil); 668 completion(object, nil);
669 } 669 }
670 else { 670 else {
671 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}]; 671 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}];
672 completion(nil, errorObject); 672 completion(nil, errorObject);
673 } 673 }
674 } 674 }
675 else { 675 else {
676 NSString *message = dataResult[@"message"]; 676 NSString *message = dataResult[@"message"];
677 if (message == nil) { 677 if (message == nil) {
678 message = @"Unknown error"; 678 message = @"Unknown error";
679 } 679 }
680 680
681 if ([message isEqualToString:@"Token is invalid"]) { 681 if ([message isEqualToString:@"Token is invalid"]) {
682 [self performSelectorOnMainThread:@selector(checkToken) withObject:nil waitUntilDone:YES]; 682 [self performSelectorOnMainThread:@selector(checkToken) withObject:nil waitUntilDone:YES];
683 NSString *tokenNew = [[NSUserDefaults standardUserDefaults] objectForKey:kToken]; 683 NSString *tokenNew = [[NSUserDefaults standardUserDefaults] objectForKey:kToken];
684 [self getGroupDetail:tokenNew withGroupID:groupID CompletionHandler:completion]; 684 [self getGroupDetail:tokenNew withGroupID:groupID CompletionHandler:completion];
685 } 685 }
686 else { 686 else {
687 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 687 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
688 completion(nil, errorObject); 688 completion(nil, errorObject);
689 } 689 }
690 } 690 }
691 } 691 }
692 else 692 else
693 { 693 {
694 completion(nil, error); 694 completion(nil, error);
695 } 695 }
696 }]; 696 }];
697 } 697 }
698 698
699 - (void) requestMemberList:(NSString *)token groupID: (int) groupID withPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion {
700 NSString *url = [kServerAddress stringByAppendingFormat:@"api/sns/group/member/%d/%d", groupID, page];
701 NSLog(@"requestMemberList link %@ page %d", url, page);
702
703 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) {
704 if (completion == NULL) {
705 return ;
706 }
707
708 if (error == nil)
709 {
710 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
711 NSLog(@"%@", dataResult);
712 int status = [dataResult[@"status"] intValue];
713 if (status == 1) { // status = 1 success
714 if(dataResult[@"result"] != nil) {
715 NSArray * array = dataResult[@"result"];
716 NSMutableArray * arrayTweets = [[NSMutableArray alloc] init];
717 for(NSDictionary * dict in array) {
718 MemberObject * object = [[MemberObject alloc] initWithData:dict];
719 [arrayTweets addObject:object];
720 }
721 completion(arrayTweets, nil);
722 }
723 else {
724 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}];
725 completion(nil, errorObject);
726 }
727 }
728 else {
729 NSString *message = dataResult[@"message"];
730 if (message == nil) {
731 message = @"Unknown error";
732 }
733
734 if ([message isEqualToString:@"Token is invalid"]) {
735 [self performSelectorOnMainThread:@selector(checkToken) withObject:nil waitUntilDone:YES];
736 NSString *tokenNew = [[NSUserDefaults standardUserDefaults] objectForKey:kToken];
737 [self requestMemberList:tokenNew groupID:groupID withPage:page CompletionHandler:completion];
738 }
739 else {
740 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
741 completion(nil, errorObject);
742 }
743 }
744 }
745 else
746 {
747 completion(nil, error);
748 }
749 }];
750 }
751
752 - (void) requestJoinGroup:(NSString *)token groupID: (int) groupID CompletionHandler:(void (^)(NSError *)) completion {
753 NSString *url = [kServerAddress stringByAppendingFormat:@"api/sns/group/join"];
754 NSLog(@"requestJoinGroup link %@", url);
755
756 searchTask = [self _request:url method:@"POST" token:token paras:@{@"group_id": [NSNumber numberWithInt:groupID]} completion:^(NSData *data, NSError *error) {
757 searchTask = nil;
758 if (completion == NULL) {
759 return ;
760 }
761
762 if (error == nil)
763 {
764 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
765 NSLog(@"%@", dataResult);
766 int status = [dataResult[@"status"] intValue];
767 if (status == 1) { // status = 1 success
768 if(dataResult[@"result"] != nil) {
769 completion(nil);
770 }
771 else {
772 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}];
773 completion(errorObject);
774 }
775 }
776 else {
777 NSString *message = dataResult[@"message"];
778 if ([message isEqualToString:@"Token is invalid"]) {
779 [self performSelectorOnMainThread:@selector(checkToken) withObject:nil waitUntilDone:YES];
780 NSString *tokenNew = [[NSUserDefaults standardUserDefaults] objectForKey:kToken];
781 [self requestJoinGroup:tokenNew groupID:groupID CompletionHandler:completion];
782 }
783 else {
784 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
785 completion(errorObject);
786 }
787 }
788 }
789 else
790 {
791 completion(error);
792 }
793 }];
794 }
795
699 #pragma mark - Common API 796 #pragma mark - Common API
700 - (void)refreshToken: (NSString *)userID CompletionHandler:(void (^)(NSString *, NSError *))completion { 797 - (void)refreshToken: (NSString *)userID CompletionHandler:(void (^)(NSString *, NSError *))completion {
701 [self _request:[kServerAddress stringByAppendingFormat: @"refreshToken"] method:@"POST" token:@"" paras:@{@"userId":userID} completion:^(NSData *data, NSError *error) { 798 [self _request:[kServerAddress stringByAppendingFormat: @"refreshToken"] method:@"POST" token:@"" paras:@{@"userId":userID} completion:^(NSData *data, NSError *error) {
702 799
703 if (completion == NULL) { 800 if (completion == NULL) {
704 return ; 801 return ;
705 } 802 }
706 803
707 if (error == nil) 804 if (error == nil)
708 { 805 {
709 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 806 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
710 807
711 int status = [dataResult[@"status"] intValue]; 808 int status = [dataResult[@"status"] intValue];
712 if (status == 1) { // status = 1 success 809 if (status == 1) { // status = 1 success
713 NSArray *arrayResult = dataResult[@"result"]; 810 NSArray *arrayResult = dataResult[@"result"];
714 if (arrayResult.count > 0) { 811 if (arrayResult.count > 0) {
715 NSString *token = arrayResult[0]; 812 NSString *token = arrayResult[0];
716 completion(token, nil); 813 completion(token, nil);
717 } 814 }
718 else { 815 else {
719 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}]; 816 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}];
720 completion(nil, errorObject); 817 completion(nil, errorObject);
721 } 818 }
722 819
723 } 820 }
724 else { // status = 0 error 821 else { // status = 0 error
725 NSString *message = dataResult[@"message"]; 822 NSString *message = dataResult[@"message"];
726 if (message == nil) { 823 if (message == nil) {
727 message = @"Unknown error"; 824 message = @"Unknown error";
728 } 825 }
729 NSError *loginFaild = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 826 NSError *loginFaild = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
730 completion(nil, loginFaild); 827 completion(nil, loginFaild);
731 } 828 }
732 } 829 }
733 else 830 else
734 { 831 {
735 completion(nil, error); 832 completion(nil, error);
736 } 833 }
737 }]; 834 }];
738 } 835 }
739 836
740 #pragma mark - Private Function 837 #pragma mark - Private Function
741 - (void) checkToken { 838 - (void) checkToken {
742 // [[NSNotificationCenter defaultCenter] postNotificationName:kNotificationToken object:nil]; 839 // [[NSNotificationCenter defaultCenter] postNotificationName:kNotificationToken object:nil];
743 NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:kUser]; 840 NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:kUser];
744 User *user = (User *)[NSKeyedUnarchiver unarchiveObjectWithData:data]; 841 User *user = (User *)[NSKeyedUnarchiver unarchiveObjectWithData:data];
745 if (user != nil) { 842 if (user != nil) {
746 [self refreshToken:user.user_id CompletionHandler:^(NSString *token, NSError *error) { 843 [self refreshToken:user.user_id CompletionHandler:^(NSString *token, NSError *error) {
747 if (error == nil) { 844 if (error == nil) {
748 [[NSUserDefaults standardUserDefaults] setObject:token forKey:kToken]; 845 [[NSUserDefaults standardUserDefaults] setObject:token forKey:kToken];
749 [[NSUserDefaults standardUserDefaults] synchronize]; 846 [[NSUserDefaults standardUserDefaults] synchronize];
750 } 847 }
751 }]; 848 }];
752 } 849 }
753 } 850 }
754 - (NSData *) _encodeDictionary: (NSDictionary *) dictionary 851 - (NSData *) _encodeDictionary: (NSDictionary *) dictionary
755 { 852 {
756 NSMutableArray *parts = [[NSMutableArray alloc] init]; 853 NSMutableArray *parts = [[NSMutableArray alloc] init];
757 for (id key in dictionary) 854 for (id key in dictionary)
758 { 855 {
759 NSString *encodedValue = [[dictionary[key] description] urlencode]; 856 NSString *encodedValue = [[dictionary[key] description] urlencode];
760 NSString *encodedKey = [[key description] urlencode];//[[key description] stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]; 857 NSString *encodedKey = [[key description] urlencode];//[[key description] stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
761 NSString *part = [NSString stringWithFormat: @"%@=%@", encodedKey, encodedValue]; 858 NSString *part = [NSString stringWithFormat: @"%@=%@", encodedKey, encodedValue];
762 [parts addObject:part]; 859 [parts addObject:part];
763 } 860 }
764 NSString *encodedDictionary = [parts componentsJoinedByString:@"&"]; 861 NSString *encodedDictionary = [parts componentsJoinedByString:@"&"];
765 return [encodedDictionary dataUsingEncoding: NSUTF8StringEncoding]; 862 return [encodedDictionary dataUsingEncoding: NSUTF8StringEncoding];
766 } 863 }
767 864
768 - (NSURLSessionDataTask *) _request:(NSString *)address method:(NSString *)method token:(NSString *) token paras:(NSDictionary *)paras completion:(void (^)(NSData *data, NSError *error))completion 865 - (NSURLSessionDataTask *) _request:(NSString *)address method:(NSString *)method token:(NSString *) token paras:(NSDictionary *)paras completion:(void (^)(NSData *data, NSError *error))completion
769 { 866 {
770 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: [NSURL URLWithString:address]]; 867 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: [NSURL URLWithString:address]];
771 request.HTTPMethod = method; 868 request.HTTPMethod = method;
772 [request setValue: @"application/json" forHTTPHeaderField: @"Accept"]; 869 [request setValue: @"application/json" forHTTPHeaderField: @"Accept"];
773 [request setValue: @"application/json" forHTTPHeaderField: @"Content-Type"]; 870 [request setValue: @"application/json" forHTTPHeaderField: @"Content-Type"];
774 if(token != nil && ![token isEqual: @""]) { 871 if(token != nil && ![token isEqual: @""]) {
775 [request setValue: token forHTTPHeaderField: @"token"]; 872 [request setValue: token forHTTPHeaderField: @"token"];
776 } 873 }
777 [request setTimeoutInterval:self.timeOutInterval]; 874 [request setTimeoutInterval:self.timeOutInterval];
778 875
779 if (paras != nil) 876 if (paras != nil)
780 { 877 {
781 NSData *encodedData = [self _encodeDictionary: paras]; 878 NSData *encodedData = [self _encodeDictionary: paras];
782 [request setValue: [NSString stringWithFormat: @"%lu", (unsigned long) encodedData.length] forHTTPHeaderField: @"Content-Length"]; 879 [request setValue: [NSString stringWithFormat: @"%lu", (unsigned long) encodedData.length] forHTTPHeaderField: @"Content-Length"];
783 [request setValue: @"application/x-www-form-urlencoded charset=utf-8" forHTTPHeaderField: @"Content-Type"]; 880 [request setValue: @"application/x-www-form-urlencoded charset=utf-8" forHTTPHeaderField: @"Content-Type"];
784 [request setHTTPBody: encodedData]; 881 [request setHTTPBody: encodedData];
785 } 882 }
786 883
787 NSURLSession *session = [NSURLSession sharedSession]; 884 NSURLSession *session = [NSURLSession sharedSession];
788 NSURLSessionDataTask *task = [session dataTaskWithRequest:request 885 NSURLSessionDataTask *task = [session dataTaskWithRequest:request
789 completionHandler: 886 completionHandler:
790 ^(NSData *data, NSURLResponse *response, NSError *error) { 887 ^(NSData *data, NSURLResponse *response, NSError *error) {
791 if (completion == NULL) { 888 if (completion == NULL) {
792 return ; 889 return ;
793 } 890 }
794 if (error == nil) 891 if (error == nil)
795 { 892 {
796 completion(data, nil); 893 completion(data, nil);
797 } 894 }
798 else 895 else
799 { 896 {
800 completion(nil, error); 897 completion(nil, error);
801 } 898 }
802 }]; 899 }];
803 [task resume]; 900 [task resume];
804 return task; 901 return task;
805 } 902 }
806 903
807 -(void)waitUntilDone:(void(^)(void))waitBlock { 904 -(void)waitUntilDone:(void(^)(void))waitBlock {
808 //use your statement or call method here 905 //use your statement or call method here
809 if(waitBlock){ 906 if(waitBlock){
810 waitBlock(); 907 waitBlock();
811 } 908 }
812 } 909 }
813 910
814 @end 911 @end
815 912
LifeLog/LifeLog/TweetObject.h
1 // 1 //
2 // TweetObject.h 2 // TweetObject.h
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by nvtu on 8/11/17. 5 // Created by nvtu on 8/11/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import <Foundation/Foundation.h> 9 #import <Foundation/Foundation.h>
10 10
11 @interface TweetObject : NSObject 11 @interface TweetObject : NSObject
12 12
13 @property (nonatomic) int tweetID; 13 @property (nonatomic) int tweetID;
14 @property (nonatomic) int groupID; 14 @property (nonatomic) int groupID;
15 @property (nonatomic) int userID; 15 @property (nonatomic) int userID;
16 @property (nonatomic) float distance; 16 @property (nonatomic) float distance;
17 17
18 @property (nonatomic, strong) NSString * content; 18 @property (nonatomic, strong) NSString * content;
19 @property (nonatomic, strong) NSString * mode; 19 @property (nonatomic, strong) NSString * mode;
20 @property (nonatomic, strong) NSString * time; 20 @property (nonatomic, strong) NSString * time;
21 @property (nonatomic, strong) NSString * userName; 21 @property (nonatomic, strong) NSString * userName;
22 @property (nonatomic, strong) NSString * avatarLink; 22 @property (nonatomic, strong) NSString * avatar;
23 @property (nonatomic, strong) NSDate * createDate; 23 @property (nonatomic, strong) NSDate * createDate;
24 24
25 -(id) initWithData : (NSDictionary *) dict; 25 -(id) initWithData : (NSDictionary *) dict;
26 26
27 @end 27 @end
28 28
LifeLog/LifeLog/TweetObject.m
1 // 1 //
2 // TweetObject.m 2 // TweetObject.m
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by nvtu on 8/11/17. 5 // Created by nvtu on 8/11/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import "TweetObject.h" 9 #import "TweetObject.h"
10 #import "Utilities.h" 10 #import "Utilities.h"
11 11
12 @implementation TweetObject 12 @implementation TweetObject
13 13
14 -(id) initWithData : (NSDictionary *) dict { 14 -(id) initWithData : (NSDictionary *) dict {
15 if([dict objectForKey:@"id"] != nil) { 15 if([dict objectForKey:@"id"] != nil) {
16 self.tweetID = [dict[@"id"] intValue]; 16 self.tweetID = [dict[@"id"] intValue];
17 } 17 }
18 if([dict objectForKey:@"group_id"] != nil) { 18 if([dict objectForKey:@"group_id"] != nil) {
19 self.groupID = [dict[@"group_id"] intValue]; 19 self.groupID = [dict[@"group_id"] intValue];
20 } 20 }
21 if([dict objectForKey:@"tweet_content"] != nil) { 21 if([dict objectForKey:@"tweet_content"] != nil) {
22 self.content = dict[@"tweet_content"]; 22 self.content = dict[@"tweet_content"];
23 } 23 }
24 if([dict objectForKey:@"mode"] != nil) { 24 if([dict objectForKey:@"mode"] != nil) {
25 int modeInt = [dict[@"mode"] intValue]; 25 int modeInt = [dict[@"mode"] intValue];
26 switch (modeInt) { 26 switch (modeInt) {
27 case 2: 27 case 2:
28 self.mode = @"running"; 28 self.mode = @"running";
29 break; 29 break;
30 case 3: 30 case 3:
31 self.mode = @"bike"; 31 self.mode = @"bike";
32 break; 32 break;
33 default: 33 default:
34 self.mode = @"walking"; 34 self.mode = @"walking";
35 break; 35 break;
36 } 36 }
37 } 37 }
38 if([dict objectForKey:@"distance"] != nil) { 38 if([dict objectForKey:@"distance"] != nil) {
39 self.distance = [dict[@"distance"] floatValue]; 39 self.distance = [dict[@"distance"] floatValue];
40 } 40 }
41 if([dict objectForKey:@"time"] != nil) { 41 if([dict objectForKey:@"time"] != nil) {
42 self.time = dict[@"time"]; 42 self.time = dict[@"time"];
43 } 43 }
44 if([dict objectForKey:@"user_id"] != nil) { 44 if([dict objectForKey:@"user_id"] != nil) {
45 self.userID = [dict[@"user_id"] intValue]; 45 self.userID = [dict[@"user_id"] intValue];
46 } 46 }
47 if([dict objectForKey:@"user_created"] != nil) { 47 if([dict objectForKey:@"user_created"] != nil) {
48 self.userID = [dict[@"user_created"] intValue]; 48 self.userID = [dict[@"user_created"] intValue];
49 } 49 }
50 if([dict objectForKey:@"username"] != nil) { 50 if([dict objectForKey:@"username"] != nil) {
51 self.userName = dict[@"username"]; 51 self.userName = dict[@"username"];
52 } 52 }
53 if([dict objectForKey:@"full_name"] != nil) { 53 if([dict objectForKey:@"full_name"] != nil) {
54 self.userName = dict[@"full_name"]; 54 self.userName = dict[@"full_name"];
55 } 55 }
56 if([dict objectForKey:@"profile_image"] != nil) { 56 if([dict objectForKey:@"profile_image"] != nil) {
57 self.avatarLink = dict[@"profile_image"]; 57 self.avatar = dict[@"profile_image"];
58 } 58 }
59 if([dict objectForKey:@"created_at"] != nil) { 59 if([dict objectForKey:@"created_at"] != nil) {
60 NSString *dateString = dict[@"created_at"]; 60 NSString *dateString = dict[@"created_at"];
61 self.createDate = [Utilities dateFromString:dateString withFormat:@"yyyy-MM-dd hh:mm:ss"]; 61 self.createDate = [Utilities dateFromString:dateString withFormat:@"yyyy-MM-dd hh:mm:ss"];
62 } 62 }
63 else if([dict objectForKey:@"date_created"] != nil && [dict objectForKey:@"time_created"] != nil) { 63 else if([dict objectForKey:@"date_created"] != nil && [dict objectForKey:@"time_created"] != nil) {
64 NSString *dateString = dict[@"date_created"]; 64 NSString *dateString = dict[@"date_created"];
65 [dateString stringByAppendingString:@" "]; 65 [dateString stringByAppendingString:@" "];
66 [dateString stringByAppendingString:dict[@"time_created"]]; 66 [dateString stringByAppendingString:dict[@"time_created"]];
67 self.createDate = [Utilities dateFromString:dateString withFormat:@"yyyy-MM-dd hh:mm:ss"]; 67 self.createDate = [Utilities dateFromString:dateString withFormat:@"yyyy-MM-dd hh:mm:ss"];
68 } 68 }
69 else { 69 else {
70 self.createDate = [NSDate date]; 70 self.createDate = [NSDate date];
71 } 71 }
72 return self; 72 return self;
73 } 73 }
74 74
75 @end 75 @end
76 76