Commit 3b284106dee2ed153d5a4cf8b79b2072b127945f

Authored by nvtu11790@gmail.com
1 parent fa0d79042b

Add UI group detail and API load tweet of group

Showing 13 changed files with 359 additions and 5 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 6ECC40711F2A5FEB00AAEB97 /* NSDate+helper.m in Sources */ = {isa = PBXBuildFile; fileRef = 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */; }; 38 6ECC40711F2A5FEB00AAEB97 /* NSDate+helper.m in Sources */ = {isa = PBXBuildFile; fileRef = 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */; };
39 6EDC8BEE1F2C2FB800765ACC /* Utilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EDC8BED1F2C2FB800765ACC /* Utilities.m */; }; 39 6EDC8BEE1F2C2FB800765ACC /* Utilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EDC8BED1F2C2FB800765ACC /* Utilities.m */; };
40 6EDC8BF41F2C68D700765ACC /* CMMotionActivityExtra.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */; }; 40 6EDC8BF41F2C68D700765ACC /* CMMotionActivityExtra.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */; };
41 6EF1630A1F29069300DA306C /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6EF163091F29069300DA306C /* Localizable.strings */; }; 41 6EF1630A1F29069300DA306C /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6EF163091F29069300DA306C /* Localizable.strings */; };
42 9CA8AEEA1F31BB4600C5FC74 /* ConfirmForgetPassViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */; }; 42 9CA8AEEA1F31BB4600C5FC74 /* ConfirmForgetPassViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */; };
43 9CA8AEEB1F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */; }; 43 9CA8AEEB1F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */; };
44 9CBDA0FA1F2ECE2C0055DED1 /* BaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */; }; 44 9CBDA0FA1F2ECE2C0055DED1 /* BaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */; };
45 9CBDA0FF1F2F03810055DED1 /* RegisterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */; }; 45 9CBDA0FF1F2F03810055DED1 /* RegisterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */; };
46 9CBDA1001F2F03810055DED1 /* RegisterViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */; }; 46 9CBDA1001F2F03810055DED1 /* RegisterViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */; };
47 E933E66B1F3E04A6002926F5 /* SearchGroupViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E6691F3E04A6002926F5 /* SearchGroupViewController.m */; }; 47 E933E66B1F3E04A6002926F5 /* SearchGroupViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E6691F3E04A6002926F5 /* SearchGroupViewController.m */; };
48 E933E66C1F3E04A6002926F5 /* SearchGroupViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = E933E66A1F3E04A6002926F5 /* SearchGroupViewController.xib */; }; 48 E933E66C1F3E04A6002926F5 /* SearchGroupViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = E933E66A1F3E04A6002926F5 /* SearchGroupViewController.xib */; };
49 E933E6701F3E09B6002926F5 /* SearchGroupTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E66E1F3E09B6002926F5 /* SearchGroupTableViewCell.m */; }; 49 E933E6701F3E09B6002926F5 /* SearchGroupTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E66E1F3E09B6002926F5 /* SearchGroupTableViewCell.m */; };
50 E933E6711F3E09B6002926F5 /* SearchGroupTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E933E66F1F3E09B6002926F5 /* SearchGroupTableViewCell.xib */; }; 50 E933E6711F3E09B6002926F5 /* SearchGroupTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E933E66F1F3E09B6002926F5 /* SearchGroupTableViewCell.xib */; };
51 E933E6741F3E0E4E002926F5 /* GroupObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E6731F3E0E4E002926F5 /* GroupObject.m */; }; 51 E933E6741F3E0E4E002926F5 /* GroupObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E6731F3E0E4E002926F5 /* GroupObject.m */; };
52 E933E6791F40513C002926F5 /* GroupDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E6771F40513C002926F5 /* GroupDetailViewController.m */; };
53 E933E67A1F40513C002926F5 /* GroupDetailViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = E933E6781F40513C002926F5 /* GroupDetailViewController.xib */; };
52 E9373E471F3596940059355A /* AutoTransLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E461F3596940059355A /* AutoTransLabel.m */; }; 54 E9373E471F3596940059355A /* AutoTransLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E461F3596940059355A /* AutoTransLabel.m */; };
53 E9373E4A1F35AA180059355A /* HistoryObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E491F35AA180059355A /* HistoryObject.m */; }; 55 E9373E4A1F35AA180059355A /* HistoryObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E491F35AA180059355A /* HistoryObject.m */; };
54 E9373E4D1F361A230059355A /* HistoryGraphObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E4C1F361A230059355A /* HistoryGraphObject.m */; }; 56 E9373E4D1F361A230059355A /* HistoryGraphObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E4C1F361A230059355A /* HistoryGraphObject.m */; };
55 E9682E2E1F39675A00FE05A2 /* RankingTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */; }; 57 E9682E2E1F39675A00FE05A2 /* RankingTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */; };
56 E9682E2F1F39675A00FE05A2 /* RankingTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */; }; 58 E9682E2F1F39675A00FE05A2 /* RankingTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */; };
57 E968550A1F3C444900317CEF /* AutoTransButton.m in Sources */ = {isa = PBXBuildFile; fileRef = E96855091F3C444900317CEF /* AutoTransButton.m */; }; 59 E968550A1F3C444900317CEF /* AutoTransButton.m in Sources */ = {isa = PBXBuildFile; fileRef = E96855091F3C444900317CEF /* AutoTransButton.m */; };
58 E96855111F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */; }; 60 E96855111F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */; };
59 E96855121F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */; }; 61 E96855121F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */; };
60 E997E0261F3AB66500709FB1 /* Social.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E997E0251F3AB66500709FB1 /* Social.framework */; }; 62 E997E0261F3AB66500709FB1 /* Social.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E997E0251F3AB66500709FB1 /* Social.framework */; };
61 E99E13AB1F336F3600C78787 /* CollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = E99E13AA1F336F3600C78787 /* CollectionView.m */; }; 63 E99E13AB1F336F3600C78787 /* CollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = E99E13AA1F336F3600C78787 /* CollectionView.m */; };
62 E99E13AD1F336F4500C78787 /* CollectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = E99E13AC1F336F4500C78787 /* CollectionView.xib */; }; 64 E99E13AD1F336F4500C78787 /* CollectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = E99E13AC1F336F4500C78787 /* CollectionView.xib */; };
63 E99E13B11F33720600C78787 /* LabelCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */; }; 65 E99E13B11F33720600C78787 /* LabelCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */; };
64 E99E13B21F33720600C78787 /* LabelCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */; }; 66 E99E13B21F33720600C78787 /* LabelCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */; };
65 E9D909211F3D559D004CF99F /* TweetObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9D909201F3D559D004CF99F /* TweetObject.m */; }; 67 E9D909211F3D559D004CF99F /* TweetObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9D909201F3D559D004CF99F /* TweetObject.m */; };
66 E9D909241F3D6E8C004CF99F /* BaseTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E9D909231F3D6E8C004CF99F /* BaseTableViewController.m */; }; 68 E9D909241F3D6E8C004CF99F /* BaseTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E9D909231F3D6E8C004CF99F /* BaseTableViewController.m */; };
67 E9F73DCC1F338A0F004A3A6F /* HistoryListTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */; }; 69 E9F73DCC1F338A0F004A3A6F /* HistoryListTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */; };
68 E9F73DCD1F338A0F004A3A6F /* HistoryListTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */; }; 70 E9F73DCD1F338A0F004A3A6F /* HistoryListTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */; };
69 /* End PBXBuildFile section */ 71 /* End PBXBuildFile section */
70 72
71 /* Begin PBXContainerItemProxy section */ 73 /* Begin PBXContainerItemProxy section */
72 6E84E38B1F27A703001EB88E /* PBXContainerItemProxy */ = { 74 6E84E38B1F27A703001EB88E /* PBXContainerItemProxy */ = {
73 isa = PBXContainerItemProxy; 75 isa = PBXContainerItemProxy;
74 containerPortal = 6E84E3691F27A700001EB88E /* Project object */; 76 containerPortal = 6E84E3691F27A700001EB88E /* Project object */;
75 proxyType = 1; 77 proxyType = 1;
76 remoteGlobalIDString = 6E84E3701F27A700001EB88E; 78 remoteGlobalIDString = 6E84E3701F27A700001EB88E;
77 remoteInfo = LifeLog; 79 remoteInfo = LifeLog;
78 }; 80 };
79 6E84E3961F27A703001EB88E /* PBXContainerItemProxy */ = { 81 6E84E3961F27A703001EB88E /* PBXContainerItemProxy */ = {
80 isa = PBXContainerItemProxy; 82 isa = PBXContainerItemProxy;
81 containerPortal = 6E84E3691F27A700001EB88E /* Project object */; 83 containerPortal = 6E84E3691F27A700001EB88E /* Project object */;
82 proxyType = 1; 84 proxyType = 1;
83 remoteGlobalIDString = 6E84E3701F27A700001EB88E; 85 remoteGlobalIDString = 6E84E3701F27A700001EB88E;
84 remoteInfo = LifeLog; 86 remoteInfo = LifeLog;
85 }; 87 };
86 /* End PBXContainerItemProxy section */ 88 /* End PBXContainerItemProxy section */
87 89
88 /* Begin PBXFileReference section */ 90 /* Begin PBXFileReference section */
89 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>"; }; 91 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>"; };
90 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LifeLog.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 92 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LifeLog.framework; sourceTree = BUILT_PRODUCTS_DIR; };
91 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>"; }; 93 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>"; };
92 6E18CED01F2E39DB0029891F /* LoginViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoginViewController.h; sourceTree = "<group>"; }; 94 6E18CED01F2E39DB0029891F /* LoginViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoginViewController.h; sourceTree = "<group>"; };
93 6E18CED11F2E39DB0029891F /* LoginViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LoginViewController.m; sourceTree = "<group>"; }; 95 6E18CED11F2E39DB0029891F /* LoginViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LoginViewController.m; sourceTree = "<group>"; };
94 6E18CED21F2E39DB0029891F /* LoginViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LoginViewController.xib; sourceTree = "<group>"; }; 96 6E18CED21F2E39DB0029891F /* LoginViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LoginViewController.xib; sourceTree = "<group>"; };
95 6E18CED61F2E3C840029891F /* ServerAPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServerAPI.h; sourceTree = "<group>"; }; 97 6E18CED61F2E3C840029891F /* ServerAPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServerAPI.h; sourceTree = "<group>"; };
96 6E18CED71F2E3C840029891F /* ServerAPI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ServerAPI.m; sourceTree = "<group>"; }; 98 6E18CED71F2E3C840029891F /* ServerAPI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ServerAPI.m; sourceTree = "<group>"; };
97 6E18CEDA1F2E40F50029891F /* User.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = User.h; sourceTree = "<group>"; }; 99 6E18CEDA1F2E40F50029891F /* User.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = User.h; sourceTree = "<group>"; };
98 6E18CEDB1F2E40F50029891F /* User.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = User.m; sourceTree = "<group>"; }; 100 6E18CEDB1F2E40F50029891F /* User.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = User.m; sourceTree = "<group>"; };
99 6E18CEDD1F2E46570029891F /* Entities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Entities.h; sourceTree = "<group>"; }; 101 6E18CEDD1F2E46570029891F /* Entities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Entities.h; sourceTree = "<group>"; };
100 6E48AF0B1F2F9D3200C1D184 /* CustomTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomTextField.h; sourceTree = "<group>"; }; 102 6E48AF0B1F2F9D3200C1D184 /* CustomTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomTextField.h; sourceTree = "<group>"; };
101 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomTextField.m; sourceTree = "<group>"; }; 103 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomTextField.m; sourceTree = "<group>"; };
102 6E7F933A1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingCollectionView.h; sourceTree = "<group>"; }; 104 6E7F933A1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingCollectionView.h; sourceTree = "<group>"; };
103 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingCollectionView.m; sourceTree = "<group>"; }; 105 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingCollectionView.m; sourceTree = "<group>"; };
104 6E7F933C1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingScrollView.h; sourceTree = "<group>"; }; 106 6E7F933C1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingScrollView.h; sourceTree = "<group>"; };
105 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingScrollView.m; sourceTree = "<group>"; }; 107 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingScrollView.m; sourceTree = "<group>"; };
106 6E7F933E1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingTableView.h; sourceTree = "<group>"; }; 108 6E7F933E1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingTableView.h; sourceTree = "<group>"; };
107 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingTableView.m; sourceTree = "<group>"; }; 109 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingTableView.m; sourceTree = "<group>"; };
108 6E7F93401F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIScrollView+TPKeyboardAvoidingAdditions.h"; sourceTree = "<group>"; }; 110 6E7F93401F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIScrollView+TPKeyboardAvoidingAdditions.h"; sourceTree = "<group>"; };
109 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIScrollView+TPKeyboardAvoidingAdditions.m"; sourceTree = "<group>"; }; 111 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIScrollView+TPKeyboardAvoidingAdditions.m"; sourceTree = "<group>"; };
110 6E84E3711F27A700001EB88E /* LifeLog.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LifeLog.app; sourceTree = BUILT_PRODUCTS_DIR; }; 112 6E84E3711F27A700001EB88E /* LifeLog.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LifeLog.app; sourceTree = BUILT_PRODUCTS_DIR; };
111 6E84E3751F27A701001EB88E /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; }; 113 6E84E3751F27A701001EB88E /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
112 6E84E3771F27A701001EB88E /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; }; 114 6E84E3771F27A701001EB88E /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
113 6E84E3781F27A701001EB88E /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; }; 115 6E84E3781F27A701001EB88E /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
114 6E84E3801F27A701001EB88E /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; 116 6E84E3801F27A701001EB88E /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
115 6E84E3831F27A701001EB88E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; }; 117 6E84E3831F27A701001EB88E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
116 6E84E3851F27A701001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 118 6E84E3851F27A701001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
117 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LifeLogTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 119 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LifeLogTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
118 6E84E38E1F27A703001EB88E /* LifeLogTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LifeLogTests.m; sourceTree = "<group>"; }; 120 6E84E38E1F27A703001EB88E /* LifeLogTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LifeLogTests.m; sourceTree = "<group>"; };
119 6E84E3901F27A703001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 121 6E84E3901F27A703001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
120 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LifeLogUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 122 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LifeLogUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
121 6E84E3991F27A703001EB88E /* LifeLogUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LifeLogUITests.m; sourceTree = "<group>"; }; 123 6E84E3991F27A703001EB88E /* LifeLogUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LifeLogUITests.m; sourceTree = "<group>"; };
122 6E84E39B1F27A703001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 124 6E84E39B1F27A703001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
123 6E84E3AD1F27A975001EB88E /* HomeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HomeViewController.h; sourceTree = "<group>"; }; 125 6E84E3AD1F27A975001EB88E /* HomeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HomeViewController.h; sourceTree = "<group>"; };
124 6E84E3AE1F27A975001EB88E /* HomeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HomeViewController.m; sourceTree = "<group>"; }; 126 6E84E3AE1F27A975001EB88E /* HomeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HomeViewController.m; sourceTree = "<group>"; };
125 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HomeViewController.xib; sourceTree = "<group>"; }; 127 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HomeViewController.xib; sourceTree = "<group>"; };
126 6E84E3B21F27A98B001EB88E /* HistoryViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryViewController.h; sourceTree = "<group>"; }; 128 6E84E3B21F27A98B001EB88E /* HistoryViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryViewController.h; sourceTree = "<group>"; };
127 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryViewController.m; sourceTree = "<group>"; }; 129 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryViewController.m; sourceTree = "<group>"; };
128 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HistoryViewController.xib; sourceTree = "<group>"; }; 130 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HistoryViewController.xib; sourceTree = "<group>"; };
129 6E84E3B71F27A9A0001EB88E /* RankingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RankingViewController.h; sourceTree = "<group>"; }; 131 6E84E3B71F27A9A0001EB88E /* RankingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RankingViewController.h; sourceTree = "<group>"; };
130 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RankingViewController.m; sourceTree = "<group>"; }; 132 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RankingViewController.m; sourceTree = "<group>"; };
131 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RankingViewController.xib; sourceTree = "<group>"; }; 133 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RankingViewController.xib; sourceTree = "<group>"; };
132 6E84E3BC1F27A9B1001EB88E /* SNSViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SNSViewController.h; sourceTree = "<group>"; }; 134 6E84E3BC1F27A9B1001EB88E /* SNSViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SNSViewController.h; sourceTree = "<group>"; };
133 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SNSViewController.m; sourceTree = "<group>"; }; 135 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SNSViewController.m; sourceTree = "<group>"; };
134 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SNSViewController.xib; sourceTree = "<group>"; }; 136 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SNSViewController.xib; sourceTree = "<group>"; };
135 6E84E3C21F27ACAE001EB88E /* MapViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MapViewController.h; sourceTree = "<group>"; }; 137 6E84E3C21F27ACAE001EB88E /* MapViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MapViewController.h; sourceTree = "<group>"; };
136 6E84E3C31F27ACAE001EB88E /* MapViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MapViewController.m; sourceTree = "<group>"; }; 138 6E84E3C31F27ACAE001EB88E /* MapViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MapViewController.m; sourceTree = "<group>"; };
137 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MapViewController.xib; sourceTree = "<group>"; }; 139 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MapViewController.xib; sourceTree = "<group>"; };
138 6E8DA0F41F2BAC3400CCE941 /* TodayViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TodayViewController.h; sourceTree = "<group>"; }; 140 6E8DA0F41F2BAC3400CCE941 /* TodayViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TodayViewController.h; sourceTree = "<group>"; };
139 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TodayViewController.m; sourceTree = "<group>"; }; 141 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TodayViewController.m; sourceTree = "<group>"; };
140 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TodayViewController.xib; sourceTree = "<group>"; }; 142 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TodayViewController.xib; sourceTree = "<group>"; };
141 6ECC406F1F2A5FEB00AAEB97 /* NSDate+helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDate+helper.h"; sourceTree = "<group>"; }; 143 6ECC406F1F2A5FEB00AAEB97 /* NSDate+helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDate+helper.h"; sourceTree = "<group>"; };
142 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDate+helper.m"; sourceTree = "<group>"; }; 144 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDate+helper.m"; sourceTree = "<group>"; };
143 6EDC8BEC1F2C2FB800765ACC /* Utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Utilities.h; sourceTree = "<group>"; }; 145 6EDC8BEC1F2C2FB800765ACC /* Utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Utilities.h; sourceTree = "<group>"; };
144 6EDC8BED1F2C2FB800765ACC /* Utilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Utilities.m; sourceTree = "<group>"; }; 146 6EDC8BED1F2C2FB800765ACC /* Utilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Utilities.m; sourceTree = "<group>"; };
145 6EDC8BF21F2C68D700765ACC /* CMMotionActivityExtra.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CMMotionActivityExtra.h; sourceTree = "<group>"; }; 147 6EDC8BF21F2C68D700765ACC /* CMMotionActivityExtra.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CMMotionActivityExtra.h; sourceTree = "<group>"; };
146 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CMMotionActivityExtra.m; sourceTree = "<group>"; }; 148 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CMMotionActivityExtra.m; sourceTree = "<group>"; };
147 6EF163091F29069300DA306C /* Localizable.strings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; path = Localizable.strings; sourceTree = "<group>"; }; 149 6EF163091F29069300DA306C /* Localizable.strings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; path = Localizable.strings; sourceTree = "<group>"; };
148 9CA8AEE71F31BB4600C5FC74 /* ConfirmForgetPassViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfirmForgetPassViewController.h; sourceTree = "<group>"; }; 150 9CA8AEE71F31BB4600C5FC74 /* ConfirmForgetPassViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfirmForgetPassViewController.h; sourceTree = "<group>"; };
149 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ConfirmForgetPassViewController.m; sourceTree = "<group>"; }; 151 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ConfirmForgetPassViewController.m; sourceTree = "<group>"; };
150 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ConfirmForgetPassViewController.xib; sourceTree = "<group>"; }; 152 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ConfirmForgetPassViewController.xib; sourceTree = "<group>"; };
151 9CBDA0F81F2ECE2C0055DED1 /* BaseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseViewController.h; sourceTree = "<group>"; }; 153 9CBDA0F81F2ECE2C0055DED1 /* BaseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseViewController.h; sourceTree = "<group>"; };
152 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BaseViewController.m; sourceTree = "<group>"; }; 154 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BaseViewController.m; sourceTree = "<group>"; };
153 9CBDA0FC1F2F03810055DED1 /* RegisterViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegisterViewController.h; sourceTree = "<group>"; }; 155 9CBDA0FC1F2F03810055DED1 /* RegisterViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegisterViewController.h; sourceTree = "<group>"; };
154 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RegisterViewController.m; sourceTree = "<group>"; }; 156 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RegisterViewController.m; sourceTree = "<group>"; };
155 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RegisterViewController.xib; sourceTree = "<group>"; }; 157 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RegisterViewController.xib; sourceTree = "<group>"; };
156 E933E6681F3E04A6002926F5 /* SearchGroupViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SearchGroupViewController.h; sourceTree = "<group>"; }; 158 E933E6681F3E04A6002926F5 /* SearchGroupViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SearchGroupViewController.h; sourceTree = "<group>"; };
157 E933E6691F3E04A6002926F5 /* SearchGroupViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SearchGroupViewController.m; sourceTree = "<group>"; }; 159 E933E6691F3E04A6002926F5 /* SearchGroupViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SearchGroupViewController.m; sourceTree = "<group>"; };
158 E933E66A1F3E04A6002926F5 /* SearchGroupViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SearchGroupViewController.xib; sourceTree = "<group>"; }; 160 E933E66A1F3E04A6002926F5 /* SearchGroupViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SearchGroupViewController.xib; sourceTree = "<group>"; };
159 E933E66D1F3E09B6002926F5 /* SearchGroupTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SearchGroupTableViewCell.h; sourceTree = "<group>"; }; 161 E933E66D1F3E09B6002926F5 /* SearchGroupTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SearchGroupTableViewCell.h; sourceTree = "<group>"; };
160 E933E66E1F3E09B6002926F5 /* SearchGroupTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SearchGroupTableViewCell.m; sourceTree = "<group>"; }; 162 E933E66E1F3E09B6002926F5 /* SearchGroupTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SearchGroupTableViewCell.m; sourceTree = "<group>"; };
161 E933E66F1F3E09B6002926F5 /* SearchGroupTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SearchGroupTableViewCell.xib; sourceTree = "<group>"; }; 163 E933E66F1F3E09B6002926F5 /* SearchGroupTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SearchGroupTableViewCell.xib; sourceTree = "<group>"; };
162 E933E6721F3E0E4E002926F5 /* GroupObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GroupObject.h; sourceTree = "<group>"; }; 164 E933E6721F3E0E4E002926F5 /* GroupObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GroupObject.h; sourceTree = "<group>"; };
163 E933E6731F3E0E4E002926F5 /* GroupObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GroupObject.m; sourceTree = "<group>"; }; 165 E933E6731F3E0E4E002926F5 /* GroupObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GroupObject.m; sourceTree = "<group>"; };
166 E933E6761F40513C002926F5 /* GroupDetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GroupDetailViewController.h; sourceTree = "<group>"; };
167 E933E6771F40513C002926F5 /* GroupDetailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GroupDetailViewController.m; sourceTree = "<group>"; };
168 E933E6781F40513C002926F5 /* GroupDetailViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = GroupDetailViewController.xib; sourceTree = "<group>"; };
164 E9373E451F3596940059355A /* AutoTransLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoTransLabel.h; sourceTree = "<group>"; }; 169 E9373E451F3596940059355A /* AutoTransLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoTransLabel.h; sourceTree = "<group>"; };
165 E9373E461F3596940059355A /* AutoTransLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutoTransLabel.m; sourceTree = "<group>"; }; 170 E9373E461F3596940059355A /* AutoTransLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutoTransLabel.m; sourceTree = "<group>"; };
166 E9373E481F35AA180059355A /* HistoryObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryObject.h; sourceTree = "<group>"; }; 171 E9373E481F35AA180059355A /* HistoryObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryObject.h; sourceTree = "<group>"; };
167 E9373E491F35AA180059355A /* HistoryObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryObject.m; sourceTree = "<group>"; }; 172 E9373E491F35AA180059355A /* HistoryObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryObject.m; sourceTree = "<group>"; };
168 E9373E4B1F361A230059355A /* HistoryGraphObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryGraphObject.h; sourceTree = "<group>"; }; 173 E9373E4B1F361A230059355A /* HistoryGraphObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryGraphObject.h; sourceTree = "<group>"; };
169 E9373E4C1F361A230059355A /* HistoryGraphObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryGraphObject.m; sourceTree = "<group>"; }; 174 E9373E4C1F361A230059355A /* HistoryGraphObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryGraphObject.m; sourceTree = "<group>"; };
170 E9682E2B1F39675A00FE05A2 /* RankingTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RankingTableViewCell.h; sourceTree = "<group>"; }; 175 E9682E2B1F39675A00FE05A2 /* RankingTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RankingTableViewCell.h; sourceTree = "<group>"; };
171 E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RankingTableViewCell.m; sourceTree = "<group>"; }; 176 E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RankingTableViewCell.m; sourceTree = "<group>"; };
172 E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RankingTableViewCell.xib; sourceTree = "<group>"; }; 177 E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RankingTableViewCell.xib; sourceTree = "<group>"; };
173 E96855081F3C444900317CEF /* AutoTransButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoTransButton.h; sourceTree = "<group>"; }; 178 E96855081F3C444900317CEF /* AutoTransButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoTransButton.h; sourceTree = "<group>"; };
174 E96855091F3C444900317CEF /* AutoTransButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutoTransButton.m; sourceTree = "<group>"; }; 179 E96855091F3C444900317CEF /* AutoTransButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutoTransButton.m; sourceTree = "<group>"; };
175 E968550E1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SNSRecentTopicTableViewCell.h; sourceTree = "<group>"; }; 180 E968550E1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SNSRecentTopicTableViewCell.h; sourceTree = "<group>"; };
176 E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SNSRecentTopicTableViewCell.m; sourceTree = "<group>"; }; 181 E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SNSRecentTopicTableViewCell.m; sourceTree = "<group>"; };
177 E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SNSRecentTopicTableViewCell.xib; sourceTree = "<group>"; }; 182 E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SNSRecentTopicTableViewCell.xib; sourceTree = "<group>"; };
178 E997E0251F3AB66500709FB1 /* Social.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Social.framework; path = System/Library/Frameworks/Social.framework; sourceTree = SDKROOT; }; 183 E997E0251F3AB66500709FB1 /* Social.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Social.framework; path = System/Library/Frameworks/Social.framework; sourceTree = SDKROOT; };
179 E99E13A91F336F3600C78787 /* CollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CollectionView.h; sourceTree = "<group>"; }; 184 E99E13A91F336F3600C78787 /* CollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CollectionView.h; sourceTree = "<group>"; };
180 E99E13AA1F336F3600C78787 /* CollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CollectionView.m; sourceTree = "<group>"; }; 185 E99E13AA1F336F3600C78787 /* CollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CollectionView.m; sourceTree = "<group>"; };
181 E99E13AC1F336F4500C78787 /* CollectionView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CollectionView.xib; sourceTree = "<group>"; }; 186 E99E13AC1F336F4500C78787 /* CollectionView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CollectionView.xib; sourceTree = "<group>"; };
182 E99E13AE1F33720600C78787 /* LabelCollectionViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LabelCollectionViewCell.h; sourceTree = "<group>"; }; 187 E99E13AE1F33720600C78787 /* LabelCollectionViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LabelCollectionViewCell.h; sourceTree = "<group>"; };
183 E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LabelCollectionViewCell.m; sourceTree = "<group>"; }; 188 E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LabelCollectionViewCell.m; sourceTree = "<group>"; };
184 E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LabelCollectionViewCell.xib; sourceTree = "<group>"; }; 189 E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LabelCollectionViewCell.xib; sourceTree = "<group>"; };
185 E9D9091F1F3D559D004CF99F /* TweetObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TweetObject.h; sourceTree = "<group>"; }; 190 E9D9091F1F3D559D004CF99F /* TweetObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TweetObject.h; sourceTree = "<group>"; };
186 E9D909201F3D559D004CF99F /* TweetObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TweetObject.m; sourceTree = "<group>"; }; 191 E9D909201F3D559D004CF99F /* TweetObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TweetObject.m; sourceTree = "<group>"; };
187 E9D909221F3D6E8C004CF99F /* BaseTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseTableViewController.h; sourceTree = "<group>"; }; 192 E9D909221F3D6E8C004CF99F /* BaseTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseTableViewController.h; sourceTree = "<group>"; };
188 E9D909231F3D6E8C004CF99F /* BaseTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BaseTableViewController.m; sourceTree = "<group>"; }; 193 E9D909231F3D6E8C004CF99F /* BaseTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BaseTableViewController.m; sourceTree = "<group>"; };
189 E9F73DC91F338A0F004A3A6F /* HistoryListTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryListTableViewCell.h; sourceTree = "<group>"; }; 194 E9F73DC91F338A0F004A3A6F /* HistoryListTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryListTableViewCell.h; sourceTree = "<group>"; };
190 E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryListTableViewCell.m; sourceTree = "<group>"; }; 195 E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryListTableViewCell.m; sourceTree = "<group>"; };
191 E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HistoryListTableViewCell.xib; sourceTree = "<group>"; }; 196 E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HistoryListTableViewCell.xib; sourceTree = "<group>"; };
192 /* End PBXFileReference section */ 197 /* End PBXFileReference section */
193 198
194 /* Begin PBXFrameworksBuildPhase section */ 199 /* Begin PBXFrameworksBuildPhase section */
195 6E84E36E1F27A700001EB88E /* Frameworks */ = { 200 6E84E36E1F27A700001EB88E /* Frameworks */ = {
196 isa = PBXFrameworksBuildPhase; 201 isa = PBXFrameworksBuildPhase;
197 buildActionMask = 2147483647; 202 buildActionMask = 2147483647;
198 files = ( 203 files = (
199 E997E0261F3AB66500709FB1 /* Social.framework in Frameworks */, 204 E997E0261F3AB66500709FB1 /* Social.framework in Frameworks */,
200 011799F0F2B47D80472673CE /* Pods_LifeLog.framework in Frameworks */, 205 011799F0F2B47D80472673CE /* Pods_LifeLog.framework in Frameworks */,
201 ); 206 );
202 runOnlyForDeploymentPostprocessing = 0; 207 runOnlyForDeploymentPostprocessing = 0;
203 }; 208 };
204 6E84E3871F27A703001EB88E /* Frameworks */ = { 209 6E84E3871F27A703001EB88E /* Frameworks */ = {
205 isa = PBXFrameworksBuildPhase; 210 isa = PBXFrameworksBuildPhase;
206 buildActionMask = 2147483647; 211 buildActionMask = 2147483647;
207 files = ( 212 files = (
208 ); 213 );
209 runOnlyForDeploymentPostprocessing = 0; 214 runOnlyForDeploymentPostprocessing = 0;
210 }; 215 };
211 6E84E3921F27A703001EB88E /* Frameworks */ = { 216 6E84E3921F27A703001EB88E /* Frameworks */ = {
212 isa = PBXFrameworksBuildPhase; 217 isa = PBXFrameworksBuildPhase;
213 buildActionMask = 2147483647; 218 buildActionMask = 2147483647;
214 files = ( 219 files = (
215 ); 220 );
216 runOnlyForDeploymentPostprocessing = 0; 221 runOnlyForDeploymentPostprocessing = 0;
217 }; 222 };
218 /* End PBXFrameworksBuildPhase section */ 223 /* End PBXFrameworksBuildPhase section */
219 224
220 /* Begin PBXGroup section */ 225 /* Begin PBXGroup section */
221 020C1721B642EF36F31E1BB4 /* Frameworks */ = { 226 020C1721B642EF36F31E1BB4 /* Frameworks */ = {
222 isa = PBXGroup; 227 isa = PBXGroup;
223 children = ( 228 children = (
224 E997E0251F3AB66500709FB1 /* Social.framework */, 229 E997E0251F3AB66500709FB1 /* Social.framework */,
225 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */, 230 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */,
226 ); 231 );
227 name = Frameworks; 232 name = Frameworks;
228 sourceTree = "<group>"; 233 sourceTree = "<group>";
229 }; 234 };
230 6E18CECF1F2E398C0029891F /* Login */ = { 235 6E18CECF1F2E398C0029891F /* Login */ = {
231 isa = PBXGroup; 236 isa = PBXGroup;
232 children = ( 237 children = (
233 9CA8AEE61F31BB1200C5FC74 /* ConfirmForgetPass */, 238 9CA8AEE61F31BB1200C5FC74 /* ConfirmForgetPass */,
234 6E18CED01F2E39DB0029891F /* LoginViewController.h */, 239 6E18CED01F2E39DB0029891F /* LoginViewController.h */,
235 6E18CED11F2E39DB0029891F /* LoginViewController.m */, 240 6E18CED11F2E39DB0029891F /* LoginViewController.m */,
236 6E18CED21F2E39DB0029891F /* LoginViewController.xib */, 241 6E18CED21F2E39DB0029891F /* LoginViewController.xib */,
237 ); 242 );
238 name = Login; 243 name = Login;
239 sourceTree = "<group>"; 244 sourceTree = "<group>";
240 }; 245 };
241 6E18CED51F2E3C0E0029891F /* ServerAPI */ = { 246 6E18CED51F2E3C0E0029891F /* ServerAPI */ = {
242 isa = PBXGroup; 247 isa = PBXGroup;
243 children = ( 248 children = (
244 6E18CED61F2E3C840029891F /* ServerAPI.h */, 249 6E18CED61F2E3C840029891F /* ServerAPI.h */,
245 6E18CED71F2E3C840029891F /* ServerAPI.m */, 250 6E18CED71F2E3C840029891F /* ServerAPI.m */,
246 ); 251 );
247 name = ServerAPI; 252 name = ServerAPI;
248 sourceTree = "<group>"; 253 sourceTree = "<group>";
249 }; 254 };
250 6E18CED91F2E40AE0029891F /* Model */ = { 255 6E18CED91F2E40AE0029891F /* Model */ = {
251 isa = PBXGroup; 256 isa = PBXGroup;
252 children = ( 257 children = (
253 6E18CEDA1F2E40F50029891F /* User.h */, 258 6E18CEDA1F2E40F50029891F /* User.h */,
254 6E18CEDB1F2E40F50029891F /* User.m */, 259 6E18CEDB1F2E40F50029891F /* User.m */,
255 6E18CEDD1F2E46570029891F /* Entities.h */, 260 6E18CEDD1F2E46570029891F /* Entities.h */,
256 E9373E481F35AA180059355A /* HistoryObject.h */, 261 E9373E481F35AA180059355A /* HistoryObject.h */,
257 E9373E491F35AA180059355A /* HistoryObject.m */, 262 E9373E491F35AA180059355A /* HistoryObject.m */,
258 E9373E4B1F361A230059355A /* HistoryGraphObject.h */, 263 E9373E4B1F361A230059355A /* HistoryGraphObject.h */,
259 E9373E4C1F361A230059355A /* HistoryGraphObject.m */, 264 E9373E4C1F361A230059355A /* HistoryGraphObject.m */,
260 E9D9091F1F3D559D004CF99F /* TweetObject.h */, 265 E9D9091F1F3D559D004CF99F /* TweetObject.h */,
261 E9D909201F3D559D004CF99F /* TweetObject.m */, 266 E9D909201F3D559D004CF99F /* TweetObject.m */,
262 E933E6721F3E0E4E002926F5 /* GroupObject.h */, 267 E933E6721F3E0E4E002926F5 /* GroupObject.h */,
263 E933E6731F3E0E4E002926F5 /* GroupObject.m */, 268 E933E6731F3E0E4E002926F5 /* GroupObject.m */,
264 ); 269 );
265 name = Model; 270 name = Model;
266 sourceTree = "<group>"; 271 sourceTree = "<group>";
267 }; 272 };
268 6E7F93391F35870F00EFBC71 /* TPKeyboardAvoiding */ = { 273 6E7F93391F35870F00EFBC71 /* TPKeyboardAvoiding */ = {
269 isa = PBXGroup; 274 isa = PBXGroup;
270 children = ( 275 children = (
271 6E7F933A1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.h */, 276 6E7F933A1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.h */,
272 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */, 277 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */,
273 6E7F933C1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.h */, 278 6E7F933C1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.h */,
274 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */, 279 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */,
275 6E7F933E1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.h */, 280 6E7F933E1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.h */,
276 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */, 281 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */,
277 6E7F93401F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.h */, 282 6E7F93401F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.h */,
278 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */, 283 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */,
279 ); 284 );
280 name = TPKeyboardAvoiding; 285 name = TPKeyboardAvoiding;
281 sourceTree = "<group>"; 286 sourceTree = "<group>";
282 }; 287 };
283 6E84E3681F27A700001EB88E = { 288 6E84E3681F27A700001EB88E = {
284 isa = PBXGroup; 289 isa = PBXGroup;
285 children = ( 290 children = (
286 6E84E3731F27A700001EB88E /* LifeLog */, 291 6E84E3731F27A700001EB88E /* LifeLog */,
287 6E84E38D1F27A703001EB88E /* LifeLogTests */, 292 6E84E38D1F27A703001EB88E /* LifeLogTests */,
288 6E84E3981F27A703001EB88E /* LifeLogUITests */, 293 6E84E3981F27A703001EB88E /* LifeLogUITests */,
289 DE8269E957EA47CD771BAB33 /* Pods */, 294 DE8269E957EA47CD771BAB33 /* Pods */,
290 020C1721B642EF36F31E1BB4 /* Frameworks */, 295 020C1721B642EF36F31E1BB4 /* Frameworks */,
291 ); 296 );
292 sourceTree = "<group>"; 297 sourceTree = "<group>";
293 }; 298 };
294 6E84E3721F27A700001EB88E /* Products */ = { 299 6E84E3721F27A700001EB88E /* Products */ = {
295 isa = PBXGroup; 300 isa = PBXGroup;
296 children = ( 301 children = (
297 6E84E3711F27A700001EB88E /* LifeLog.app */, 302 6E84E3711F27A700001EB88E /* LifeLog.app */,
298 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */, 303 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */,
299 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */, 304 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */,
300 ); 305 );
301 name = Products; 306 name = Products;
302 sourceTree = "<group>"; 307 sourceTree = "<group>";
303 }; 308 };
304 6E84E3731F27A700001EB88E /* LifeLog */ = { 309 6E84E3731F27A700001EB88E /* LifeLog */ = {
305 isa = PBXGroup; 310 isa = PBXGroup;
306 children = ( 311 children = (
307 6E18CED91F2E40AE0029891F /* Model */, 312 6E18CED91F2E40AE0029891F /* Model */,
308 6E18CED51F2E3C0E0029891F /* ServerAPI */, 313 6E18CED51F2E3C0E0029891F /* ServerAPI */,
309 6EDC8BEB1F2C2F3300765ACC /* Common */, 314 6EDC8BEB1F2C2F3300765ACC /* Common */,
310 6ECC406D1F2A5FA500AAEB97 /* Library */, 315 6ECC406D1F2A5FA500AAEB97 /* Library */,
311 E99E13A71F336F0C00C78787 /* CustomView */, 316 E99E13A71F336F0C00C78787 /* CustomView */,
312 6E84E3A81F27A8A9001EB88E /* ViewControllers */, 317 6E84E3A81F27A8A9001EB88E /* ViewControllers */,
313 6E84E3A71F27A887001EB88E /* AppDelegate */, 318 6E84E3A71F27A887001EB88E /* AppDelegate */,
314 6E84E3801F27A701001EB88E /* Assets.xcassets */, 319 6E84E3801F27A701001EB88E /* Assets.xcassets */,
315 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */, 320 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */,
316 6E84E3851F27A701001EB88E /* Info.plist */, 321 6E84E3851F27A701001EB88E /* Info.plist */,
317 6E84E3741F27A701001EB88E /* Supporting Files */, 322 6E84E3741F27A701001EB88E /* Supporting Files */,
318 ); 323 );
319 path = LifeLog; 324 path = LifeLog;
320 sourceTree = "<group>"; 325 sourceTree = "<group>";
321 }; 326 };
322 6E84E3741F27A701001EB88E /* Supporting Files */ = { 327 6E84E3741F27A701001EB88E /* Supporting Files */ = {
323 isa = PBXGroup; 328 isa = PBXGroup;
324 children = ( 329 children = (
325 6E84E3751F27A701001EB88E /* main.m */, 330 6E84E3751F27A701001EB88E /* main.m */,
326 6EF163091F29069300DA306C /* Localizable.strings */, 331 6EF163091F29069300DA306C /* Localizable.strings */,
327 ); 332 );
328 name = "Supporting Files"; 333 name = "Supporting Files";
329 sourceTree = "<group>"; 334 sourceTree = "<group>";
330 }; 335 };
331 6E84E38D1F27A703001EB88E /* LifeLogTests */ = { 336 6E84E38D1F27A703001EB88E /* LifeLogTests */ = {
332 isa = PBXGroup; 337 isa = PBXGroup;
333 children = ( 338 children = (
334 6E84E38E1F27A703001EB88E /* LifeLogTests.m */, 339 6E84E38E1F27A703001EB88E /* LifeLogTests.m */,
335 6E84E3901F27A703001EB88E /* Info.plist */, 340 6E84E3901F27A703001EB88E /* Info.plist */,
336 ); 341 );
337 path = LifeLogTests; 342 path = LifeLogTests;
338 sourceTree = "<group>"; 343 sourceTree = "<group>";
339 }; 344 };
340 6E84E3981F27A703001EB88E /* LifeLogUITests */ = { 345 6E84E3981F27A703001EB88E /* LifeLogUITests */ = {
341 isa = PBXGroup; 346 isa = PBXGroup;
342 children = ( 347 children = (
343 6E84E3991F27A703001EB88E /* LifeLogUITests.m */, 348 6E84E3991F27A703001EB88E /* LifeLogUITests.m */,
344 6E84E39B1F27A703001EB88E /* Info.plist */, 349 6E84E39B1F27A703001EB88E /* Info.plist */,
345 ); 350 );
346 path = LifeLogUITests; 351 path = LifeLogUITests;
347 sourceTree = "<group>"; 352 sourceTree = "<group>";
348 }; 353 };
349 6E84E3A71F27A887001EB88E /* AppDelegate */ = { 354 6E84E3A71F27A887001EB88E /* AppDelegate */ = {
350 isa = PBXGroup; 355 isa = PBXGroup;
351 children = ( 356 children = (
352 6E84E3771F27A701001EB88E /* AppDelegate.h */, 357 6E84E3771F27A701001EB88E /* AppDelegate.h */,
353 6E84E3781F27A701001EB88E /* AppDelegate.m */, 358 6E84E3781F27A701001EB88E /* AppDelegate.m */,
354 ); 359 );
355 name = AppDelegate; 360 name = AppDelegate;
356 sourceTree = "<group>"; 361 sourceTree = "<group>";
357 }; 362 };
358 6E84E3A81F27A8A9001EB88E /* ViewControllers */ = { 363 6E84E3A81F27A8A9001EB88E /* ViewControllers */ = {
359 isa = PBXGroup; 364 isa = PBXGroup;
360 children = ( 365 children = (
361 9CBDA0F71F2ECDFD0055DED1 /* BaseViewController */, 366 9CBDA0F71F2ECDFD0055DED1 /* BaseViewController */,
362 9CBDA0FB1F2F03490055DED1 /* Register */, 367 9CBDA0FB1F2F03490055DED1 /* Register */,
363 6E18CECF1F2E398C0029891F /* Login */, 368 6E18CECF1F2E398C0029891F /* Login */,
364 6E84E3AC1F27A954001EB88E /* SNS */, 369 6E84E3AC1F27A954001EB88E /* SNS */,
365 6E84E3C11F27AC89001EB88E /* Map */, 370 6E84E3C11F27AC89001EB88E /* Map */,
366 6E84E3AB1F27A946001EB88E /* Ranking */, 371 6E84E3AB1F27A946001EB88E /* Ranking */,
367 6E84E3AA1F27A924001EB88E /* History */, 372 6E84E3AA1F27A924001EB88E /* History */,
368 6E84E3A91F27A915001EB88E /* Home */, 373 6E84E3A91F27A915001EB88E /* Home */,
369 ); 374 );
370 name = ViewControllers; 375 name = ViewControllers;
371 sourceTree = "<group>"; 376 sourceTree = "<group>";
372 }; 377 };
373 6E84E3A91F27A915001EB88E /* Home */ = { 378 6E84E3A91F27A915001EB88E /* Home */ = {
374 isa = PBXGroup; 379 isa = PBXGroup;
375 children = ( 380 children = (
376 6E8DA0F31F2BAC0800CCE941 /* Today */, 381 6E8DA0F31F2BAC0800CCE941 /* Today */,
377 6E84E3AD1F27A975001EB88E /* HomeViewController.h */, 382 6E84E3AD1F27A975001EB88E /* HomeViewController.h */,
378 6E84E3AE1F27A975001EB88E /* HomeViewController.m */, 383 6E84E3AE1F27A975001EB88E /* HomeViewController.m */,
379 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */, 384 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */,
380 ); 385 );
381 name = Home; 386 name = Home;
382 sourceTree = "<group>"; 387 sourceTree = "<group>";
383 }; 388 };
384 6E84E3AA1F27A924001EB88E /* History */ = { 389 6E84E3AA1F27A924001EB88E /* History */ = {
385 isa = PBXGroup; 390 isa = PBXGroup;
386 children = ( 391 children = (
387 6E84E3B21F27A98B001EB88E /* HistoryViewController.h */, 392 6E84E3B21F27A98B001EB88E /* HistoryViewController.h */,
388 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */, 393 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */,
389 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */, 394 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */,
390 E9F73DC91F338A0F004A3A6F /* HistoryListTableViewCell.h */, 395 E9F73DC91F338A0F004A3A6F /* HistoryListTableViewCell.h */,
391 E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */, 396 E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */,
392 E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */, 397 E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */,
393 ); 398 );
394 name = History; 399 name = History;
395 sourceTree = "<group>"; 400 sourceTree = "<group>";
396 }; 401 };
397 6E84E3AB1F27A946001EB88E /* Ranking */ = { 402 6E84E3AB1F27A946001EB88E /* Ranking */ = {
398 isa = PBXGroup; 403 isa = PBXGroup;
399 children = ( 404 children = (
400 6E84E3B71F27A9A0001EB88E /* RankingViewController.h */, 405 6E84E3B71F27A9A0001EB88E /* RankingViewController.h */,
401 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */, 406 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */,
402 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */, 407 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */,
403 E9682E2B1F39675A00FE05A2 /* RankingTableViewCell.h */, 408 E9682E2B1F39675A00FE05A2 /* RankingTableViewCell.h */,
404 E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */, 409 E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */,
405 E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */, 410 E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */,
406 ); 411 );
407 name = Ranking; 412 name = Ranking;
408 sourceTree = "<group>"; 413 sourceTree = "<group>";
409 }; 414 };
410 6E84E3AC1F27A954001EB88E /* SNS */ = { 415 6E84E3AC1F27A954001EB88E /* SNS */ = {
411 isa = PBXGroup; 416 isa = PBXGroup;
412 children = ( 417 children = (
418 E933E6751F4050E6002926F5 /* GrouDetail */,
413 E933E6671F3E0479002926F5 /* SeachGroup */, 419 E933E6671F3E0479002926F5 /* SeachGroup */,
414 6E84E3BC1F27A9B1001EB88E /* SNSViewController.h */, 420 6E84E3BC1F27A9B1001EB88E /* SNSViewController.h */,
415 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */, 421 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */,
416 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */, 422 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */,
417 E968550E1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.h */, 423 E968550E1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.h */,
418 E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */, 424 E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */,
419 E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */, 425 E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */,
420 ); 426 );
421 name = SNS; 427 name = SNS;
422 sourceTree = "<group>"; 428 sourceTree = "<group>";
423 }; 429 };
424 6E84E3C11F27AC89001EB88E /* Map */ = { 430 6E84E3C11F27AC89001EB88E /* Map */ = {
425 isa = PBXGroup; 431 isa = PBXGroup;
426 children = ( 432 children = (
427 6E84E3C21F27ACAE001EB88E /* MapViewController.h */, 433 6E84E3C21F27ACAE001EB88E /* MapViewController.h */,
428 6E84E3C31F27ACAE001EB88E /* MapViewController.m */, 434 6E84E3C31F27ACAE001EB88E /* MapViewController.m */,
429 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */, 435 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */,
430 ); 436 );
431 name = Map; 437 name = Map;
432 sourceTree = "<group>"; 438 sourceTree = "<group>";
433 }; 439 };
434 6E8DA0F31F2BAC0800CCE941 /* Today */ = { 440 6E8DA0F31F2BAC0800CCE941 /* Today */ = {
435 isa = PBXGroup; 441 isa = PBXGroup;
436 children = ( 442 children = (
437 6E8DA0F41F2BAC3400CCE941 /* TodayViewController.h */, 443 6E8DA0F41F2BAC3400CCE941 /* TodayViewController.h */,
438 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */, 444 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */,
439 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */, 445 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */,
440 ); 446 );
441 name = Today; 447 name = Today;
442 sourceTree = "<group>"; 448 sourceTree = "<group>";
443 }; 449 };
444 6ECC406D1F2A5FA500AAEB97 /* Library */ = { 450 6ECC406D1F2A5FA500AAEB97 /* Library */ = {
445 isa = PBXGroup; 451 isa = PBXGroup;
446 children = ( 452 children = (
447 6E7F93391F35870F00EFBC71 /* TPKeyboardAvoiding */, 453 6E7F93391F35870F00EFBC71 /* TPKeyboardAvoiding */,
448 6ECC406E1F2A5FB200AAEB97 /* Category */, 454 6ECC406E1F2A5FB200AAEB97 /* Category */,
449 ); 455 );
450 name = Library; 456 name = Library;
451 sourceTree = "<group>"; 457 sourceTree = "<group>";
452 }; 458 };
453 6ECC406E1F2A5FB200AAEB97 /* Category */ = { 459 6ECC406E1F2A5FB200AAEB97 /* Category */ = {
454 isa = PBXGroup; 460 isa = PBXGroup;
455 children = ( 461 children = (
456 6ECC406F1F2A5FEB00AAEB97 /* NSDate+helper.h */, 462 6ECC406F1F2A5FEB00AAEB97 /* NSDate+helper.h */,
457 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */, 463 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */,
458 ); 464 );
459 name = Category; 465 name = Category;
460 sourceTree = "<group>"; 466 sourceTree = "<group>";
461 }; 467 };
462 6EDC8BEB1F2C2F3300765ACC /* Common */ = { 468 6EDC8BEB1F2C2F3300765ACC /* Common */ = {
463 isa = PBXGroup; 469 isa = PBXGroup;
464 children = ( 470 children = (
465 6EDC8BEC1F2C2FB800765ACC /* Utilities.h */, 471 6EDC8BEC1F2C2FB800765ACC /* Utilities.h */,
466 6EDC8BED1F2C2FB800765ACC /* Utilities.m */, 472 6EDC8BED1F2C2FB800765ACC /* Utilities.m */,
467 6EDC8BF21F2C68D700765ACC /* CMMotionActivityExtra.h */, 473 6EDC8BF21F2C68D700765ACC /* CMMotionActivityExtra.h */,
468 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */, 474 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */,
469 ); 475 );
470 name = Common; 476 name = Common;
471 sourceTree = "<group>"; 477 sourceTree = "<group>";
472 }; 478 };
473 9CA8AEE61F31BB1200C5FC74 /* ConfirmForgetPass */ = { 479 9CA8AEE61F31BB1200C5FC74 /* ConfirmForgetPass */ = {
474 isa = PBXGroup; 480 isa = PBXGroup;
475 children = ( 481 children = (
476 9CA8AEE71F31BB4600C5FC74 /* ConfirmForgetPassViewController.h */, 482 9CA8AEE71F31BB4600C5FC74 /* ConfirmForgetPassViewController.h */,
477 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */, 483 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */,
478 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */, 484 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */,
479 ); 485 );
480 name = ConfirmForgetPass; 486 name = ConfirmForgetPass;
481 sourceTree = "<group>"; 487 sourceTree = "<group>";
482 }; 488 };
483 9CBDA0F71F2ECDFD0055DED1 /* BaseViewController */ = { 489 9CBDA0F71F2ECDFD0055DED1 /* BaseViewController */ = {
484 isa = PBXGroup; 490 isa = PBXGroup;
485 children = ( 491 children = (
486 9CBDA0F81F2ECE2C0055DED1 /* BaseViewController.h */, 492 9CBDA0F81F2ECE2C0055DED1 /* BaseViewController.h */,
487 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */, 493 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */,
488 6E48AF0B1F2F9D3200C1D184 /* CustomTextField.h */, 494 6E48AF0B1F2F9D3200C1D184 /* CustomTextField.h */,
489 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */, 495 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */,
490 E9D909221F3D6E8C004CF99F /* BaseTableViewController.h */, 496 E9D909221F3D6E8C004CF99F /* BaseTableViewController.h */,
491 E9D909231F3D6E8C004CF99F /* BaseTableViewController.m */, 497 E9D909231F3D6E8C004CF99F /* BaseTableViewController.m */,
492 ); 498 );
493 name = BaseViewController; 499 name = BaseViewController;
494 sourceTree = "<group>"; 500 sourceTree = "<group>";
495 }; 501 };
496 9CBDA0FB1F2F03490055DED1 /* Register */ = { 502 9CBDA0FB1F2F03490055DED1 /* Register */ = {
497 isa = PBXGroup; 503 isa = PBXGroup;
498 children = ( 504 children = (
499 9CBDA0FC1F2F03810055DED1 /* RegisterViewController.h */, 505 9CBDA0FC1F2F03810055DED1 /* RegisterViewController.h */,
500 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */, 506 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */,
501 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */, 507 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */,
502 ); 508 );
503 name = Register; 509 name = Register;
504 sourceTree = "<group>"; 510 sourceTree = "<group>";
505 }; 511 };
506 DE8269E957EA47CD771BAB33 /* Pods */ = { 512 DE8269E957EA47CD771BAB33 /* Pods */ = {
507 isa = PBXGroup; 513 isa = PBXGroup;
508 children = ( 514 children = (
509 6E84E3721F27A700001EB88E /* Products */, 515 6E84E3721F27A700001EB88E /* Products */,
510 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */, 516 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */,
511 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */, 517 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */,
512 ); 518 );
513 name = Pods; 519 name = Pods;
514 sourceTree = "<group>"; 520 sourceTree = "<group>";
515 }; 521 };
516 E933E6671F3E0479002926F5 /* SeachGroup */ = { 522 E933E6671F3E0479002926F5 /* SeachGroup */ = {
517 isa = PBXGroup; 523 isa = PBXGroup;
518 children = ( 524 children = (
519 E933E6681F3E04A6002926F5 /* SearchGroupViewController.h */, 525 E933E6681F3E04A6002926F5 /* SearchGroupViewController.h */,
520 E933E6691F3E04A6002926F5 /* SearchGroupViewController.m */, 526 E933E6691F3E04A6002926F5 /* SearchGroupViewController.m */,
521 E933E66A1F3E04A6002926F5 /* SearchGroupViewController.xib */, 527 E933E66A1F3E04A6002926F5 /* SearchGroupViewController.xib */,
522 E933E66D1F3E09B6002926F5 /* SearchGroupTableViewCell.h */, 528 E933E66D1F3E09B6002926F5 /* SearchGroupTableViewCell.h */,
523 E933E66E1F3E09B6002926F5 /* SearchGroupTableViewCell.m */, 529 E933E66E1F3E09B6002926F5 /* SearchGroupTableViewCell.m */,
524 E933E66F1F3E09B6002926F5 /* SearchGroupTableViewCell.xib */, 530 E933E66F1F3E09B6002926F5 /* SearchGroupTableViewCell.xib */,
525 ); 531 );
526 name = SeachGroup; 532 name = SeachGroup;
527 sourceTree = "<group>"; 533 sourceTree = "<group>";
528 }; 534 };
535 E933E6751F4050E6002926F5 /* GrouDetail */ = {
536 isa = PBXGroup;
537 children = (
538 E933E6761F40513C002926F5 /* GroupDetailViewController.h */,
539 E933E6771F40513C002926F5 /* GroupDetailViewController.m */,
540 E933E6781F40513C002926F5 /* GroupDetailViewController.xib */,
541 );
542 name = GrouDetail;
543 sourceTree = "<group>";
544 };
529 E9373E441F35966D0059355A /* AutoTranslateView */ = { 545 E9373E441F35966D0059355A /* AutoTranslateView */ = {
530 isa = PBXGroup; 546 isa = PBXGroup;
531 children = ( 547 children = (
532 E9373E451F3596940059355A /* AutoTransLabel.h */, 548 E9373E451F3596940059355A /* AutoTransLabel.h */,
533 E9373E461F3596940059355A /* AutoTransLabel.m */, 549 E9373E461F3596940059355A /* AutoTransLabel.m */,
534 E96855081F3C444900317CEF /* AutoTransButton.h */, 550 E96855081F3C444900317CEF /* AutoTransButton.h */,
535 E96855091F3C444900317CEF /* AutoTransButton.m */, 551 E96855091F3C444900317CEF /* AutoTransButton.m */,
536 ); 552 );
537 name = AutoTranslateView; 553 name = AutoTranslateView;
538 sourceTree = "<group>"; 554 sourceTree = "<group>";
539 }; 555 };
540 E99E13A71F336F0C00C78787 /* CustomView */ = { 556 E99E13A71F336F0C00C78787 /* CustomView */ = {
541 isa = PBXGroup; 557 isa = PBXGroup;
542 children = ( 558 children = (
543 E9373E441F35966D0059355A /* AutoTranslateView */, 559 E9373E441F35966D0059355A /* AutoTranslateView */,
544 E99E13A81F336F1700C78787 /* CollectionView */, 560 E99E13A81F336F1700C78787 /* CollectionView */,
545 ); 561 );
546 name = CustomView; 562 name = CustomView;
547 sourceTree = "<group>"; 563 sourceTree = "<group>";
548 }; 564 };
549 E99E13A81F336F1700C78787 /* CollectionView */ = { 565 E99E13A81F336F1700C78787 /* CollectionView */ = {
550 isa = PBXGroup; 566 isa = PBXGroup;
551 children = ( 567 children = (
552 E99E13AE1F33720600C78787 /* LabelCollectionViewCell.h */, 568 E99E13AE1F33720600C78787 /* LabelCollectionViewCell.h */,
553 E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */, 569 E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */,
554 E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */, 570 E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */,
555 E99E13A91F336F3600C78787 /* CollectionView.h */, 571 E99E13A91F336F3600C78787 /* CollectionView.h */,
556 E99E13AA1F336F3600C78787 /* CollectionView.m */, 572 E99E13AA1F336F3600C78787 /* CollectionView.m */,
557 E99E13AC1F336F4500C78787 /* CollectionView.xib */, 573 E99E13AC1F336F4500C78787 /* CollectionView.xib */,
558 ); 574 );
559 name = CollectionView; 575 name = CollectionView;
560 sourceTree = "<group>"; 576 sourceTree = "<group>";
561 }; 577 };
562 /* End PBXGroup section */ 578 /* End PBXGroup section */
563 579
564 /* Begin PBXNativeTarget section */ 580 /* Begin PBXNativeTarget section */
565 6E84E3701F27A700001EB88E /* LifeLog */ = { 581 6E84E3701F27A700001EB88E /* LifeLog */ = {
566 isa = PBXNativeTarget; 582 isa = PBXNativeTarget;
567 buildConfigurationList = 6E84E39E1F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLog" */; 583 buildConfigurationList = 6E84E39E1F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLog" */;
568 buildPhases = ( 584 buildPhases = (
569 2BB22CAEC0728AA1E086BCE3 /* [CP] Check Pods Manifest.lock */, 585 2BB22CAEC0728AA1E086BCE3 /* [CP] Check Pods Manifest.lock */,
570 6E84E36D1F27A700001EB88E /* Sources */, 586 6E84E36D1F27A700001EB88E /* Sources */,
571 6E84E36E1F27A700001EB88E /* Frameworks */, 587 6E84E36E1F27A700001EB88E /* Frameworks */,
572 6E84E36F1F27A700001EB88E /* Resources */, 588 6E84E36F1F27A700001EB88E /* Resources */,
573 22F89B11794CEB4E265996AC /* [CP] Embed Pods Frameworks */, 589 22F89B11794CEB4E265996AC /* [CP] Embed Pods Frameworks */,
574 96653BDB2C24A87C2866C897 /* [CP] Copy Pods Resources */, 590 96653BDB2C24A87C2866C897 /* [CP] Copy Pods Resources */,
575 ); 591 );
576 buildRules = ( 592 buildRules = (
577 ); 593 );
578 dependencies = ( 594 dependencies = (
579 ); 595 );
580 name = LifeLog; 596 name = LifeLog;
581 productName = LifeLog; 597 productName = LifeLog;
582 productReference = 6E84E3711F27A700001EB88E /* LifeLog.app */; 598 productReference = 6E84E3711F27A700001EB88E /* LifeLog.app */;
583 productType = "com.apple.product-type.application"; 599 productType = "com.apple.product-type.application";
584 }; 600 };
585 6E84E3891F27A703001EB88E /* LifeLogTests */ = { 601 6E84E3891F27A703001EB88E /* LifeLogTests */ = {
586 isa = PBXNativeTarget; 602 isa = PBXNativeTarget;
587 buildConfigurationList = 6E84E3A11F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogTests" */; 603 buildConfigurationList = 6E84E3A11F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogTests" */;
588 buildPhases = ( 604 buildPhases = (
589 6E84E3861F27A703001EB88E /* Sources */, 605 6E84E3861F27A703001EB88E /* Sources */,
590 6E84E3871F27A703001EB88E /* Frameworks */, 606 6E84E3871F27A703001EB88E /* Frameworks */,
591 6E84E3881F27A703001EB88E /* Resources */, 607 6E84E3881F27A703001EB88E /* Resources */,
592 ); 608 );
593 buildRules = ( 609 buildRules = (
594 ); 610 );
595 dependencies = ( 611 dependencies = (
596 6E84E38C1F27A703001EB88E /* PBXTargetDependency */, 612 6E84E38C1F27A703001EB88E /* PBXTargetDependency */,
597 ); 613 );
598 name = LifeLogTests; 614 name = LifeLogTests;
599 productName = LifeLogTests; 615 productName = LifeLogTests;
600 productReference = 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */; 616 productReference = 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */;
601 productType = "com.apple.product-type.bundle.unit-test"; 617 productType = "com.apple.product-type.bundle.unit-test";
602 }; 618 };
603 6E84E3941F27A703001EB88E /* LifeLogUITests */ = { 619 6E84E3941F27A703001EB88E /* LifeLogUITests */ = {
604 isa = PBXNativeTarget; 620 isa = PBXNativeTarget;
605 buildConfigurationList = 6E84E3A41F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogUITests" */; 621 buildConfigurationList = 6E84E3A41F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogUITests" */;
606 buildPhases = ( 622 buildPhases = (
607 6E84E3911F27A703001EB88E /* Sources */, 623 6E84E3911F27A703001EB88E /* Sources */,
608 6E84E3921F27A703001EB88E /* Frameworks */, 624 6E84E3921F27A703001EB88E /* Frameworks */,
609 6E84E3931F27A703001EB88E /* Resources */, 625 6E84E3931F27A703001EB88E /* Resources */,
610 ); 626 );
611 buildRules = ( 627 buildRules = (
612 ); 628 );
613 dependencies = ( 629 dependencies = (
614 6E84E3971F27A703001EB88E /* PBXTargetDependency */, 630 6E84E3971F27A703001EB88E /* PBXTargetDependency */,
615 ); 631 );
616 name = LifeLogUITests; 632 name = LifeLogUITests;
617 productName = LifeLogUITests; 633 productName = LifeLogUITests;
618 productReference = 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */; 634 productReference = 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */;
619 productType = "com.apple.product-type.bundle.ui-testing"; 635 productType = "com.apple.product-type.bundle.ui-testing";
620 }; 636 };
621 /* End PBXNativeTarget section */ 637 /* End PBXNativeTarget section */
622 638
623 /* Begin PBXProject section */ 639 /* Begin PBXProject section */
624 6E84E3691F27A700001EB88E /* Project object */ = { 640 6E84E3691F27A700001EB88E /* Project object */ = {
625 isa = PBXProject; 641 isa = PBXProject;
626 attributes = { 642 attributes = {
627 LastUpgradeCheck = 0830; 643 LastUpgradeCheck = 0830;
628 ORGANIZATIONNAME = PhongNV; 644 ORGANIZATIONNAME = PhongNV;
629 TargetAttributes = { 645 TargetAttributes = {
630 6E84E3701F27A700001EB88E = { 646 6E84E3701F27A700001EB88E = {
631 CreatedOnToolsVersion = 8.3.3; 647 CreatedOnToolsVersion = 8.3.3;
632 DevelopmentTeam = UXU4V3VUN4; 648 DevelopmentTeam = UXU4V3VUN4;
633 ProvisioningStyle = Automatic; 649 ProvisioningStyle = Automatic;
634 }; 650 };
635 6E84E3891F27A703001EB88E = { 651 6E84E3891F27A703001EB88E = {
636 CreatedOnToolsVersion = 8.3.3; 652 CreatedOnToolsVersion = 8.3.3;
637 ProvisioningStyle = Automatic; 653 ProvisioningStyle = Automatic;
638 TestTargetID = 6E84E3701F27A700001EB88E; 654 TestTargetID = 6E84E3701F27A700001EB88E;
639 }; 655 };
640 6E84E3941F27A703001EB88E = { 656 6E84E3941F27A703001EB88E = {
641 CreatedOnToolsVersion = 8.3.3; 657 CreatedOnToolsVersion = 8.3.3;
642 ProvisioningStyle = Automatic; 658 ProvisioningStyle = Automatic;
643 TestTargetID = 6E84E3701F27A700001EB88E; 659 TestTargetID = 6E84E3701F27A700001EB88E;
644 }; 660 };
645 }; 661 };
646 }; 662 };
647 buildConfigurationList = 6E84E36C1F27A700001EB88E /* Build configuration list for PBXProject "LifeLog" */; 663 buildConfigurationList = 6E84E36C1F27A700001EB88E /* Build configuration list for PBXProject "LifeLog" */;
648 compatibilityVersion = "Xcode 3.2"; 664 compatibilityVersion = "Xcode 3.2";
649 developmentRegion = English; 665 developmentRegion = English;
650 hasScannedForEncodings = 0; 666 hasScannedForEncodings = 0;
651 knownRegions = ( 667 knownRegions = (
652 en, 668 en,
653 Base, 669 Base,
654 ); 670 );
655 mainGroup = 6E84E3681F27A700001EB88E; 671 mainGroup = 6E84E3681F27A700001EB88E;
656 productRefGroup = 6E84E3721F27A700001EB88E /* Products */; 672 productRefGroup = 6E84E3721F27A700001EB88E /* Products */;
657 projectDirPath = ""; 673 projectDirPath = "";
658 projectRoot = ""; 674 projectRoot = "";
659 targets = ( 675 targets = (
660 6E84E3701F27A700001EB88E /* LifeLog */, 676 6E84E3701F27A700001EB88E /* LifeLog */,
661 6E84E3891F27A703001EB88E /* LifeLogTests */, 677 6E84E3891F27A703001EB88E /* LifeLogTests */,
662 6E84E3941F27A703001EB88E /* LifeLogUITests */, 678 6E84E3941F27A703001EB88E /* LifeLogUITests */,
663 ); 679 );
664 }; 680 };
665 /* End PBXProject section */ 681 /* End PBXProject section */
666 682
667 /* Begin PBXResourcesBuildPhase section */ 683 /* Begin PBXResourcesBuildPhase section */
668 6E84E36F1F27A700001EB88E /* Resources */ = { 684 6E84E36F1F27A700001EB88E /* Resources */ = {
669 isa = PBXResourcesBuildPhase; 685 isa = PBXResourcesBuildPhase;
670 buildActionMask = 2147483647; 686 buildActionMask = 2147483647;
671 files = ( 687 files = (
672 9CBDA1001F2F03810055DED1 /* RegisterViewController.xib in Resources */, 688 9CBDA1001F2F03810055DED1 /* RegisterViewController.xib in Resources */,
673 6E18CED41F2E39DB0029891F /* LoginViewController.xib in Resources */, 689 6E18CED41F2E39DB0029891F /* LoginViewController.xib in Resources */,
674 E99E13AD1F336F4500C78787 /* CollectionView.xib in Resources */, 690 E99E13AD1F336F4500C78787 /* CollectionView.xib in Resources */,
675 6E84E3BB1F27A9A0001EB88E /* RankingViewController.xib in Resources */, 691 6E84E3BB1F27A9A0001EB88E /* RankingViewController.xib in Resources */,
676 9CA8AEEB1F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib in Resources */, 692 9CA8AEEB1F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib in Resources */,
677 6E84E3C01F27A9B1001EB88E /* SNSViewController.xib in Resources */, 693 6E84E3C01F27A9B1001EB88E /* SNSViewController.xib in Resources */,
678 E9682E2F1F39675A00FE05A2 /* RankingTableViewCell.xib in Resources */, 694 E9682E2F1F39675A00FE05A2 /* RankingTableViewCell.xib in Resources */,
679 E933E6711F3E09B6002926F5 /* SearchGroupTableViewCell.xib in Resources */, 695 E933E6711F3E09B6002926F5 /* SearchGroupTableViewCell.xib in Resources */,
680 6E8DA0F81F2BAC3500CCE941 /* TodayViewController.xib in Resources */, 696 6E8DA0F81F2BAC3500CCE941 /* TodayViewController.xib in Resources */,
681 6E84E3841F27A701001EB88E /* LaunchScreen.storyboard in Resources */, 697 6E84E3841F27A701001EB88E /* LaunchScreen.storyboard in Resources */,
682 6E84E3811F27A701001EB88E /* Assets.xcassets in Resources */, 698 6E84E3811F27A701001EB88E /* Assets.xcassets in Resources */,
683 6E84E3C61F27ACAE001EB88E /* MapViewController.xib in Resources */, 699 6E84E3C61F27ACAE001EB88E /* MapViewController.xib in Resources */,
684 6EF1630A1F29069300DA306C /* Localizable.strings in Resources */, 700 6EF1630A1F29069300DA306C /* Localizable.strings in Resources */,
685 6E84E3B11F27A975001EB88E /* HomeViewController.xib in Resources */, 701 6E84E3B11F27A975001EB88E /* HomeViewController.xib in Resources */,
686 6E84E3B61F27A98B001EB88E /* HistoryViewController.xib in Resources */, 702 6E84E3B61F27A98B001EB88E /* HistoryViewController.xib in Resources */,
687 E933E66C1F3E04A6002926F5 /* SearchGroupViewController.xib in Resources */, 703 E933E66C1F3E04A6002926F5 /* SearchGroupViewController.xib in Resources */,
688 E96855121F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib in Resources */, 704 E96855121F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib in Resources */,
705 E933E67A1F40513C002926F5 /* GroupDetailViewController.xib in Resources */,
689 E99E13B21F33720600C78787 /* LabelCollectionViewCell.xib in Resources */, 706 E99E13B21F33720600C78787 /* LabelCollectionViewCell.xib in Resources */,
690 E9F73DCD1F338A0F004A3A6F /* HistoryListTableViewCell.xib in Resources */, 707 E9F73DCD1F338A0F004A3A6F /* HistoryListTableViewCell.xib in Resources */,
691 ); 708 );
692 runOnlyForDeploymentPostprocessing = 0; 709 runOnlyForDeploymentPostprocessing = 0;
693 }; 710 };
694 6E84E3881F27A703001EB88E /* Resources */ = { 711 6E84E3881F27A703001EB88E /* Resources */ = {
695 isa = PBXResourcesBuildPhase; 712 isa = PBXResourcesBuildPhase;
696 buildActionMask = 2147483647; 713 buildActionMask = 2147483647;
697 files = ( 714 files = (
698 ); 715 );
699 runOnlyForDeploymentPostprocessing = 0; 716 runOnlyForDeploymentPostprocessing = 0;
700 }; 717 };
701 6E84E3931F27A703001EB88E /* Resources */ = { 718 6E84E3931F27A703001EB88E /* Resources */ = {
702 isa = PBXResourcesBuildPhase; 719 isa = PBXResourcesBuildPhase;
703 buildActionMask = 2147483647; 720 buildActionMask = 2147483647;
704 files = ( 721 files = (
705 ); 722 );
706 runOnlyForDeploymentPostprocessing = 0; 723 runOnlyForDeploymentPostprocessing = 0;
707 }; 724 };
708 /* End PBXResourcesBuildPhase section */ 725 /* End PBXResourcesBuildPhase section */
709 726
710 /* Begin PBXShellScriptBuildPhase section */ 727 /* Begin PBXShellScriptBuildPhase section */
711 22F89B11794CEB4E265996AC /* [CP] Embed Pods Frameworks */ = { 728 22F89B11794CEB4E265996AC /* [CP] Embed Pods Frameworks */ = {
712 isa = PBXShellScriptBuildPhase; 729 isa = PBXShellScriptBuildPhase;
713 buildActionMask = 2147483647; 730 buildActionMask = 2147483647;
714 files = ( 731 files = (
715 ); 732 );
716 inputPaths = ( 733 inputPaths = (
717 ); 734 );
718 name = "[CP] Embed Pods Frameworks"; 735 name = "[CP] Embed Pods Frameworks";
719 outputPaths = ( 736 outputPaths = (
720 ); 737 );
721 runOnlyForDeploymentPostprocessing = 0; 738 runOnlyForDeploymentPostprocessing = 0;
722 shellPath = /bin/sh; 739 shellPath = /bin/sh;
723 shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog-frameworks.sh\"\n"; 740 shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog-frameworks.sh\"\n";
724 showEnvVarsInLog = 0; 741 showEnvVarsInLog = 0;
725 }; 742 };
726 2BB22CAEC0728AA1E086BCE3 /* [CP] Check Pods Manifest.lock */ = { 743 2BB22CAEC0728AA1E086BCE3 /* [CP] Check Pods Manifest.lock */ = {
727 isa = PBXShellScriptBuildPhase; 744 isa = PBXShellScriptBuildPhase;
728 buildActionMask = 2147483647; 745 buildActionMask = 2147483647;
729 files = ( 746 files = (
730 ); 747 );
731 inputPaths = ( 748 inputPaths = (
732 ); 749 );
733 name = "[CP] Check Pods Manifest.lock"; 750 name = "[CP] Check Pods Manifest.lock";
734 outputPaths = ( 751 outputPaths = (
735 ); 752 );
736 runOnlyForDeploymentPostprocessing = 0; 753 runOnlyForDeploymentPostprocessing = 0;
737 shellPath = /bin/sh; 754 shellPath = /bin/sh;
738 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"; 755 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";
739 showEnvVarsInLog = 0; 756 showEnvVarsInLog = 0;
740 }; 757 };
741 96653BDB2C24A87C2866C897 /* [CP] Copy Pods Resources */ = { 758 96653BDB2C24A87C2866C897 /* [CP] Copy Pods Resources */ = {
742 isa = PBXShellScriptBuildPhase; 759 isa = PBXShellScriptBuildPhase;
743 buildActionMask = 2147483647; 760 buildActionMask = 2147483647;
744 files = ( 761 files = (
745 ); 762 );
746 inputPaths = ( 763 inputPaths = (
747 ); 764 );
748 name = "[CP] Copy Pods Resources"; 765 name = "[CP] Copy Pods Resources";
749 outputPaths = ( 766 outputPaths = (
750 ); 767 );
751 runOnlyForDeploymentPostprocessing = 0; 768 runOnlyForDeploymentPostprocessing = 0;
752 shellPath = /bin/sh; 769 shellPath = /bin/sh;
753 shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog-resources.sh\"\n"; 770 shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog-resources.sh\"\n";
754 showEnvVarsInLog = 0; 771 showEnvVarsInLog = 0;
755 }; 772 };
756 /* End PBXShellScriptBuildPhase section */ 773 /* End PBXShellScriptBuildPhase section */
757 774
758 /* Begin PBXSourcesBuildPhase section */ 775 /* Begin PBXSourcesBuildPhase section */
759 6E84E36D1F27A700001EB88E /* Sources */ = { 776 6E84E36D1F27A700001EB88E /* Sources */ = {
760 isa = PBXSourcesBuildPhase; 777 isa = PBXSourcesBuildPhase;
761 buildActionMask = 2147483647; 778 buildActionMask = 2147483647;
762 files = ( 779 files = (
763 6E18CED81F2E3C840029891F /* ServerAPI.m in Sources */, 780 6E18CED81F2E3C840029891F /* ServerAPI.m in Sources */,
764 6E7F93431F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m in Sources */, 781 6E7F93431F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m in Sources */,
765 6E7F93421F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m in Sources */, 782 6E7F93421F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m in Sources */,
766 E968550A1F3C444900317CEF /* AutoTransButton.m in Sources */, 783 E968550A1F3C444900317CEF /* AutoTransButton.m in Sources */,
767 E933E6741F3E0E4E002926F5 /* GroupObject.m in Sources */, 784 E933E6741F3E0E4E002926F5 /* GroupObject.m in Sources */,
768 9CBDA0FA1F2ECE2C0055DED1 /* BaseViewController.m in Sources */, 785 9CBDA0FA1F2ECE2C0055DED1 /* BaseViewController.m in Sources */,
769 6E8DA0F71F2BAC3400CCE941 /* TodayViewController.m in Sources */, 786 6E8DA0F71F2BAC3400CCE941 /* TodayViewController.m in Sources */,
770 6E7F93451F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m in Sources */, 787 6E7F93451F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m in Sources */,
771 E9682E2E1F39675A00FE05A2 /* RankingTableViewCell.m in Sources */, 788 E9682E2E1F39675A00FE05A2 /* RankingTableViewCell.m in Sources */,
772 E9D909211F3D559D004CF99F /* TweetObject.m in Sources */, 789 E9D909211F3D559D004CF99F /* TweetObject.m in Sources */,
773 6E48AF0D1F2F9D3300C1D184 /* CustomTextField.m in Sources */, 790 6E48AF0D1F2F9D3300C1D184 /* CustomTextField.m in Sources */,
774 E99E13AB1F336F3600C78787 /* CollectionView.m in Sources */, 791 E99E13AB1F336F3600C78787 /* CollectionView.m in Sources */,
775 6E84E3B01F27A975001EB88E /* HomeViewController.m in Sources */, 792 6E84E3B01F27A975001EB88E /* HomeViewController.m in Sources */,
776 E9373E471F3596940059355A /* AutoTransLabel.m in Sources */, 793 E9373E471F3596940059355A /* AutoTransLabel.m in Sources */,
777 6E84E3791F27A701001EB88E /* AppDelegate.m in Sources */, 794 6E84E3791F27A701001EB88E /* AppDelegate.m in Sources */,
778 6E84E3BA1F27A9A0001EB88E /* RankingViewController.m in Sources */, 795 6E84E3BA1F27A9A0001EB88E /* RankingViewController.m in Sources */,
779 6E7F93441F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m in Sources */, 796 6E7F93441F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m in Sources */,
780 E9F73DCC1F338A0F004A3A6F /* HistoryListTableViewCell.m in Sources */, 797 E9F73DCC1F338A0F004A3A6F /* HistoryListTableViewCell.m in Sources */,
781 6EDC8BF41F2C68D700765ACC /* CMMotionActivityExtra.m in Sources */, 798 6EDC8BF41F2C68D700765ACC /* CMMotionActivityExtra.m in Sources */,
799 E933E6791F40513C002926F5 /* GroupDetailViewController.m in Sources */,
782 9CBDA0FF1F2F03810055DED1 /* RegisterViewController.m in Sources */, 800 9CBDA0FF1F2F03810055DED1 /* RegisterViewController.m in Sources */,
783 E9373E4A1F35AA180059355A /* HistoryObject.m in Sources */, 801 E9373E4A1F35AA180059355A /* HistoryObject.m in Sources */,
784 9CA8AEEA1F31BB4600C5FC74 /* ConfirmForgetPassViewController.m in Sources */, 802 9CA8AEEA1F31BB4600C5FC74 /* ConfirmForgetPassViewController.m in Sources */,
785 E99E13B11F33720600C78787 /* LabelCollectionViewCell.m in Sources */, 803 E99E13B11F33720600C78787 /* LabelCollectionViewCell.m in Sources */,
786 6EDC8BEE1F2C2FB800765ACC /* Utilities.m in Sources */, 804 6EDC8BEE1F2C2FB800765ACC /* Utilities.m in Sources */,
787 E96855111F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m in Sources */, 805 E96855111F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m in Sources */,
788 6E84E3C51F27ACAE001EB88E /* MapViewController.m in Sources */, 806 6E84E3C51F27ACAE001EB88E /* MapViewController.m in Sources */,
789 6E18CEDC1F2E40F50029891F /* User.m in Sources */, 807 6E18CEDC1F2E40F50029891F /* User.m in Sources */,
790 6ECC40711F2A5FEB00AAEB97 /* NSDate+helper.m in Sources */, 808 6ECC40711F2A5FEB00AAEB97 /* NSDate+helper.m in Sources */,
791 6E18CED31F2E39DB0029891F /* LoginViewController.m in Sources */, 809 6E18CED31F2E39DB0029891F /* LoginViewController.m in Sources */,
792 E9D909241F3D6E8C004CF99F /* BaseTableViewController.m in Sources */, 810 E9D909241F3D6E8C004CF99F /* BaseTableViewController.m in Sources */,
793 6E84E3761F27A701001EB88E /* main.m in Sources */, 811 6E84E3761F27A701001EB88E /* main.m in Sources */,
794 E933E6701F3E09B6002926F5 /* SearchGroupTableViewCell.m in Sources */, 812 E933E6701F3E09B6002926F5 /* SearchGroupTableViewCell.m in Sources */,
795 6E84E3B51F27A98B001EB88E /* HistoryViewController.m in Sources */, 813 6E84E3B51F27A98B001EB88E /* HistoryViewController.m in Sources */,
796 E9373E4D1F361A230059355A /* HistoryGraphObject.m in Sources */, 814 E9373E4D1F361A230059355A /* HistoryGraphObject.m in Sources */,
797 E933E66B1F3E04A6002926F5 /* SearchGroupViewController.m in Sources */, 815 E933E66B1F3E04A6002926F5 /* SearchGroupViewController.m in Sources */,
798 6E84E3BF1F27A9B1001EB88E /* SNSViewController.m in Sources */, 816 6E84E3BF1F27A9B1001EB88E /* SNSViewController.m in Sources */,
799 ); 817 );
800 runOnlyForDeploymentPostprocessing = 0; 818 runOnlyForDeploymentPostprocessing = 0;
801 }; 819 };
802 6E84E3861F27A703001EB88E /* Sources */ = { 820 6E84E3861F27A703001EB88E /* Sources */ = {
803 isa = PBXSourcesBuildPhase; 821 isa = PBXSourcesBuildPhase;
804 buildActionMask = 2147483647; 822 buildActionMask = 2147483647;
805 files = ( 823 files = (
806 6E84E38F1F27A703001EB88E /* LifeLogTests.m in Sources */, 824 6E84E38F1F27A703001EB88E /* LifeLogTests.m in Sources */,
807 ); 825 );
808 runOnlyForDeploymentPostprocessing = 0; 826 runOnlyForDeploymentPostprocessing = 0;
809 }; 827 };
810 6E84E3911F27A703001EB88E /* Sources */ = { 828 6E84E3911F27A703001EB88E /* Sources */ = {
811 isa = PBXSourcesBuildPhase; 829 isa = PBXSourcesBuildPhase;
812 buildActionMask = 2147483647; 830 buildActionMask = 2147483647;
813 files = ( 831 files = (
814 6E84E39A1F27A703001EB88E /* LifeLogUITests.m in Sources */, 832 6E84E39A1F27A703001EB88E /* LifeLogUITests.m in Sources */,
815 ); 833 );
816 runOnlyForDeploymentPostprocessing = 0; 834 runOnlyForDeploymentPostprocessing = 0;
817 }; 835 };
818 /* End PBXSourcesBuildPhase section */ 836 /* End PBXSourcesBuildPhase section */
819 837
820 /* Begin PBXTargetDependency section */ 838 /* Begin PBXTargetDependency section */
821 6E84E38C1F27A703001EB88E /* PBXTargetDependency */ = { 839 6E84E38C1F27A703001EB88E /* PBXTargetDependency */ = {
822 isa = PBXTargetDependency; 840 isa = PBXTargetDependency;
823 target = 6E84E3701F27A700001EB88E /* LifeLog */; 841 target = 6E84E3701F27A700001EB88E /* LifeLog */;
824 targetProxy = 6E84E38B1F27A703001EB88E /* PBXContainerItemProxy */; 842 targetProxy = 6E84E38B1F27A703001EB88E /* PBXContainerItemProxy */;
825 }; 843 };
826 6E84E3971F27A703001EB88E /* PBXTargetDependency */ = { 844 6E84E3971F27A703001EB88E /* PBXTargetDependency */ = {
827 isa = PBXTargetDependency; 845 isa = PBXTargetDependency;
828 target = 6E84E3701F27A700001EB88E /* LifeLog */; 846 target = 6E84E3701F27A700001EB88E /* LifeLog */;
829 targetProxy = 6E84E3961F27A703001EB88E /* PBXContainerItemProxy */; 847 targetProxy = 6E84E3961F27A703001EB88E /* PBXContainerItemProxy */;
830 }; 848 };
831 /* End PBXTargetDependency section */ 849 /* End PBXTargetDependency section */
832 850
833 /* Begin PBXVariantGroup section */ 851 /* Begin PBXVariantGroup section */
834 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */ = { 852 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */ = {
835 isa = PBXVariantGroup; 853 isa = PBXVariantGroup;
836 children = ( 854 children = (
837 6E84E3831F27A701001EB88E /* Base */, 855 6E84E3831F27A701001EB88E /* Base */,
838 ); 856 );
839 name = LaunchScreen.storyboard; 857 name = LaunchScreen.storyboard;
840 sourceTree = "<group>"; 858 sourceTree = "<group>";
841 }; 859 };
842 /* End PBXVariantGroup section */ 860 /* End PBXVariantGroup section */
843 861
844 /* Begin XCBuildConfiguration section */ 862 /* Begin XCBuildConfiguration section */
845 6E84E39C1F27A703001EB88E /* Debug */ = { 863 6E84E39C1F27A703001EB88E /* Debug */ = {
846 isa = XCBuildConfiguration; 864 isa = XCBuildConfiguration;
847 buildSettings = { 865 buildSettings = {
848 ALWAYS_SEARCH_USER_PATHS = NO; 866 ALWAYS_SEARCH_USER_PATHS = NO;
849 CLANG_ANALYZER_NONNULL = YES; 867 CLANG_ANALYZER_NONNULL = YES;
850 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 868 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
851 CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 869 CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
852 CLANG_CXX_LIBRARY = "libc++"; 870 CLANG_CXX_LIBRARY = "libc++";
853 CLANG_ENABLE_MODULES = YES; 871 CLANG_ENABLE_MODULES = YES;
854 CLANG_ENABLE_OBJC_ARC = YES; 872 CLANG_ENABLE_OBJC_ARC = YES;
855 CLANG_WARN_BOOL_CONVERSION = YES; 873 CLANG_WARN_BOOL_CONVERSION = YES;
856 CLANG_WARN_CONSTANT_CONVERSION = YES; 874 CLANG_WARN_CONSTANT_CONVERSION = YES;
857 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 875 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
858 CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 876 CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
859 CLANG_WARN_EMPTY_BODY = YES; 877 CLANG_WARN_EMPTY_BODY = YES;
860 CLANG_WARN_ENUM_CONVERSION = YES; 878 CLANG_WARN_ENUM_CONVERSION = YES;
861 CLANG_WARN_INFINITE_RECURSION = YES; 879 CLANG_WARN_INFINITE_RECURSION = YES;
862 CLANG_WARN_INT_CONVERSION = YES; 880 CLANG_WARN_INT_CONVERSION = YES;
863 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 881 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
864 CLANG_WARN_SUSPICIOUS_MOVE = YES; 882 CLANG_WARN_SUSPICIOUS_MOVE = YES;
865 CLANG_WARN_UNREACHABLE_CODE = YES; 883 CLANG_WARN_UNREACHABLE_CODE = YES;
866 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 884 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
867 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 885 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
868 COPY_PHASE_STRIP = NO; 886 COPY_PHASE_STRIP = NO;
869 DEBUG_INFORMATION_FORMAT = dwarf; 887 DEBUG_INFORMATION_FORMAT = dwarf;
870 ENABLE_STRICT_OBJC_MSGSEND = YES; 888 ENABLE_STRICT_OBJC_MSGSEND = YES;
871 ENABLE_TESTABILITY = YES; 889 ENABLE_TESTABILITY = YES;
872 GCC_C_LANGUAGE_STANDARD = gnu99; 890 GCC_C_LANGUAGE_STANDARD = gnu99;
873 GCC_DYNAMIC_NO_PIC = NO; 891 GCC_DYNAMIC_NO_PIC = NO;
874 GCC_NO_COMMON_BLOCKS = YES; 892 GCC_NO_COMMON_BLOCKS = YES;
875 GCC_OPTIMIZATION_LEVEL = 0; 893 GCC_OPTIMIZATION_LEVEL = 0;
876 GCC_PREPROCESSOR_DEFINITIONS = ( 894 GCC_PREPROCESSOR_DEFINITIONS = (
877 "DEBUG=1", 895 "DEBUG=1",
878 "$(inherited)", 896 "$(inherited)",
879 ); 897 );
880 GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 898 GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
881 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 899 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
882 GCC_WARN_UNDECLARED_SELECTOR = YES; 900 GCC_WARN_UNDECLARED_SELECTOR = YES;
883 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 901 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
884 GCC_WARN_UNUSED_FUNCTION = YES; 902 GCC_WARN_UNUSED_FUNCTION = YES;
885 GCC_WARN_UNUSED_VARIABLE = YES; 903 GCC_WARN_UNUSED_VARIABLE = YES;
886 IPHONEOS_DEPLOYMENT_TARGET = 10.3; 904 IPHONEOS_DEPLOYMENT_TARGET = 10.3;
887 MTL_ENABLE_DEBUG_INFO = YES; 905 MTL_ENABLE_DEBUG_INFO = YES;
888 ONLY_ACTIVE_ARCH = YES; 906 ONLY_ACTIVE_ARCH = YES;
889 SDKROOT = iphoneos; 907 SDKROOT = iphoneos;
890 TARGETED_DEVICE_FAMILY = "1,2"; 908 TARGETED_DEVICE_FAMILY = "1,2";
891 }; 909 };
892 name = Debug; 910 name = Debug;
893 }; 911 };
894 6E84E39D1F27A703001EB88E /* Release */ = { 912 6E84E39D1F27A703001EB88E /* Release */ = {
895 isa = XCBuildConfiguration; 913 isa = XCBuildConfiguration;
896 buildSettings = { 914 buildSettings = {
897 ALWAYS_SEARCH_USER_PATHS = NO; 915 ALWAYS_SEARCH_USER_PATHS = NO;
898 CLANG_ANALYZER_NONNULL = YES; 916 CLANG_ANALYZER_NONNULL = YES;
899 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 917 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
900 CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 918 CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
901 CLANG_CXX_LIBRARY = "libc++"; 919 CLANG_CXX_LIBRARY = "libc++";
902 CLANG_ENABLE_MODULES = YES; 920 CLANG_ENABLE_MODULES = YES;
903 CLANG_ENABLE_OBJC_ARC = YES; 921 CLANG_ENABLE_OBJC_ARC = YES;
904 CLANG_WARN_BOOL_CONVERSION = YES; 922 CLANG_WARN_BOOL_CONVERSION = YES;
905 CLANG_WARN_CONSTANT_CONVERSION = YES; 923 CLANG_WARN_CONSTANT_CONVERSION = YES;
906 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 924 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
907 CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 925 CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
908 CLANG_WARN_EMPTY_BODY = YES; 926 CLANG_WARN_EMPTY_BODY = YES;
909 CLANG_WARN_ENUM_CONVERSION = YES; 927 CLANG_WARN_ENUM_CONVERSION = YES;
910 CLANG_WARN_INFINITE_RECURSION = YES; 928 CLANG_WARN_INFINITE_RECURSION = YES;
911 CLANG_WARN_INT_CONVERSION = YES; 929 CLANG_WARN_INT_CONVERSION = YES;
912 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 930 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
913 CLANG_WARN_SUSPICIOUS_MOVE = YES; 931 CLANG_WARN_SUSPICIOUS_MOVE = YES;
914 CLANG_WARN_UNREACHABLE_CODE = YES; 932 CLANG_WARN_UNREACHABLE_CODE = YES;
915 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 933 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
916 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 934 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
917 COPY_PHASE_STRIP = NO; 935 COPY_PHASE_STRIP = NO;
918 DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 936 DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
919 ENABLE_NS_ASSERTIONS = NO; 937 ENABLE_NS_ASSERTIONS = NO;
920 ENABLE_STRICT_OBJC_MSGSEND = YES; 938 ENABLE_STRICT_OBJC_MSGSEND = YES;
921 GCC_C_LANGUAGE_STANDARD = gnu99; 939 GCC_C_LANGUAGE_STANDARD = gnu99;
922 GCC_NO_COMMON_BLOCKS = YES; 940 GCC_NO_COMMON_BLOCKS = YES;
923 GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 941 GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
924 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 942 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
925 GCC_WARN_UNDECLARED_SELECTOR = YES; 943 GCC_WARN_UNDECLARED_SELECTOR = YES;
926 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 944 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
927 GCC_WARN_UNUSED_FUNCTION = YES; 945 GCC_WARN_UNUSED_FUNCTION = YES;
928 GCC_WARN_UNUSED_VARIABLE = YES; 946 GCC_WARN_UNUSED_VARIABLE = YES;
929 IPHONEOS_DEPLOYMENT_TARGET = 10.3; 947 IPHONEOS_DEPLOYMENT_TARGET = 10.3;
930 MTL_ENABLE_DEBUG_INFO = NO; 948 MTL_ENABLE_DEBUG_INFO = NO;
931 SDKROOT = iphoneos; 949 SDKROOT = iphoneos;
932 TARGETED_DEVICE_FAMILY = "1,2"; 950 TARGETED_DEVICE_FAMILY = "1,2";
933 VALIDATE_PRODUCT = YES; 951 VALIDATE_PRODUCT = YES;
934 }; 952 };
935 name = Release; 953 name = Release;
936 }; 954 };
937 6E84E39F1F27A703001EB88E /* Debug */ = { 955 6E84E39F1F27A703001EB88E /* Debug */ = {
938 isa = XCBuildConfiguration; 956 isa = XCBuildConfiguration;
939 baseConfigurationReference = 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */; 957 baseConfigurationReference = 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */;
940 buildSettings = { 958 buildSettings = {
941 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 959 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
942 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 960 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
943 DEVELOPMENT_TEAM = ""; 961 DEVELOPMENT_TEAM = "";
944 INFOPLIST_FILE = LifeLog/Info.plist; 962 INFOPLIST_FILE = LifeLog/Info.plist;
945 IPHONEOS_DEPLOYMENT_TARGET = 9.0; 963 IPHONEOS_DEPLOYMENT_TARGET = 9.0;
946 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 964 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
947 OTHER_LDFLAGS = ( 965 OTHER_LDFLAGS = (
948 "$(inherited)", 966 "$(inherited)",
949 "-framework", 967 "-framework",
950 "\"CircleProgressBar\"", 968 "\"CircleProgressBar\"",
951 "-all_load", 969 "-all_load",
952 "-ObjC", 970 "-ObjC",
953 ); 971 );
954 PRODUCT_BUNDLE_IDENTIFIER = mobileworld.jp.lifelog; 972 PRODUCT_BUNDLE_IDENTIFIER = mobileworld.jp.lifelog;
955 PRODUCT_NAME = "$(TARGET_NAME)"; 973 PRODUCT_NAME = "$(TARGET_NAME)";
956 PROVISIONING_PROFILE = ""; 974 PROVISIONING_PROFILE = "";
957 PROVISIONING_PROFILE_SPECIFIER = ""; 975 PROVISIONING_PROFILE_SPECIFIER = "";
958 }; 976 };
959 name = Debug; 977 name = Debug;
960 }; 978 };
961 6E84E3A01F27A703001EB88E /* Release */ = { 979 6E84E3A01F27A703001EB88E /* Release */ = {
962 isa = XCBuildConfiguration; 980 isa = XCBuildConfiguration;
963 baseConfigurationReference = 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */; 981 baseConfigurationReference = 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */;
964 buildSettings = { 982 buildSettings = {
965 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 983 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
966 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 984 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
967 DEVELOPMENT_TEAM = ""; 985 DEVELOPMENT_TEAM = "";
968 INFOPLIST_FILE = LifeLog/Info.plist; 986 INFOPLIST_FILE = LifeLog/Info.plist;
969 IPHONEOS_DEPLOYMENT_TARGET = 9.0; 987 IPHONEOS_DEPLOYMENT_TARGET = 9.0;
970 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 988 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
971 OTHER_LDFLAGS = ( 989 OTHER_LDFLAGS = (
972 "$(inherited)", 990 "$(inherited)",
973 "-framework", 991 "-framework",
974 "\"CircleProgressBar\"", 992 "\"CircleProgressBar\"",
975 "-all_load", 993 "-all_load",
976 "-ObjC", 994 "-ObjC",
977 ); 995 );
978 PRODUCT_BUNDLE_IDENTIFIER = mobileworld.jp.lifelog; 996 PRODUCT_BUNDLE_IDENTIFIER = mobileworld.jp.lifelog;
979 PRODUCT_NAME = "$(TARGET_NAME)"; 997 PRODUCT_NAME = "$(TARGET_NAME)";
980 PROVISIONING_PROFILE = ""; 998 PROVISIONING_PROFILE = "";
981 PROVISIONING_PROFILE_SPECIFIER = ""; 999 PROVISIONING_PROFILE_SPECIFIER = "";
982 }; 1000 };
983 name = Release; 1001 name = Release;
984 }; 1002 };
985 6E84E3A21F27A703001EB88E /* Debug */ = { 1003 6E84E3A21F27A703001EB88E /* Debug */ = {
986 isa = XCBuildConfiguration; 1004 isa = XCBuildConfiguration;
987 buildSettings = { 1005 buildSettings = {
988 BUNDLE_LOADER = "$(TEST_HOST)"; 1006 BUNDLE_LOADER = "$(TEST_HOST)";
989 INFOPLIST_FILE = LifeLogTests/Info.plist; 1007 INFOPLIST_FILE = LifeLogTests/Info.plist;
990 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 1008 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
991 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogTests; 1009 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogTests;
992 PRODUCT_NAME = "$(TARGET_NAME)"; 1010 PRODUCT_NAME = "$(TARGET_NAME)";
993 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LifeLog.app/LifeLog"; 1011 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LifeLog.app/LifeLog";
994 }; 1012 };
995 name = Debug; 1013 name = Debug;
996 }; 1014 };
997 6E84E3A31F27A703001EB88E /* Release */ = { 1015 6E84E3A31F27A703001EB88E /* Release */ = {
998 isa = XCBuildConfiguration; 1016 isa = XCBuildConfiguration;
999 buildSettings = { 1017 buildSettings = {
1000 BUNDLE_LOADER = "$(TEST_HOST)"; 1018 BUNDLE_LOADER = "$(TEST_HOST)";
1001 INFOPLIST_FILE = LifeLogTests/Info.plist; 1019 INFOPLIST_FILE = LifeLogTests/Info.plist;
1002 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 1020 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1003 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogTests; 1021 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogTests;
1004 PRODUCT_NAME = "$(TARGET_NAME)"; 1022 PRODUCT_NAME = "$(TARGET_NAME)";
1005 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LifeLog.app/LifeLog"; 1023 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LifeLog.app/LifeLog";
1006 }; 1024 };
1007 name = Release; 1025 name = Release;
1008 }; 1026 };
1009 6E84E3A51F27A703001EB88E /* Debug */ = { 1027 6E84E3A51F27A703001EB88E /* Debug */ = {
1010 isa = XCBuildConfiguration; 1028 isa = XCBuildConfiguration;
1011 buildSettings = { 1029 buildSettings = {
1012 INFOPLIST_FILE = LifeLogUITests/Info.plist; 1030 INFOPLIST_FILE = LifeLogUITests/Info.plist;
1013 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 1031 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1014 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogUITests; 1032 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogUITests;
1015 PRODUCT_NAME = "$(TARGET_NAME)"; 1033 PRODUCT_NAME = "$(TARGET_NAME)";
1016 TEST_TARGET_NAME = LifeLog; 1034 TEST_TARGET_NAME = LifeLog;
1017 }; 1035 };
1018 name = Debug; 1036 name = Debug;
1019 }; 1037 };
1020 6E84E3A61F27A703001EB88E /* Release */ = { 1038 6E84E3A61F27A703001EB88E /* Release */ = {
1021 isa = XCBuildConfiguration; 1039 isa = XCBuildConfiguration;
1022 buildSettings = { 1040 buildSettings = {
1023 INFOPLIST_FILE = LifeLogUITests/Info.plist; 1041 INFOPLIST_FILE = LifeLogUITests/Info.plist;
1024 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 1042 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1025 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogUITests; 1043 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogUITests;
1026 PRODUCT_NAME = "$(TARGET_NAME)"; 1044 PRODUCT_NAME = "$(TARGET_NAME)";
1027 TEST_TARGET_NAME = LifeLog; 1045 TEST_TARGET_NAME = LifeLog;
1028 }; 1046 };
1029 name = Release; 1047 name = Release;
1030 }; 1048 };
1031 /* End XCBuildConfiguration section */ 1049 /* End XCBuildConfiguration section */
1032 1050
1033 /* Begin XCConfigurationList section */ 1051 /* Begin XCConfigurationList section */
1034 6E84E36C1F27A700001EB88E /* Build configuration list for PBXProject "LifeLog" */ = { 1052 6E84E36C1F27A700001EB88E /* Build configuration list for PBXProject "LifeLog" */ = {
1035 isa = XCConfigurationList; 1053 isa = XCConfigurationList;
1036 buildConfigurations = ( 1054 buildConfigurations = (
1037 6E84E39C1F27A703001EB88E /* Debug */, 1055 6E84E39C1F27A703001EB88E /* Debug */,
1038 6E84E39D1F27A703001EB88E /* Release */, 1056 6E84E39D1F27A703001EB88E /* Release */,
1039 ); 1057 );
1040 defaultConfigurationIsVisible = 0; 1058 defaultConfigurationIsVisible = 0;
1041 defaultConfigurationName = Release; 1059 defaultConfigurationName = Release;
1042 }; 1060 };
1043 6E84E39E1F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLog" */ = { 1061 6E84E39E1F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLog" */ = {
1044 isa = XCConfigurationList; 1062 isa = XCConfigurationList;
1045 buildConfigurations = ( 1063 buildConfigurations = (
1046 6E84E39F1F27A703001EB88E /* Debug */, 1064 6E84E39F1F27A703001EB88E /* Debug */,
1047 6E84E3A01F27A703001EB88E /* Release */, 1065 6E84E3A01F27A703001EB88E /* Release */,
1048 ); 1066 );
1049 defaultConfigurationIsVisible = 0; 1067 defaultConfigurationIsVisible = 0;
1050 defaultConfigurationName = Release; 1068 defaultConfigurationName = Release;
1051 }; 1069 };
1052 6E84E3A11F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogTests" */ = { 1070 6E84E3A11F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogTests" */ = {
1053 isa = XCConfigurationList; 1071 isa = XCConfigurationList;
1054 buildConfigurations = ( 1072 buildConfigurations = (
1055 6E84E3A21F27A703001EB88E /* Debug */, 1073 6E84E3A21F27A703001EB88E /* Debug */,
1056 6E84E3A31F27A703001EB88E /* Release */, 1074 6E84E3A31F27A703001EB88E /* Release */,
1057 ); 1075 );
1058 defaultConfigurationIsVisible = 0; 1076 defaultConfigurationIsVisible = 0;
1059 defaultConfigurationName = Release; 1077 defaultConfigurationName = Release;
1060 }; 1078 };
1061 6E84E3A41F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogUITests" */ = { 1079 6E84E3A41F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogUITests" */ = {
1062 isa = XCConfigurationList; 1080 isa = XCConfigurationList;
1063 buildConfigurations = ( 1081 buildConfigurations = (
1064 6E84E3A51F27A703001EB88E /* Debug */, 1082 6E84E3A51F27A703001EB88E /* Debug */,
1065 6E84E3A61F27A703001EB88E /* Release */, 1083 6E84E3A61F27A703001EB88E /* Release */,
1066 ); 1084 );
1067 defaultConfigurationIsVisible = 0; 1085 defaultConfigurationIsVisible = 0;
1068 defaultConfigurationName = Release; 1086 defaultConfigurationName = Release;
1069 }; 1087 };
1070 /* End XCConfigurationList section */ 1088 /* End XCConfigurationList section */
1071 }; 1089 };
1072 rootObject = 6E84E3691F27A700001EB88E /* Project object */; 1090 rootObject = 6E84E3691F27A700001EB88E /* Project object */;
1073 } 1091 }
1074 1092
LifeLog/LifeLog/GroupDetailViewController.h
File was created 1 //
2 // GroupDetailViewController.h
3 // LifeLog
4 //
5 // Created by nvtu on 8/13/17.
6 // Copyright © 2017 PhongNV. All rights reserved.
7 //
8
9 #import <UIKit/UIKit.h>
10 #import "BaseTableViewController.h"
11 #import "Entities.h"
12
13 @interface GroupDetailViewController : BaseTableViewController {
14 GroupObject * _curGroup;
15 }
16 @property (weak, nonatomic) IBOutlet UIImageView *imgAva;
17
18 @property (weak, nonatomic) IBOutlet UILabel *lblGrpName;
19 @property (weak, nonatomic) IBOutlet UILabel *lbbGrpActiveMode;
20 @property (weak, nonatomic) IBOutlet UILabel *lblGrpGoal;
21
22 - (IBAction)clickBack:(id)sender;
23
24 - (void) setGroup : (GroupObject *) object;
25 @end
26
LifeLog/LifeLog/GroupDetailViewController.m
File was created 1 //
2 // GroupDetailViewController.m
3 // LifeLog
4 //
5 // Created by nvtu on 8/13/17.
6 // Copyright © 2017 PhongNV. All rights reserved.
7 //
8
9 #import "GroupDetailViewController.h"
10 #import <SDWebImage/UIImageView+WebCache.h>
11
12 #import "Utilities.h"
13 #import "ServerAPI.h"
14 #import "SNSRecentTopicTableViewCell.h"
15
16 @interface GroupDetailViewController ()
17
18 @end
19
20 @implementation GroupDetailViewController
21
22 - (void)viewDidLoad {
23 [super viewDidLoad];
24 [self setupView];
25
26 //register nib for table view
27 [self.tableBase registerNib:[UINib nibWithNibName:@"SNSRecentTopicTableViewCell" bundle:nil] forCellReuseIdentifier:@"RecentTopicCell"];
28
29 // Do any additional setup after loading the view from its nib.
30 }
31
32 - (void)didReceiveMemoryWarning {
33 [super didReceiveMemoryWarning];
34 // Dispose of any resources that can be recreated.
35 }
36
37 - (void) setGroup : (GroupObject *) object {
38 _curGroup = object;
39 }
40
41 - (void)setupView {
42 if(_curGroup != nil) {
43 self.lblGrpName.text = _curGroup.name;
44 if(_curGroup.avatar && ![_curGroup.avatar isKindOfClass:[NSNull class]]) {
45 [self.imgAva sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:_curGroup.avatar]]];
46 }
47 [self callRequestToUpdateData];
48 }
49 }
50
51 #pragma mark IBAction
52
53 - (IBAction)clickBack:(id)sender {
54 [self.navigationController popViewControllerAnimated:true];
55 }
56
57 #pragma mark UITableView Delegate
58 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
59 SNSRecentTopicTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"RecentTopicCell"];
60 TweetObject *object = [_curDataList objectAtIndex:indexPath.row];
61 if(object.avatarLink && ![object.avatarLink isKindOfClass:[NSNull class]]) {
62 [cell.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatarLink]]];
63 }
64 cell.lblDateTime.text = [Utilities stringFromDate:object.createDate withFormat:@"YYYY/MM/dd hh:mm"];
65 cell.lblUsername.text = object.userName;
66 cell.lblDes.text = object.content;
67 cell.lblMode.text = object.mode;
68 cell.lblDistance.text = [NSString stringWithFormat:@"%.0f m", object.distance];
69 cell.lblDuration.text = object.time;
70 return cell;
71 }
72
73 #pragma mark Private Function
74
75 -(void) callRequestToUpdateData {
76 [super callRequestToUpdateData];
77
78 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken];
79 MBProgressHUD *hudView = nil;
80 if(_curPage == 1 && !self.refreshControl.isRefreshing) {
81 hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true];
82 }
83 [[ServerAPI server] requestTweetsList:token groupID:_curGroup.groupID withPage:_curPage CompletionHandler:^(NSArray *array, NSError *error){
84 dispatch_async(dispatch_get_main_queue(), ^{
85 if(hudView != nil) {
86 [hudView hideAnimated:true];
87 }
88 });
89 GroupDetailViewController __weak *weakSelf = self;
90 [weakSelf updateTableData:array error:error];
91 }];
92 }
93
94 @end
95
LifeLog/LifeLog/GroupDetailViewController.xib
File was created 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">
3 <device id="retina4_7" orientation="portrait">
4 <adaptation id="fullscreen"/>
5 </device>
6 <dependencies>
7 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12086"/>
8 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
9 </dependencies>
10 <objects>
11 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="GroupDetailViewController">
12 <connections>
13 <outlet property="imgAva" destination="qYg-Gw-R2b" id="f9w-A2-u4G"/>
14 <outlet property="lbbGrpActiveMode" destination="O8z-6V-YFd" id="s8J-3i-pW3"/>
15 <outlet property="lblGrpGoal" destination="Bdy-dI-j47" id="AKx-8y-Ifm"/>
16 <outlet property="lblGrpName" destination="YWV-pS-TCo" id="VeU-Ov-uSD"/>
17 <outlet property="tableBase" destination="4VU-Ye-7Au" id="m1e-cS-Sxf"/>
18 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
19 </connections>
20 </placeholder>
21 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
22 <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
23 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
24 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
25 <subviews>
26 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="25d-3H-0fr" userLabel="ViewHeader">
27 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/>
28 <subviews>
29 <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">
30 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/>
31 <fontDescription key="fontDescription" type="system" pointSize="17"/>
32 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
33 <nil key="highlightedColor"/>
34 <userDefinedRuntimeAttributes>
35 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.grDetail.title"/>
36 </userDefinedRuntimeAttributes>
37 </label>
38 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="O3M-Ba-zHF">
39 <rect key="frame" x="0.0" y="5" width="70" height="36"/>
40 <constraints>
41 <constraint firstAttribute="width" constant="70" id="2Mk-ly-c0t"/>
42 </constraints>
43 <state key="normal" image="today_back_button"/>
44 <connections>
45 <action selector="clickBack:" destination="-1" eventType="touchUpInside" id="gS4-F3-fzi"/>
46 </connections>
47 </button>
48 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="y09-DG-Krp">
49 <rect key="frame" x="330" y="0.0" width="45" height="46"/>
50 <constraints>
51 <constraint firstAttribute="width" constant="45" id="hHa-aE-1zd"/>
52 </constraints>
53 <state key="normal" image="icon_menu"/>
54 </button>
55 </subviews>
56 <color key="backgroundColor" red="0.098039215690000001" green="0.098039215690000001" blue="0.098039215690000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
57 <constraints>
58 <constraint firstItem="y09-DG-Krp" firstAttribute="top" secondItem="25d-3H-0fr" secondAttribute="top" id="65z-ZM-a3D"/>
59 <constraint firstItem="O3M-Ba-zHF" firstAttribute="leading" secondItem="25d-3H-0fr" secondAttribute="leading" id="CQk-IB-W9y"/>
60 <constraint firstAttribute="bottom" secondItem="y09-DG-Krp" secondAttribute="bottom" id="IWC-4b-gp6"/>
61 <constraint firstItem="O3M-Ba-zHF" firstAttribute="top" secondItem="25d-3H-0fr" secondAttribute="top" constant="5" id="JWL-bD-I2Z"/>
62 <constraint firstItem="DxD-Cy-0wi" firstAttribute="top" secondItem="25d-3H-0fr" secondAttribute="top" id="WYM-oV-6xn"/>
63 <constraint firstAttribute="bottom" secondItem="O3M-Ba-zHF" secondAttribute="bottom" constant="5" id="ZA0-Bo-IQF"/>
64 <constraint firstItem="DxD-Cy-0wi" firstAttribute="leading" secondItem="25d-3H-0fr" secondAttribute="leading" id="cbx-fE-OaR"/>
65 <constraint firstAttribute="trailing" secondItem="DxD-Cy-0wi" secondAttribute="trailing" id="i0L-w8-Oxm"/>
66 <constraint firstAttribute="trailing" secondItem="y09-DG-Krp" secondAttribute="trailing" id="nNZ-jP-k6U"/>
67 <constraint firstAttribute="bottom" secondItem="DxD-Cy-0wi" secondAttribute="bottom" id="oxP-oa-3FJ"/>
68 <constraint firstAttribute="height" constant="46" id="u2G-4s-RB5"/>
69 </constraints>
70 </view>
71 <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">
72 <rect key="frame" x="15" y="54" width="345" height="21"/>
73 <constraints>
74 <constraint firstAttribute="height" constant="21" id="fQO-ja-W9R"/>
75 </constraints>
76 <fontDescription key="fontDescription" type="system" pointSize="17"/>
77 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
78 <nil key="highlightedColor"/>
79 </label>
80 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="O8z-6V-YFd">
81 <rect key="frame" x="15" y="85" width="243" height="60"/>
82 <constraints>
83 <constraint firstAttribute="height" constant="60" id="Bid-NM-Ree"/>
84 </constraints>
85 <fontDescription key="fontDescription" type="system" pointSize="17"/>
86 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
87 <nil key="highlightedColor"/>
88 </label>
89 <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">
90 <rect key="frame" x="15" y="161" width="345" height="80"/>
91 <constraints>
92 <constraint firstAttribute="height" constant="80" id="jgH-57-Bae"/>
93 </constraints>
94 <fontDescription key="fontDescription" type="system" pointSize="17"/>
95 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
96 <nil key="highlightedColor"/>
97 </label>
98 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="qYg-Gw-R2b">
99 <rect key="frame" x="280" y="85" width="80" height="60"/>
100 <constraints>
101 <constraint firstAttribute="width" constant="80" id="NEk-vg-zus"/>
102 <constraint firstAttribute="height" constant="60" id="qlv-ht-SUw"/>
103 </constraints>
104 </imageView>
105 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="gBg-k9-tgw" customClass="AutoTransButton">
106 <rect key="frame" x="15" y="271" width="162" height="30"/>
107 <color key="backgroundColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
108 <constraints>
109 <constraint firstAttribute="height" constant="30" id="6Ir-ZZ-NOb"/>
110 </constraints>
111 <state key="normal" title="メンバーを見る">
112 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
113 </state>
114 <userDefinedRuntimeAttributes>
115 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
116 <integer key="value" value="5"/>
117 </userDefinedRuntimeAttribute>
118 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.grDetail.bt.viewMem"/>
119 </userDefinedRuntimeAttributes>
120 </button>
121 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="caN-x7-hJz" customClass="AutoTransButton">
122 <rect key="frame" x="197" y="271" width="162" height="30"/>
123 <color key="backgroundColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
124 <constraints>
125 <constraint firstAttribute="height" constant="30" id="gIs-Km-dbx"/>
126 </constraints>
127 <state key="normal" title="グループに参加する">
128 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
129 </state>
130 <userDefinedRuntimeAttributes>
131 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
132 <integer key="value" value="5"/>
133 </userDefinedRuntimeAttribute>
134 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.grDetail.bt.joinGr"/>
135 </userDefinedRuntimeAttributes>
136 </button>
137 <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" rowHeight="100" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="4VU-Ye-7Au">
138 <rect key="frame" x="0.0" y="311" width="375" height="306"/>
139 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
140 <connections>
141 <outlet property="dataSource" destination="-1" id="TLB-6X-bRI"/>
142 <outlet property="delegate" destination="-1" id="QcJ-Yh-deE"/>
143 </connections>
144 </tableView>
145 </subviews>
146 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
147 <constraints>
148 <constraint firstItem="25d-3H-0fr" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="5o2-0w-AL5"/>
149 <constraint firstAttribute="trailing" secondItem="25d-3H-0fr" secondAttribute="trailing" id="7IX-2R-C0n"/>
150 <constraint firstItem="O8z-6V-YFd" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="15" id="81K-BQ-6tU"/>
151 <constraint firstAttribute="bottom" secondItem="4VU-Ye-7Au" secondAttribute="bottom" constant="50" id="GKY-NB-YYF"/>
152 <constraint firstItem="O8z-6V-YFd" firstAttribute="top" secondItem="YWV-pS-TCo" secondAttribute="bottom" constant="10" id="HOo-rH-ysj"/>
153 <constraint firstItem="Bdy-dI-j47" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="15" id="I1a-bY-ME9"/>
154 <constraint firstItem="YWV-pS-TCo" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="15" id="IS9-SU-75m"/>
155 <constraint firstAttribute="trailing" secondItem="Bdy-dI-j47" secondAttribute="trailing" constant="15" id="Ka2-Ki-Pu6"/>
156 <constraint firstItem="qYg-Gw-R2b" firstAttribute="top" secondItem="YWV-pS-TCo" secondAttribute="bottom" constant="10" id="One-fp-LTK"/>
157 <constraint firstAttribute="trailing" secondItem="qYg-Gw-R2b" secondAttribute="trailing" constant="15" id="PMd-CT-MVj"/>
158 <constraint firstItem="gBg-k9-tgw" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="15" id="bTf-qW-d1y"/>
159 <constraint firstItem="YWV-pS-TCo" firstAttribute="top" secondItem="25d-3H-0fr" secondAttribute="bottom" constant="8" id="cKj-l3-dgv"/>
160 <constraint firstItem="4VU-Ye-7Au" firstAttribute="top" secondItem="caN-x7-hJz" secondAttribute="bottom" constant="10" id="eQe-Kl-cMp"/>
161 <constraint firstItem="4VU-Ye-7Au" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="fru-BN-M5T"/>
162 <constraint firstItem="caN-x7-hJz" firstAttribute="top" secondItem="gBg-k9-tgw" secondAttribute="top" id="gUS-Ty-4Hk"/>
163 <constraint firstItem="qYg-Gw-R2b" firstAttribute="leading" secondItem="O8z-6V-YFd" secondAttribute="trailing" constant="22" id="gzU-2Q-G96"/>
164 <constraint firstItem="caN-x7-hJz" firstAttribute="leading" secondItem="gBg-k9-tgw" secondAttribute="trailing" constant="20" id="hWK-jf-zee"/>
165 <constraint firstItem="25d-3H-0fr" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="jhT-CE-fr7"/>
166 <constraint firstItem="caN-x7-hJz" firstAttribute="width" secondItem="gBg-k9-tgw" secondAttribute="width" id="mD6-eL-KB7"/>
167 <constraint firstItem="gBg-k9-tgw" firstAttribute="top" secondItem="Bdy-dI-j47" secondAttribute="bottom" constant="30" id="mgw-uX-VOK"/>
168 <constraint firstAttribute="trailing" secondItem="YWV-pS-TCo" secondAttribute="trailing" constant="15" id="rEO-bb-Pqr"/>
169 <constraint firstAttribute="trailing" secondItem="caN-x7-hJz" secondAttribute="trailing" constant="16" id="rRn-Vw-t5g"/>
170 <constraint firstItem="Bdy-dI-j47" firstAttribute="top" secondItem="qYg-Gw-R2b" secondAttribute="bottom" constant="16" id="xXi-T2-c6K"/>
171 <constraint firstAttribute="trailing" secondItem="4VU-Ye-7Au" secondAttribute="trailing" id="ylN-vm-QF2"/>
172 </constraints>
173 <point key="canvasLocation" x="24.5" y="52.5"/>
174 </view>
175 </objects>
176 <resources>
177 <image name="icon_menu" width="30" height="30"/>
178 <image name="today_back_button" width="73" height="37"/>
179 </resources>
180 </document>
181
LifeLog/LifeLog/Localizable.strings
No preview for this file type
LifeLog/LifeLog/SNSViewController.h
1 // 1 //
2 // SNSViewController.h 2 // SNSViewController.h
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 <UIKit/UIKit.h> 9 #import <UIKit/UIKit.h>
10 #import "BaseTableViewController.h" 10 #import "BaseTableViewController.h"
11 11
12 @interface SNSViewController : BaseTableViewController { 12 @interface SNSViewController : BaseTableViewController {
13 13
14 } 14 }
15 15
16 - (IBAction)clickRecommendGroup:(id)sender; 16 - (IBAction)clickRecommendGroup:(id)sender;
17 - (IBAction)clickMyGroup:(id)sender;
18
17 @end 19 @end
18 20
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 19
19 @interface SNSViewController () 20 @interface SNSViewController ()
20 21
21 @end 22 @end
22 23
23 @implementation SNSViewController 24 @implementation SNSViewController
24 25
25 - (void)viewDidLoad { 26 - (void)viewDidLoad {
26 [super viewDidLoad]; 27 [super viewDidLoad];
27 // Do any additional setup after loading the view from its nib. 28 // Do any additional setup after loading the view from its nib.
28 self.title = NSLocalizedString(@"lifelog.tapbar.sns", nil); 29 self.title = NSLocalizedString(@"lifelog.tapbar.sns", nil);
29 30
30 [self callRequestToUpdateData]; 31 [self callRequestToUpdateData];
31 32
32 //register nib for table view 33 //register nib for table view
33 [self.tableBase registerNib:[UINib nibWithNibName:@"SNSRecentTopicTableViewCell" bundle:nil] forCellReuseIdentifier:@"RecentTopicCell"]; 34 [self.tableBase registerNib:[UINib nibWithNibName:@"SNSRecentTopicTableViewCell" bundle:nil] forCellReuseIdentifier:@"RecentTopicCell"];
34 } 35 }
35 36
36 - (void)didReceiveMemoryWarning { 37 - (void)didReceiveMemoryWarning {
37 [super didReceiveMemoryWarning]; 38 [super didReceiveMemoryWarning];
38 // Dispose of any resources that can be recreated. 39 // Dispose of any resources that can be recreated.
39 } 40 }
40 41
41 #pragma mark IBAction 42 #pragma mark IBAction
42 - (IBAction)clickRecommendGroup:(id)sender { 43 - (IBAction)clickRecommendGroup:(id)sender {
43 SearchGroupViewController * search = [[SearchGroupViewController alloc] init]; 44 SearchGroupViewController * search = [[SearchGroupViewController alloc] init];
44 [self.navigationController pushViewController:search animated:true]; 45 [self.navigationController pushViewController:search animated:true];
45 } 46 }
46 47
48 - (IBAction)clickMyGroup:(id)sender {
49 // GroupDetailViewController * detail = [[GroupDetailViewController alloc] init];
50 // [self.navigationController pushViewController:detail animated:true];
51 }
52
47 #pragma mark UITableView Delegate 53 #pragma mark UITableView Delegate
48 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 54 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
49 SNSRecentTopicTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"RecentTopicCell"]; 55 SNSRecentTopicTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"RecentTopicCell"];
50 TweetObject *object = [_curDataList objectAtIndex:indexPath.row]; 56 TweetObject *object = [_curDataList objectAtIndex:indexPath.row];
51 if(object.avatarLink && ![object.avatarLink isKindOfClass:[NSNull class]]) { 57 if(object.avatarLink && ![object.avatarLink isKindOfClass:[NSNull class]]) {
52 [cell.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatarLink]]]; 58 [cell.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatarLink]]];
53 } 59 }
54 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"];
55 cell.lblUsername.text = object.userName; 61 cell.lblUsername.text = object.userName;
56 cell.lblDes.text = object.content; 62 cell.lblDes.text = object.content;
57 cell.lblMode.text = object.mode; 63 cell.lblMode.text = object.mode;
58 cell.lblDistance.text = [NSString stringWithFormat:@"%.0f m", object.distance]; 64 cell.lblDistance.text = [NSString stringWithFormat:@"%.0f m", object.distance];
59 cell.lblDuration.text = object.time; 65 cell.lblDuration.text = object.time;
60 return cell; 66 return cell;
61 } 67 }
62 68
63 #pragma mark Private Function 69 #pragma mark Private Function
64 70
65 -(void) callRequestToUpdateData { 71 -(void) callRequestToUpdateData {
66 [super callRequestToUpdateData]; 72 [super callRequestToUpdateData];
67 73
68 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken]; 74 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken];
69 MBProgressHUD *hudView = nil; 75 MBProgressHUD *hudView = nil;
70 if(_curPage == 1 && !self.refreshControl.isRefreshing) { 76 if(_curPage == 1 && !self.refreshControl.isRefreshing) {
71 hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true]; 77 hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true];
72 } 78 }
73 [[ServerAPI server] requestRecentlyTweetsList:token withPage:_curPage CompletionHandler:^(NSArray *array, NSError *error){ 79 [[ServerAPI server] requestTweetsList:token groupID:-1 withPage:_curPage CompletionHandler:^(NSArray *array, NSError *error){
74 dispatch_async(dispatch_get_main_queue(), ^{ 80 dispatch_async(dispatch_get_main_queue(), ^{
75 if(hudView != nil) { 81 if(hudView != nil) {
76 [hudView hideAnimated:true]; 82 [hudView hideAnimated:true];
77 } 83 }
78 }); 84 });
79 SNSViewController __weak *weakSelf = self; 85 SNSViewController __weak *weakSelf = self;
80 [weakSelf updateTableData:array error:error]; 86 [weakSelf updateTableData:array error:error];
81 }]; 87 }];
82 } 88 }
83 89
84 @end 90 @end
85 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="12118" systemVersion="16D32" 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="12086"/>
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 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>
107 <action selector="clickMyGroup:" destination="-1" eventType="touchUpInside" id="ph8-DF-WMt"/>
108 </connections>
106 </button> 109 </button>
107 <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">
108 <rect key="frame" x="20" y="226" width="335" height="21"/> 111 <rect key="frame" x="20" y="226" width="335" height="21"/>
109 <constraints> 112 <constraints>
110 <constraint firstAttribute="height" constant="21" id="Gu9-7U-YXF"/> 113 <constraint firstAttribute="height" constant="21" id="Gu9-7U-YXF"/>
111 </constraints> 114 </constraints>
112 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/> 115 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/>
113 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 116 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
114 <nil key="highlightedColor"/> 117 <nil key="highlightedColor"/>
115 <userDefinedRuntimeAttributes> 118 <userDefinedRuntimeAttributes>
116 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.sns.lbl.recent"/> 119 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.sns.lbl.recent"/>
117 </userDefinedRuntimeAttributes> 120 </userDefinedRuntimeAttributes>
118 </label> 121 </label>
119 <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">
120 <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"/>
121 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 124 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
122 <connections> 125 <connections>
123 <outlet property="dataSource" destination="-1" id="Y5Y-4y-Bzz"/> 126 <outlet property="dataSource" destination="-1" id="Y5Y-4y-Bzz"/>
124 <outlet property="delegate" destination="-1" id="VCg-Ha-vdk"/> 127 <outlet property="delegate" destination="-1" id="VCg-Ha-vdk"/>
125 </connections> 128 </connections>
126 </tableView> 129 </tableView>
127 </subviews> 130 </subviews>
128 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/> 131 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
129 <constraints> 132 <constraints>
130 <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"/>
131 <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"/>
132 <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"/>
133 <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"/>
134 <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"/>
135 <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"/>
136 <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"/>
137 <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"/>
138 <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"/>
139 <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"/>
140 <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"/>
141 <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"/>
142 <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"/>
143 <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"/>
144 <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"/>
145 <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"/>
146 </constraints> 149 </constraints>
147 <point key="canvasLocation" x="24.5" y="52.5"/> 150 <point key="canvasLocation" x="24.5" y="52.5"/>
148 </view> 151 </view>
149 </objects> 152 </objects>
150 <resources> 153 <resources>
151 <image name="icon_menu" width="30" height="30"/> 154 <image name="icon_menu" width="30" height="30"/>
152 <image name="today_back_button" width="73" height="37"/> 155 <image name="today_back_button" width="73" height="37"/>
153 </resources> 156 </resources>
154 </document> 157 </document>
155 158
LifeLog/LifeLog/SearchGroupViewController.m
1 // 1 //
2 // SearchGroupViewController.m 2 // SearchGroupViewController.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 "SearchGroupViewController.h" 9 #import "SearchGroupViewController.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 "SearchGroupTableViewCell.h" 16 #import "SearchGroupTableViewCell.h"
17 #import "GroupDetailViewController.h"
17 18
18 @interface SearchGroupViewController () 19 @interface SearchGroupViewController ()
19 20
20 @end 21 @end
21 22
22 @implementation SearchGroupViewController 23 @implementation SearchGroupViewController
23 24
24 - (void)viewDidLoad { 25 - (void)viewDidLoad {
25 [super viewDidLoad]; 26 [super viewDidLoad];
26 [self callRequestToUpdateData]; 27 [self callRequestToUpdateData];
27 28
28 //register nib for table view 29 //register nib for table view
29 [self.tableBase registerNib:[UINib nibWithNibName:@"SearchGroupTableViewCell" bundle:nil] forCellReuseIdentifier:@"SearchGroupCell"]; 30 [self.tableBase registerNib:[UINib nibWithNibName:@"SearchGroupTableViewCell" bundle:nil] forCellReuseIdentifier:@"SearchGroupCell"];
30 } 31 }
31 32
32 - (void)didReceiveMemoryWarning { 33 - (void)didReceiveMemoryWarning {
33 [super didReceiveMemoryWarning]; 34 [super didReceiveMemoryWarning];
34 // Dispose of any resources that can be recreated. 35 // Dispose of any resources that can be recreated.
35 } 36 }
36 37
37 #pragma mark IBAction 38 #pragma mark IBAction
38 39
39 - (IBAction)clickBack:(id)sender { 40 - (IBAction)clickBack:(id)sender {
40 [self.navigationController popViewControllerAnimated:true]; 41 [self.navigationController popViewControllerAnimated:true];
41 } 42 }
42 43
43 - (IBAction)clickSearch:(id)sender { 44 - (IBAction)clickSearch:(id)sender {
44 [self resetData]; 45 [self resetData];
45 } 46 }
46 47
47 - (IBAction)clickCreateGroup:(id)sender { 48 - (IBAction)clickCreateGroup:(id)sender {
48 49
49 } 50 }
50 51
51 #pragma mark UITableView Delegate 52 #pragma mark UITableView Delegate
52 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 53 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
53 SearchGroupTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"SearchGroupCell"]; 54 SearchGroupTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"SearchGroupCell"];
54 GroupObject *object = [_curDataList objectAtIndex:indexPath.row]; 55 GroupObject *object = [_curDataList objectAtIndex:indexPath.row];
55 if(object.avatar && ![object.avatar isKindOfClass:[NSNull class]]) { 56 if(object.avatar && ![object.avatar isKindOfClass:[NSNull class]]) {
56 [cell.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatar]]]; 57 [cell.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatar]]];
57 } 58 }
58 cell.lblName.text = object.name; 59 cell.lblName.text = object.name;
59 return cell; 60 return cell;
60 } 61 }
61 62
62 -(void) scrollViewDidScroll:(UIScrollView *)scrollView { 63 -(void) scrollViewDidScroll:(UIScrollView *)scrollView {
63 [self.view endEditing:true]; 64 [self.view endEditing:true];
65 }
66
67 -(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
68 GroupDetailViewController * detail = [[GroupDetailViewController alloc] init];
69 [detail setGroup:[_curDataList objectAtIndex:indexPath.row]];
70 [self.navigationController pushViewController:detail animated:true];
64 } 71 }
65 72
66 #pragma mark UITextField Delegate 73 #pragma mark UITextField Delegate
67 -(BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 74 -(BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
68 [self resetData]; 75 [self resetData];
69 return true; 76 return true;
70 } 77 }
71 78
72 #pragma mark Private Function 79 #pragma mark Private Function
73 -(void) callRequestToUpdateData { 80 -(void) callRequestToUpdateData {
74 [super callRequestToUpdateData]; 81 [super callRequestToUpdateData];
75 82
76 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken]; 83 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken];
77 MBProgressHUD *hudView = nil; 84 MBProgressHUD *hudView = nil;
78 if(_curPage == 1 && !self.refreshControl.isRefreshing) { 85 if(_curPage == 1 && !self.refreshControl.isRefreshing) {
79 hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true]; 86 hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true];
80 } 87 }
81 [[ServerAPI server] searchGroup:token withKey:self.textFieldSearch.text andPage:_curPage CompletionHandler:^(NSArray *array, NSError *error) { 88 [[ServerAPI server] searchGroup:token withKey:self.textFieldSearch.text andPage:_curPage CompletionHandler:^(NSArray *array, NSError *error) {
82 dispatch_async(dispatch_get_main_queue(), ^{ 89 dispatch_async(dispatch_get_main_queue(), ^{
83 if(hudView != nil) { 90 if(hudView != nil) {
84 [hudView hideAnimated:true]; 91 [hudView hideAnimated:true];
85 } 92 }
86 }); 93 });
87 SearchGroupViewController __weak *weakSelf = self; 94 SearchGroupViewController __weak *weakSelf = self;
88 [weakSelf updateTableData:array error:error]; 95 [weakSelf updateTableData:array error:error];
89 }]; 96 }];
90 } 97 }
91 @end 98 @end
92 99
LifeLog/LifeLog/SearchGroupViewController.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="12118" systemVersion="16D32" 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="12086"/>
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="SearchGroupViewController"> 11 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="SearchGroupViewController">
12 <connections> 12 <connections>
13 <outlet property="tableBase" destination="yF3-ZN-ebL" id="WYE-g2-1iW"/> 13 <outlet property="tableBase" destination="yF3-ZN-ebL" id="WYE-g2-1iW"/>
14 <outlet property="textFieldSearch" destination="ZV5-M6-gge" id="my5-ga-rV2"/> 14 <outlet property="textFieldSearch" destination="ZV5-M6-gge" id="my5-ga-rV2"/>
15 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> 15 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
16 </connections> 16 </connections>
17 </placeholder> 17 </placeholder>
18 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> 18 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
19 <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT"> 19 <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
20 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> 20 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
21 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> 21 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
22 <subviews> 22 <subviews>
23 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="YHv-ES-wQ0" userLabel="ViewHeader"> 23 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="YHv-ES-wQ0" userLabel="ViewHeader">
24 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/> 24 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/>
25 <subviews> 25 <subviews>
26 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="SNS" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qQF-tf-31d" customClass="AutoTransLabel"> 26 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="SNS" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qQF-tf-31d" customClass="AutoTransLabel">
27 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/> 27 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/>
28 <fontDescription key="fontDescription" type="system" pointSize="17"/> 28 <fontDescription key="fontDescription" type="system" pointSize="17"/>
29 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 29 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
30 <nil key="highlightedColor"/> 30 <nil key="highlightedColor"/>
31 <userDefinedRuntimeAttributes> 31 <userDefinedRuntimeAttributes>
32 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.sns.title"/> 32 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.searchGr.title"/>
33 </userDefinedRuntimeAttributes> 33 </userDefinedRuntimeAttributes>
34 </label> 34 </label>
35 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="pK9-Nf-LNR"> 35 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="pK9-Nf-LNR">
36 <rect key="frame" x="0.0" y="5" width="70" height="36"/> 36 <rect key="frame" x="0.0" y="5" width="70" height="36"/>
37 <constraints> 37 <constraints>
38 <constraint firstAttribute="width" constant="70" id="Kdt-q3-40K"/> 38 <constraint firstAttribute="width" constant="70" id="Kdt-q3-40K"/>
39 </constraints> 39 </constraints>
40 <state key="normal" image="today_back_button"/> 40 <state key="normal" image="today_back_button"/>
41 <connections> 41 <connections>
42 <action selector="clickBack:" destination="-1" eventType="touchUpInside" id="Z3f-Fd-CEc"/> 42 <action selector="clickBack:" destination="-1" eventType="touchUpInside" id="Z3f-Fd-CEc"/>
43 </connections> 43 </connections>
44 </button> 44 </button>
45 <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="PkV-G3-Fru"> 45 <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="PkV-G3-Fru">
46 <rect key="frame" x="330" y="0.0" width="45" height="46"/> 46 <rect key="frame" x="330" y="0.0" width="45" height="46"/>
47 <constraints> 47 <constraints>
48 <constraint firstAttribute="width" constant="45" id="7W6-Cl-TRS"/> 48 <constraint firstAttribute="width" constant="45" id="7W6-Cl-TRS"/>
49 </constraints> 49 </constraints>
50 <state key="normal" image="icon_menu"/> 50 <state key="normal" image="icon_menu"/>
51 </button> 51 </button>
52 </subviews> 52 </subviews>
53 <color key="backgroundColor" red="0.098039215690000001" green="0.098039215690000001" blue="0.098039215690000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 53 <color key="backgroundColor" red="0.098039215690000001" green="0.098039215690000001" blue="0.098039215690000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
54 <constraints> 54 <constraints>
55 <constraint firstItem="pK9-Nf-LNR" firstAttribute="leading" secondItem="YHv-ES-wQ0" secondAttribute="leading" id="84D-o2-cdT"/> 55 <constraint firstItem="pK9-Nf-LNR" firstAttribute="leading" secondItem="YHv-ES-wQ0" secondAttribute="leading" id="84D-o2-cdT"/>
56 <constraint firstAttribute="trailing" secondItem="qQF-tf-31d" secondAttribute="trailing" id="BMv-VR-p7j"/> 56 <constraint firstAttribute="trailing" secondItem="qQF-tf-31d" secondAttribute="trailing" id="BMv-VR-p7j"/>
57 <constraint firstAttribute="trailing" secondItem="PkV-G3-Fru" secondAttribute="trailing" id="CiO-zw-1XR"/> 57 <constraint firstAttribute="trailing" secondItem="PkV-G3-Fru" secondAttribute="trailing" id="CiO-zw-1XR"/>
58 <constraint firstAttribute="height" constant="46" id="KDJ-I2-eMi"/> 58 <constraint firstAttribute="height" constant="46" id="KDJ-I2-eMi"/>
59 <constraint firstItem="qQF-tf-31d" firstAttribute="leading" secondItem="YHv-ES-wQ0" secondAttribute="leading" id="heq-vX-GHv"/> 59 <constraint firstItem="qQF-tf-31d" firstAttribute="leading" secondItem="YHv-ES-wQ0" secondAttribute="leading" id="heq-vX-GHv"/>
60 <constraint firstAttribute="bottom" secondItem="qQF-tf-31d" secondAttribute="bottom" id="iJg-Q2-eLi"/> 60 <constraint firstAttribute="bottom" secondItem="qQF-tf-31d" secondAttribute="bottom" id="iJg-Q2-eLi"/>
61 <constraint firstItem="qQF-tf-31d" firstAttribute="top" secondItem="YHv-ES-wQ0" secondAttribute="top" id="l3t-CY-3zr"/> 61 <constraint firstItem="qQF-tf-31d" firstAttribute="top" secondItem="YHv-ES-wQ0" secondAttribute="top" id="l3t-CY-3zr"/>
62 <constraint firstAttribute="bottom" secondItem="pK9-Nf-LNR" secondAttribute="bottom" constant="5" id="lJY-v6-1cM"/> 62 <constraint firstAttribute="bottom" secondItem="pK9-Nf-LNR" secondAttribute="bottom" constant="5" id="lJY-v6-1cM"/>
63 <constraint firstItem="pK9-Nf-LNR" firstAttribute="top" secondItem="YHv-ES-wQ0" secondAttribute="top" constant="5" id="ppE-r0-ai7"/> 63 <constraint firstItem="pK9-Nf-LNR" firstAttribute="top" secondItem="YHv-ES-wQ0" secondAttribute="top" constant="5" id="ppE-r0-ai7"/>
64 <constraint firstItem="PkV-G3-Fru" firstAttribute="top" secondItem="YHv-ES-wQ0" secondAttribute="top" id="ptk-1B-s3f"/> 64 <constraint firstItem="PkV-G3-Fru" firstAttribute="top" secondItem="YHv-ES-wQ0" secondAttribute="top" id="ptk-1B-s3f"/>
65 <constraint firstAttribute="bottom" secondItem="PkV-G3-Fru" secondAttribute="bottom" id="yNR-37-Qmd"/> 65 <constraint firstAttribute="bottom" secondItem="PkV-G3-Fru" secondAttribute="bottom" id="yNR-37-Qmd"/>
66 </constraints> 66 </constraints>
67 </view> 67 </view>
68 <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="ZV5-M6-gge"> 68 <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="ZV5-M6-gge">
69 <rect key="frame" x="16" y="86" width="209" height="30"/> 69 <rect key="frame" x="16" y="86" width="209" height="30"/>
70 <nil key="textColor"/> 70 <nil key="textColor"/>
71 <fontDescription key="fontDescription" type="system" pointSize="14"/> 71 <fontDescription key="fontDescription" type="system" pointSize="14"/>
72 <textInputTraits key="textInputTraits"/> 72 <textInputTraits key="textInputTraits"/>
73 <connections> 73 <connections>
74 <outlet property="delegate" destination="-1" id="Wzs-Wc-gd1"/> 74 <outlet property="delegate" destination="-1" id="Wzs-Wc-gd1"/>
75 </connections> 75 </connections>
76 </textField> 76 </textField>
77 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="V72-De-hhR" customClass="AutoTransButton"> 77 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="V72-De-hhR" customClass="AutoTransButton">
78 <rect key="frame" x="250" y="86" width="110" height="30"/> 78 <rect key="frame" x="250" y="86" width="110" height="30"/>
79 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 79 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
80 <constraints> 80 <constraints>
81 <constraint firstAttribute="height" constant="30" id="plQ-aS-bwK"/> 81 <constraint firstAttribute="height" constant="30" id="plQ-aS-bwK"/>
82 <constraint firstAttribute="width" constant="110" id="w47-Tg-vYC"/> 82 <constraint firstAttribute="width" constant="110" id="w47-Tg-vYC"/>
83 </constraints> 83 </constraints>
84 <fontDescription key="fontDescription" type="system" pointSize="13"/> 84 <fontDescription key="fontDescription" type="system" pointSize="13"/>
85 <state key="normal" title="検索"> 85 <state key="normal" title="検索">
86 <color key="titleColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/> 86 <color key="titleColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
87 </state> 87 </state>
88 <userDefinedRuntimeAttributes> 88 <userDefinedRuntimeAttributes>
89 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> 89 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
90 <integer key="value" value="5"/> 90 <integer key="value" value="5"/>
91 </userDefinedRuntimeAttribute> 91 </userDefinedRuntimeAttribute>
92 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.searchGr.bt.search"/> 92 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.searchGr.bt.search"/>
93 </userDefinedRuntimeAttributes> 93 </userDefinedRuntimeAttributes>
94 <connections> 94 <connections>
95 <action selector="clickSearch:" destination="-1" eventType="touchUpInside" id="WPo-6j-0K1"/> 95 <action selector="clickSearch:" destination="-1" eventType="touchUpInside" id="WPo-6j-0K1"/>
96 </connections> 96 </connections>
97 </button> 97 </button>
98 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Rb5-To-ffT" customClass="AutoTransButton"> 98 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Rb5-To-ffT" customClass="AutoTransButton">
99 <rect key="frame" x="250" y="131" width="110" height="30"/> 99 <rect key="frame" x="250" y="131" width="110" height="30"/>
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 firstAttribute="height" constant="30" id="Cwt-yy-rcp"/> 102 <constraint firstAttribute="height" constant="30" id="Cwt-yy-rcp"/>
103 </constraints> 103 </constraints>
104 <fontDescription key="fontDescription" type="system" pointSize="13"/> 104 <fontDescription key="fontDescription" type="system" pointSize="13"/>
105 <state key="normal" title="グループ作成"> 105 <state key="normal" title="グループ作成">
106 <color key="titleColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/> 106 <color key="titleColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
107 </state> 107 </state>
108 <userDefinedRuntimeAttributes> 108 <userDefinedRuntimeAttributes>
109 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> 109 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
110 <integer key="value" value="5"/> 110 <integer key="value" value="5"/>
111 </userDefinedRuntimeAttribute> 111 </userDefinedRuntimeAttribute>
112 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.searchGr.bt.createGr"/> 112 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.searchGr.bt.createGr"/>
113 </userDefinedRuntimeAttributes> 113 </userDefinedRuntimeAttributes>
114 <connections> 114 <connections>
115 <action selector="clickCreateGroup:" destination="-1" eventType="touchUpOutside" id="iYI-HB-mhb"/> 115 <action selector="clickCreateGroup:" destination="-1" eventType="touchUpOutside" id="iYI-HB-mhb"/>
116 </connections> 116 </connections>
117 </button> 117 </button>
118 <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" rowHeight="70" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="yF3-ZN-ebL"> 118 <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" rowHeight="70" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="yF3-ZN-ebL">
119 <rect key="frame" x="0.0" y="176" width="375" height="441"/> 119 <rect key="frame" x="0.0" y="176" width="375" height="441"/>
120 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 120 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
121 <connections> 121 <connections>
122 <outlet property="dataSource" destination="-1" id="tKB-Uq-esC"/> 122 <outlet property="dataSource" destination="-1" id="tKB-Uq-esC"/>
123 <outlet property="delegate" destination="-1" id="88z-Bd-dz0"/> 123 <outlet property="delegate" destination="-1" id="88z-Bd-dz0"/>
124 </connections> 124 </connections>
125 </tableView> 125 </tableView>
126 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="オススメグループ" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YIq-l4-77c" customClass="AutoTransLabel"> 126 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="オススメグループ" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YIq-l4-77c" customClass="AutoTransLabel">
127 <rect key="frame" x="16" y="54" width="343" height="21"/> 127 <rect key="frame" x="16" y="54" width="343" height="21"/>
128 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> 128 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
129 <fontDescription key="fontDescription" type="system" pointSize="17"/> 129 <fontDescription key="fontDescription" type="system" pointSize="17"/>
130 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 130 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
131 <nil key="highlightedColor"/> 131 <nil key="highlightedColor"/>
132 <userDefinedRuntimeAttributes> 132 <userDefinedRuntimeAttributes>
133 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.searchGr.lbl.title"/> 133 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.searchGr.lbl.title"/>
134 </userDefinedRuntimeAttributes> 134 </userDefinedRuntimeAttributes>
135 </label> 135 </label>
136 </subviews> 136 </subviews>
137 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/> 137 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
138 <constraints> 138 <constraints>
139 <constraint firstItem="yF3-ZN-ebL" firstAttribute="top" secondItem="Rb5-To-ffT" secondAttribute="bottom" constant="15" id="2wi-jL-dso"/> 139 <constraint firstItem="yF3-ZN-ebL" firstAttribute="top" secondItem="Rb5-To-ffT" secondAttribute="bottom" constant="15" id="2wi-jL-dso"/>
140 <constraint firstAttribute="trailing" secondItem="V72-De-hhR" secondAttribute="trailing" constant="15" id="342-Ur-sPT"/> 140 <constraint firstAttribute="trailing" secondItem="V72-De-hhR" secondAttribute="trailing" constant="15" id="342-Ur-sPT"/>
141 <constraint firstItem="YHv-ES-wQ0" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="3ft-ch-v8f"/> 141 <constraint firstItem="YHv-ES-wQ0" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="3ft-ch-v8f"/>
142 <constraint firstItem="Rb5-To-ffT" firstAttribute="top" secondItem="V72-De-hhR" secondAttribute="bottom" constant="15" id="Hic-jl-Ndk"/> 142 <constraint firstItem="Rb5-To-ffT" firstAttribute="top" secondItem="V72-De-hhR" secondAttribute="bottom" constant="15" id="Hic-jl-Ndk"/>
143 <constraint firstAttribute="bottom" secondItem="yF3-ZN-ebL" secondAttribute="bottom" constant="50" id="Nad-2Y-mrb"/> 143 <constraint firstAttribute="bottom" secondItem="yF3-ZN-ebL" secondAttribute="bottom" constant="50" id="Nad-2Y-mrb"/>
144 <constraint firstItem="V72-De-hhR" firstAttribute="leading" secondItem="ZV5-M6-gge" secondAttribute="trailing" constant="25" id="Pv6-Li-O07"/> 144 <constraint firstItem="V72-De-hhR" firstAttribute="leading" secondItem="ZV5-M6-gge" secondAttribute="trailing" constant="25" id="Pv6-Li-O07"/>
145 <constraint firstAttribute="trailing" secondItem="YHv-ES-wQ0" secondAttribute="trailing" id="crv-XZ-T34"/> 145 <constraint firstAttribute="trailing" secondItem="YHv-ES-wQ0" secondAttribute="trailing" id="crv-XZ-T34"/>
146 <constraint firstItem="yF3-ZN-ebL" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="f6n-Zr-w64"/> 146 <constraint firstItem="yF3-ZN-ebL" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="f6n-Zr-w64"/>
147 <constraint firstItem="Rb5-To-ffT" firstAttribute="trailing" secondItem="V72-De-hhR" secondAttribute="trailing" id="fHS-Kk-Ew0"/> 147 <constraint firstItem="Rb5-To-ffT" firstAttribute="trailing" secondItem="V72-De-hhR" secondAttribute="trailing" id="fHS-Kk-Ew0"/>
148 <constraint firstItem="YHv-ES-wQ0" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="fdM-w1-hOo"/> 148 <constraint firstItem="YHv-ES-wQ0" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="fdM-w1-hOo"/>
149 <constraint firstItem="V72-De-hhR" firstAttribute="top" secondItem="YHv-ES-wQ0" secondAttribute="bottom" constant="40" id="hlc-vb-EVo"/> 149 <constraint firstItem="V72-De-hhR" firstAttribute="top" secondItem="YHv-ES-wQ0" secondAttribute="bottom" constant="40" id="hlc-vb-EVo"/>
150 <constraint firstItem="Rb5-To-ffT" firstAttribute="width" secondItem="V72-De-hhR" secondAttribute="width" id="jtP-uw-vkF"/> 150 <constraint firstItem="Rb5-To-ffT" firstAttribute="width" secondItem="V72-De-hhR" secondAttribute="width" id="jtP-uw-vkF"/>
151 <constraint firstItem="ZV5-M6-gge" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="16" id="kxD-e8-dYm"/> 151 <constraint firstItem="ZV5-M6-gge" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="16" id="kxD-e8-dYm"/>
152 <constraint firstAttribute="trailing" secondItem="yF3-ZN-ebL" secondAttribute="trailing" id="rZv-uL-RZ3"/> 152 <constraint firstAttribute="trailing" secondItem="yF3-ZN-ebL" secondAttribute="trailing" id="rZv-uL-RZ3"/>
153 <constraint firstItem="V72-De-hhR" firstAttribute="top" secondItem="ZV5-M6-gge" secondAttribute="top" id="voZ-Kp-Zm3"/> 153 <constraint firstItem="V72-De-hhR" firstAttribute="top" secondItem="ZV5-M6-gge" secondAttribute="top" id="voZ-Kp-Zm3"/>
154 </constraints> 154 </constraints>
155 <point key="canvasLocation" x="24.5" y="52.5"/> 155 <point key="canvasLocation" x="24.5" y="52.5"/>
156 </view> 156 </view>
157 </objects> 157 </objects>
158 <resources> 158 <resources>
159 <image name="icon_menu" width="30" height="30"/> 159 <image name="icon_menu" width="30" height="30"/>
160 <image name="today_back_button" width="73" height="37"/> 160 <image name="today_back_button" width="73" height="37"/>
161 </resources> 161 </resources>
162 </document> 162 </document>
163 163
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 15
16 @interface ServerAPI : NSObject 16 @interface ServerAPI : NSObject
17 + (instancetype) server; 17 + (instancetype) server;
18 @property (nonatomic, assign) NSTimeInterval timeOutInterval; 18 @property (nonatomic, assign) NSTimeInterval timeOutInterval;
19 - (void)loginWithEmail:(NSString *)email Password:(NSString *)password CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion; 19 - (void)loginWithEmail:(NSString *)email Password:(NSString *)password CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion;
20 - (void)registerUserWithParams:(NSDictionary *)params CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion; 20 - (void)registerUserWithParams:(NSDictionary *)params CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion;
21 - (void)uploadImage:(NSString *)token andImageData:(NSData *)data CompletionHandler:(void (^)(NSString *, NSError *)) completion; 21 - (void)uploadImage:(NSString *)token andImageData:(NSData *)data CompletionHandler:(void (^)(NSString *, NSError *)) completion;
22 - (void)forgetPass:(NSString *)email CompletionHandler:(void (^)(NSError *)) completion; 22 - (void)forgetPass:(NSString *)email CompletionHandler:(void (^)(NSError *)) completion;
23 - (void)confirmForgetPass:(NSString *)email withConfirm:(NSString *)confirm CompletionHandler:(void (^)(NSError *)) completion; 23 - (void)confirmForgetPass:(NSString *)email withConfirm:(NSString *)confirm CompletionHandler:(void (^)(NSError *)) completion;
24 24
25 #pragma mark - History Screen Function 25 #pragma mark - History Screen Function
26 - (void) requestHistory:(NSString *)token atDate:(NSDate *)date withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryObject *, NSError *)) completion; 26 - (void) requestHistory:(NSString *)token atDate:(NSDate *)date withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryObject *, NSError *)) completion;
27 - (void) requestHistoryGraph:(NSString *)token withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryGraphObject *, NSError *)) completion; 27 - (void) requestHistoryGraph:(NSString *)token withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryGraphObject *, NSError *)) completion;
28 - (void) requestHistoryList:(NSString *)token withType:(int)type andMode:(int) mode AtPage:(int) page CompletionHandler:(void (^)(NSArray *, NSError *)) completion; 28 - (void) requestHistoryList:(NSString *)token withType:(int)type andMode:(int) mode AtPage:(int) page CompletionHandler:(void (^)(NSArray *, NSError *)) completion;
29 29
30 #pragma mark - SNS Screen Function 30 #pragma mark - SNS Screen Function
31 - (void) requestRecentlyTweetsList:(NSString *)token withPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion; 31 /*
32 Get tweet of group and get recent tweet is same API
33 If groupID equal -1, it will request recent tweet. Otherwise will request tweet of group
34 */
35 - (void) requestTweetsList:(NSString *)token groupID: (int) groupID withPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion;
32 - (void) searchGroup:(NSString *)token withKey:(NSString *)key andPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion; 36 - (void) searchGroup:(NSString *)token withKey:(NSString *)key andPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion;
33 @end 37 @end
34 38
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 14
15 @implementation NSString (NSString_Extended) 15 @implementation NSString (NSString_Extended)
16 - (NSString *)urlencode { 16 - (NSString *)urlencode {
17 NSMutableString *output = [NSMutableString string]; 17 NSMutableString *output = [NSMutableString string];
18 const unsigned char *source = (const unsigned char *)[self UTF8String]; 18 const unsigned char *source = (const unsigned char *)[self UTF8String];
19 int sourceLen = (int)strlen((const char *)source); 19 int sourceLen = (int)strlen((const char *)source);
20 for (int i = 0; i < sourceLen; ++i) { 20 for (int i = 0; i < sourceLen; ++i) {
21 const unsigned char thisChar = source[i]; 21 const unsigned char thisChar = source[i];
22 if (thisChar == ' '){ 22 if (thisChar == ' '){
23 [output appendString:@"+"]; 23 [output appendString:@"+"];
24 } else if (thisChar == '.' || thisChar == '-' || thisChar == '_' || thisChar == '~' || 24 } else if (thisChar == '.' || thisChar == '-' || thisChar == '_' || thisChar == '~' ||
25 (thisChar >= 'a' && thisChar <= 'z') || 25 (thisChar >= 'a' && thisChar <= 'z') ||
26 (thisChar >= 'A' && thisChar <= 'Z') || 26 (thisChar >= 'A' && thisChar <= 'Z') ||
27 (thisChar >= '0' && thisChar <= '9')) { 27 (thisChar >= '0' && thisChar <= '9')) {
28 [output appendFormat:@"%c", thisChar]; 28 [output appendFormat:@"%c", thisChar];
29 } else { 29 } else {
30 [output appendFormat:@"%%%02X", thisChar]; 30 [output appendFormat:@"%%%02X", thisChar];
31 } 31 }
32 } 32 }
33 return output; 33 return output;
34 } 34 }
35 @end 35 @end
36 36
37 @implementation ServerAPI 37 @implementation ServerAPI
38 static ServerAPI *_server = nil; 38 static ServerAPI *_server = nil;
39 39
40 NSURLSessionDataTask * searchTask; 40 NSURLSessionDataTask * searchTask;
41 41
42 @synthesize timeOutInterval = _timeOutInterval; 42 @synthesize timeOutInterval = _timeOutInterval;
43 43
44 + (instancetype)server 44 + (instancetype)server
45 { 45 {
46 @synchronized(self) { 46 @synchronized(self) {
47 if (_server == nil) { 47 if (_server == nil) {
48 _server = [[ServerAPI alloc] init]; 48 _server = [[ServerAPI alloc] init];
49 } 49 }
50 } 50 }
51 return _server; 51 return _server;
52 } 52 }
53 53
54 - (instancetype)init 54 - (instancetype)init
55 { 55 {
56 self = [super init]; 56 self = [super init];
57 if (self != nil) { 57 if (self != nil) {
58 self.timeOutInterval = 150; 58 self.timeOutInterval = 150;
59 } 59 }
60 return self; 60 return self;
61 } 61 }
62 62
63 // Login 63 // Login
64 - (void)loginWithEmail:(NSString *)email Password:(NSString *)password CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion 64 - (void)loginWithEmail:(NSString *)email Password:(NSString *)password CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion
65 { 65 {
66 [self _request:[kServerAddress stringByAppendingFormat: @"login"] method:@"POST" token:@"" paras:@{@"email":email, @"password": password} completion:^(NSData *data, NSError *error) { 66 [self _request:[kServerAddress stringByAppendingFormat: @"login"] method:@"POST" token:@"" paras:@{@"email":email, @"password": password} completion:^(NSData *data, NSError *error) {
67 67
68 if (completion == NULL) { 68 if (completion == NULL) {
69 return ; 69 return ;
70 } 70 }
71 71
72 if (error == nil) 72 if (error == nil)
73 { 73 {
74 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 74 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
75 75
76 int status = [dataResult[@"status"] intValue]; 76 int status = [dataResult[@"status"] intValue];
77 if (status == 1) { // status = 1 success 77 if (status == 1) { // status = 1 success
78 NSString *token = dataResult[@"result"][@"token"]; 78 NSString *token = dataResult[@"result"][@"token"];
79 NSDictionary *dictUser = dataResult[@"result"][@"user"]; 79 NSDictionary *dictUser = dataResult[@"result"][@"user"];
80 User *user = [[User alloc] init]; 80 User *user = [[User alloc] init];
81 user.user_id = [NSString stringWithFormat:@"%@",dictUser[@"id"]]; 81 user.user_id = [NSString stringWithFormat:@"%@",dictUser[@"id"]];
82 user.username = [NSString stringWithFormat:@"%@",dictUser[@"username"]]; 82 user.username = [NSString stringWithFormat:@"%@",dictUser[@"username"]];
83 user.full_name = [NSString stringWithFormat:@"%@",dictUser[@"full_name"]]; 83 user.full_name = [NSString stringWithFormat:@"%@",dictUser[@"full_name"]];
84 user.nickname = [NSString stringWithFormat:@"%@",dictUser[@"nickname"]]; 84 user.nickname = [NSString stringWithFormat:@"%@",dictUser[@"nickname"]];
85 user.email = [NSString stringWithFormat:@"%@",dictUser[@"email"]]; 85 user.email = [NSString stringWithFormat:@"%@",dictUser[@"email"]];
86 user.password = [NSString stringWithFormat:@"%@",dictUser[@"password"]]; 86 user.password = [NSString stringWithFormat:@"%@",dictUser[@"password"]];
87 user.birthday = [NSString stringWithFormat:@"%@",dictUser[@"birthday"]]; 87 user.birthday = [NSString stringWithFormat:@"%@",dictUser[@"birthday"]];
88 user.address = [NSString stringWithFormat:@"%@",dictUser[@"address"]]; 88 user.address = [NSString stringWithFormat:@"%@",dictUser[@"address"]];
89 user.gender = [[NSString stringWithFormat:@"%@",dictUser[@"gender"]] intValue]; 89 user.gender = [[NSString stringWithFormat:@"%@",dictUser[@"gender"]] intValue];
90 user.height = [[NSString stringWithFormat:@"%@",dictUser[@"height"]] floatValue]; 90 user.height = [[NSString stringWithFormat:@"%@",dictUser[@"height"]] floatValue];
91 user.weight = [[NSString stringWithFormat:@"%@",dictUser[@"weight"]] floatValue]; 91 user.weight = [[NSString stringWithFormat:@"%@",dictUser[@"weight"]] floatValue];
92 user.user_description = [NSString stringWithFormat:@"%@",dictUser[@"description"]]; 92 user.user_description = [NSString stringWithFormat:@"%@",dictUser[@"description"]];
93 user.created_at = [NSString stringWithFormat:@"%@",dictUser[@"created_at"]]; 93 user.created_at = [NSString stringWithFormat:@"%@",dictUser[@"created_at"]];
94 user.physical_activity = [NSString stringWithFormat:@"%@",dictUser[@"physical_activity"]]; 94 user.physical_activity = [NSString stringWithFormat:@"%@",dictUser[@"physical_activity"]];
95 user.profile_image = [NSString stringWithFormat:@"%@",dictUser[@"profile_image"]]; 95 user.profile_image = [NSString stringWithFormat:@"%@",dictUser[@"profile_image"]];
96 user.updated_at = [NSString stringWithFormat:@"%@",dictUser[@"updated_at"]]; 96 user.updated_at = [NSString stringWithFormat:@"%@",dictUser[@"updated_at"]];
97 user.delete_flag = [[NSString stringWithFormat:@"%@",dictUser[@"delete_flag"]] intValue]; 97 user.delete_flag = [[NSString stringWithFormat:@"%@",dictUser[@"delete_flag"]] intValue];
98 user.fat_rate = [[NSString stringWithFormat:@"%@",dictUser[@"fat_rate"]] intValue]; 98 user.fat_rate = [[NSString stringWithFormat:@"%@",dictUser[@"fat_rate"]] intValue];
99 user.profiles_share = [[NSString stringWithFormat:@"%@",dictUser[@"profiles_share"]] intValue]; 99 user.profiles_share = [[NSString stringWithFormat:@"%@",dictUser[@"profiles_share"]] intValue];
100 user.remember_me = [[NSString stringWithFormat:@"%@",dictUser[@"remember_me"]] intValue]; 100 user.remember_me = [[NSString stringWithFormat:@"%@",dictUser[@"remember_me"]] intValue];
101 user.sound_notifications_share = [[NSString stringWithFormat:@"%@",dictUser[@"sound_notifications_share"]] intValue]; 101 user.sound_notifications_share = [[NSString stringWithFormat:@"%@",dictUser[@"sound_notifications_share"]] intValue];
102 user.spend_calo_in_day = [[NSString stringWithFormat:@"%@",dictUser[@"spend_calo_in_day"]] intValue]; 102 user.spend_calo_in_day = [[NSString stringWithFormat:@"%@",dictUser[@"spend_calo_in_day"]] intValue];
103 user.target = [[NSString stringWithFormat:@"%@",dictUser[@"target"]] intValue]; 103 user.target = [[NSString stringWithFormat:@"%@",dictUser[@"target"]] intValue];
104 completion(user, token, nil); 104 completion(user, token, nil);
105 } 105 }
106 else { // status = 0 error 106 else { // status = 0 error
107 NSString *message = dataResult[@"message"]; 107 NSString *message = dataResult[@"message"];
108 if (message == nil) { 108 if (message == nil) {
109 message = @"Unknown error"; 109 message = @"Unknown error";
110 } 110 }
111 NSError *loginFaild = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 111 NSError *loginFaild = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
112 completion(nil, nil, loginFaild); 112 completion(nil, nil, loginFaild);
113 } 113 }
114 } 114 }
115 else 115 else
116 { 116 {
117 completion(nil, nil, error); 117 completion(nil, nil, error);
118 } 118 }
119 }]; 119 }];
120 } 120 }
121 121
122 // Register 122 // Register
123 - (void)registerUserWithParams:(NSDictionary *)params CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion { 123 - (void)registerUserWithParams:(NSDictionary *)params CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion {
124 [self _request:[kServerAddress stringByAppendingFormat: @"register"] method:@"POST" token:@"" paras:params completion:^(NSData *data, NSError *error) { 124 [self _request:[kServerAddress stringByAppendingFormat: @"register"] method:@"POST" token:@"" paras:params completion:^(NSData *data, NSError *error) {
125 125
126 if (completion == NULL) { 126 if (completion == NULL) {
127 return ; 127 return ;
128 } 128 }
129 129
130 if (error == nil) 130 if (error == nil)
131 { 131 {
132 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 132 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
133 133
134 int status = [dataResult[@"status"] intValue]; 134 int status = [dataResult[@"status"] intValue];
135 if (status == 1) { // status = 1 success 135 if (status == 1) { // status = 1 success
136 NSString *token = dataResult[@"result"][@"token"]; 136 NSString *token = dataResult[@"result"][@"token"];
137 NSDictionary *dictUser = dataResult[@"result"][@"user"]; 137 NSDictionary *dictUser = dataResult[@"result"][@"user"];
138 User *user = [[User alloc] init]; 138 User *user = [[User alloc] init];
139 user.user_id = [NSString stringWithFormat:@"%@",dictUser[@"id"]]; 139 user.user_id = [NSString stringWithFormat:@"%@",dictUser[@"id"]];
140 user.username = [NSString stringWithFormat:@"%@",dictUser[@"username"]]; 140 user.username = [NSString stringWithFormat:@"%@",dictUser[@"username"]];
141 user.full_name = [NSString stringWithFormat:@"%@",dictUser[@"full_name"]]; 141 user.full_name = [NSString stringWithFormat:@"%@",dictUser[@"full_name"]];
142 user.nickname = [NSString stringWithFormat:@"%@",dictUser[@"nickname"]]; 142 user.nickname = [NSString stringWithFormat:@"%@",dictUser[@"nickname"]];
143 user.email = [NSString stringWithFormat:@"%@",dictUser[@"email"]]; 143 user.email = [NSString stringWithFormat:@"%@",dictUser[@"email"]];
144 user.password = [NSString stringWithFormat:@"%@",dictUser[@"password"]]; 144 user.password = [NSString stringWithFormat:@"%@",dictUser[@"password"]];
145 user.birthday = [NSString stringWithFormat:@"%@",dictUser[@"birthday"]]; 145 user.birthday = [NSString stringWithFormat:@"%@",dictUser[@"birthday"]];
146 user.address = [NSString stringWithFormat:@"%@",dictUser[@"address"]]; 146 user.address = [NSString stringWithFormat:@"%@",dictUser[@"address"]];
147 user.gender = [[NSString stringWithFormat:@"%@",dictUser[@"gender"]] intValue]; 147 user.gender = [[NSString stringWithFormat:@"%@",dictUser[@"gender"]] intValue];
148 user.height = [[NSString stringWithFormat:@"%@",dictUser[@"height"]] floatValue]; 148 user.height = [[NSString stringWithFormat:@"%@",dictUser[@"height"]] floatValue];
149 user.weight = [[NSString stringWithFormat:@"%@",dictUser[@"weight"]] floatValue]; 149 user.weight = [[NSString stringWithFormat:@"%@",dictUser[@"weight"]] floatValue];
150 user.user_description = [NSString stringWithFormat:@"%@",dictUser[@"description"]]; 150 user.user_description = [NSString stringWithFormat:@"%@",dictUser[@"description"]];
151 user.created_at = [NSString stringWithFormat:@"%@",dictUser[@"created_at"]]; 151 user.created_at = [NSString stringWithFormat:@"%@",dictUser[@"created_at"]];
152 user.physical_activity = [NSString stringWithFormat:@"%@",dictUser[@"physical_activity"]]; 152 user.physical_activity = [NSString stringWithFormat:@"%@",dictUser[@"physical_activity"]];
153 user.profile_image = [NSString stringWithFormat:@"%@",dictUser[@"profile_image"]]; 153 user.profile_image = [NSString stringWithFormat:@"%@",dictUser[@"profile_image"]];
154 user.updated_at = [NSString stringWithFormat:@"%@",dictUser[@"updated_at"]]; 154 user.updated_at = [NSString stringWithFormat:@"%@",dictUser[@"updated_at"]];
155 user.delete_flag = [[NSString stringWithFormat:@"%@",dictUser[@"delete_flag"]] intValue]; 155 user.delete_flag = [[NSString stringWithFormat:@"%@",dictUser[@"delete_flag"]] intValue];
156 user.fat_rate = [[NSString stringWithFormat:@"%@",dictUser[@"fat_rate"]] intValue]; 156 user.fat_rate = [[NSString stringWithFormat:@"%@",dictUser[@"fat_rate"]] intValue];
157 user.profiles_share = [[NSString stringWithFormat:@"%@",dictUser[@"profiles_share"]] intValue]; 157 user.profiles_share = [[NSString stringWithFormat:@"%@",dictUser[@"profiles_share"]] intValue];
158 user.remember_me = [[NSString stringWithFormat:@"%@",dictUser[@"remember_me"]] intValue]; 158 user.remember_me = [[NSString stringWithFormat:@"%@",dictUser[@"remember_me"]] intValue];
159 user.sound_notifications_share = [[NSString stringWithFormat:@"%@",dictUser[@"sound_notifications_share"]] intValue]; 159 user.sound_notifications_share = [[NSString stringWithFormat:@"%@",dictUser[@"sound_notifications_share"]] intValue];
160 user.spend_calo_in_day = [[NSString stringWithFormat:@"%@",dictUser[@"spend_calo_in_day"]] intValue]; 160 user.spend_calo_in_day = [[NSString stringWithFormat:@"%@",dictUser[@"spend_calo_in_day"]] intValue];
161 user.target = [[NSString stringWithFormat:@"%@",dictUser[@"target"]] intValue]; 161 user.target = [[NSString stringWithFormat:@"%@",dictUser[@"target"]] intValue];
162 completion(user, token, nil); 162 completion(user, token, nil);
163 } 163 }
164 else { // status = 0 error 164 else { // status = 0 error
165 NSString *message = dataResult[@"message"]; 165 NSString *message = dataResult[@"message"];
166 if (message == nil) { 166 if (message == nil) {
167 message = @"Unknown error"; 167 message = @"Unknown error";
168 } 168 }
169 NSError *loginFaild = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 169 NSError *loginFaild = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
170 completion(nil, nil, loginFaild); 170 completion(nil, nil, loginFaild);
171 } 171 }
172 } 172 }
173 else 173 else
174 { 174 {
175 completion(nil, nil, error); 175 completion(nil, nil, error);
176 } 176 }
177 }]; 177 }];
178 } 178 }
179 179
180 - (void)forgetPass:(NSString *)email CompletionHandler:(void (^)(NSError *)) completion { 180 - (void)forgetPass:(NSString *)email CompletionHandler:(void (^)(NSError *)) completion {
181 [self _request:[kServerAddress stringByAppendingFormat: @"forgetPass"] method:@"POST" token:@"" paras:@{@"email":email} completion:^(NSData *data, NSError *error) { 181 [self _request:[kServerAddress stringByAppendingFormat: @"forgetPass"] method:@"POST" token:@"" paras:@{@"email":email} completion:^(NSData *data, NSError *error) {
182 182
183 if (completion == NULL) { 183 if (completion == NULL) {
184 return ; 184 return ;
185 } 185 }
186 186
187 if (error == nil) 187 if (error == nil)
188 { 188 {
189 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 189 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
190 190
191 int status = [dataResult[@"status"] intValue]; 191 int status = [dataResult[@"status"] intValue];
192 if (status == 1) { // status = 1 success 192 if (status == 1) { // status = 1 success
193 completion(nil); 193 completion(nil);
194 } 194 }
195 else { // status = 0 error 195 else { // status = 0 error
196 NSString *message = dataResult[@"message"]; 196 NSString *message = dataResult[@"message"];
197 if (message == nil) { 197 if (message == nil) {
198 message = @"Unknown error"; 198 message = @"Unknown error";
199 } 199 }
200 NSError *forgetPass = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 200 NSError *forgetPass = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
201 completion(forgetPass); 201 completion(forgetPass);
202 } 202 }
203 } 203 }
204 else 204 else
205 { 205 {
206 completion(error); 206 completion(error);
207 } 207 }
208 }]; 208 }];
209 } 209 }
210 - (void)confirmForgetPass:(NSString *)email withConfirm:(NSString *)confirm CompletionHandler:(void (^)(NSError *)) completion { 210 - (void)confirmForgetPass:(NSString *)email withConfirm:(NSString *)confirm CompletionHandler:(void (^)(NSError *)) completion {
211 [self _request:[kServerAddress stringByAppendingFormat: @"forgetPass/confirm"] method:@"POST" token:@"" paras:@{@"email":email, @"code_confirm": confirm} completion:^(NSData *data, NSError *error) { 211 [self _request:[kServerAddress stringByAppendingFormat: @"forgetPass/confirm"] method:@"POST" token:@"" paras:@{@"email":email, @"code_confirm": confirm} completion:^(NSData *data, NSError *error) {
212 212
213 if (completion == NULL) { 213 if (completion == NULL) {
214 return ; 214 return ;
215 } 215 }
216 216
217 if (error == nil) 217 if (error == nil)
218 { 218 {
219 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 219 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
220 220
221 int status = [dataResult[@"status"] intValue]; 221 int status = [dataResult[@"status"] intValue];
222 if (status == 1) { // status = 1 success 222 if (status == 1) { // status = 1 success
223 completion(nil); 223 completion(nil);
224 } 224 }
225 else { // status = 0 error 225 else { // status = 0 error
226 NSString *message = dataResult[@"message"]; 226 NSString *message = dataResult[@"message"];
227 NSError *confirmForgetPass = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 227 NSError *confirmForgetPass = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
228 completion(confirmForgetPass); 228 completion(confirmForgetPass);
229 } 229 }
230 } 230 }
231 else 231 else
232 { 232 {
233 completion(error); 233 completion(error);
234 } 234 }
235 }]; 235 }];
236 } 236 }
237 237
238 - (void)uploadImage:(NSString *)token andImageData:(NSData *)data CompletionHandler:(void (^)(NSString *, NSError *)) completion { 238 - (void)uploadImage:(NSString *)token andImageData:(NSData *)data CompletionHandler:(void (^)(NSString *, NSError *)) completion {
239 NSDictionary *dict = nil; 239 NSDictionary *dict = nil;
240 NSString *base64Encoded = [data base64EncodedStringWithOptions:0]; 240 NSString *base64Encoded = [data base64EncodedStringWithOptions:0];
241 if (token != nil) { 241 if (token != nil) {
242 dict = @{@"token":token, @"img": base64Encoded}; 242 dict = @{@"token":token, @"img": base64Encoded};
243 } 243 }
244 else { 244 else {
245 dict = @{@"img": base64Encoded}; 245 dict = @{@"img": base64Encoded};
246 } 246 }
247 [self _request:[kServerAddress stringByAppendingFormat: @"upload-image"] method:@"POST" token:token paras:dict completion:^(NSData *data, NSError *error) { 247 [self _request:[kServerAddress stringByAppendingFormat: @"upload-image"] method:@"POST" token:token paras:dict completion:^(NSData *data, NSError *error) {
248 248
249 if (completion == NULL) { 249 if (completion == NULL) {
250 return ; 250 return ;
251 } 251 }
252 252
253 if (error == nil) 253 if (error == nil)
254 { 254 {
255 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 255 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
256 NSString *image_profile = [NSString stringWithFormat:@"%@", dataResult[@"message"]]; 256 NSString *image_profile = [NSString stringWithFormat:@"%@", dataResult[@"message"]];
257 completion(image_profile, nil); 257 completion(image_profile, nil);
258 } 258 }
259 else 259 else
260 { 260 {
261 completion(nil, error); 261 completion(nil, error);
262 } 262 }
263 }]; 263 }];
264 } 264 }
265 265
266 -(NSString *) convertIntToString : (int) type { 266 -(NSString *) convertIntToString : (int) type {
267 switch (type) { 267 switch (type) {
268 case 1: 268 case 1:
269 return @"week"; 269 return @"week";
270 break; 270 break;
271 case 2: 271 case 2:
272 return @"oneMonth"; 272 return @"oneMonth";
273 break; 273 break;
274 case 3: 274 case 3:
275 return @"threeMonth"; 275 return @"threeMonth";
276 break; 276 break;
277 case 4: 277 case 4:
278 return @"sixMonth"; 278 return @"sixMonth";
279 break; 279 break;
280 default: 280 default:
281 return @"today"; 281 return @"today";
282 break; 282 break;
283 } 283 }
284 } 284 }
285 285
286 #pragma mark - History Screen Function 286 #pragma mark - History Screen Function
287 - (void) requestHistory:(NSString *)token atDate:(NSDate *)date withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryObject *, NSError *)) completion { 287 - (void) requestHistory:(NSString *)token atDate:(NSDate *)date withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryObject *, NSError *)) completion {
288 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/history/%@/%d", [self convertIntToString:type], mode]; 288 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/history/%@/%d", [self convertIntToString:type], mode];
289 NSLog(@"requestHistory link %@", url); 289 NSLog(@"requestHistory link %@", url);
290 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) { 290 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) {
291 291
292 if (completion == NULL) { 292 if (completion == NULL) {
293 return ; 293 return ;
294 } 294 }
295 295
296 if (error == nil) 296 if (error == nil)
297 { 297 {
298 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 298 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
299 NSLog(@"%@", dataResult); 299 NSLog(@"%@", dataResult);
300 int status = [dataResult[@"status"] intValue]; 300 int status = [dataResult[@"status"] intValue];
301 if (status == 1) { // status = 1 success 301 if (status == 1) { // status = 1 success
302 HistoryObject * object = [[HistoryObject alloc] initWithData:dataResult[@"result"]]; 302 HistoryObject * object = [[HistoryObject alloc] initWithData:dataResult[@"result"]];
303 completion(object, nil); 303 completion(object, nil);
304 } 304 }
305 else { 305 else {
306 NSString *message = dataResult[@"message"]; 306 NSString *message = dataResult[@"message"];
307 if (message == nil) { 307 if (message == nil) {
308 message = @"Unknown error"; 308 message = @"Unknown error";
309 } 309 }
310 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 310 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
311 completion(nil, errorObject); 311 completion(nil, errorObject);
312 } 312 }
313 } 313 }
314 else 314 else
315 { 315 {
316 completion(nil, error); 316 completion(nil, error);
317 } 317 }
318 }]; 318 }];
319 } 319 }
320 320
321 - (void) requestHistoryGraph:(NSString *)token withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryGraphObject *, NSError *)) completion { 321 - (void) requestHistoryGraph:(NSString *)token withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryGraphObject *, NSError *)) completion {
322 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/history/graph/%@/%d", [self convertIntToString:type], mode]; 322 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/history/graph/%@/%d", [self convertIntToString:type], mode];
323 NSLog(@"requestHistoryGraph link %@", url); 323 NSLog(@"requestHistoryGraph link %@", url);
324 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) { 324 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) {
325 325
326 if (completion == NULL) { 326 if (completion == NULL) {
327 return ; 327 return ;
328 } 328 }
329 329
330 if (error == nil) 330 if (error == nil)
331 { 331 {
332 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 332 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
333 NSLog(@"%@", dataResult); 333 NSLog(@"%@", dataResult);
334 int status = [dataResult[@"status"] intValue]; 334 int status = [dataResult[@"status"] intValue];
335 if (status == 1) { // status = 1 success 335 if (status == 1) { // status = 1 success
336 HistoryGraphObject * object = [[HistoryGraphObject alloc] initWithData:dataResult[@"result"]]; 336 HistoryGraphObject * object = [[HistoryGraphObject alloc] initWithData:dataResult[@"result"]];
337 completion(object, nil); 337 completion(object, nil);
338 } 338 }
339 else { 339 else {
340 NSString *message = dataResult[@"message"]; 340 NSString *message = dataResult[@"message"];
341 if (message == nil) { 341 if (message == nil) {
342 message = @"Unknown error"; 342 message = @"Unknown error";
343 } 343 }
344 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 344 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
345 completion(nil, errorObject); 345 completion(nil, errorObject);
346 } 346 }
347 } 347 }
348 else 348 else
349 { 349 {
350 completion(nil, error); 350 completion(nil, error);
351 } 351 }
352 }]; 352 }];
353 } 353 }
354 354
355 - (void) requestHistoryList:(NSString *)token withType:(int)type andMode:(int) mode AtPage:(int) page CompletionHandler:(void (^)(NSArray *, NSError *)) completion { 355 - (void) requestHistoryList:(NSString *)token withType:(int)type andMode:(int) mode AtPage:(int) page CompletionHandler:(void (^)(NSArray *, NSError *)) completion {
356 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/history/list/%@/%d?page=%d&record=50", [self convertIntToString:type], mode, page]; 356 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/history/list/%@/%d?page=%d&record=50", [self convertIntToString:type], mode, page];
357 NSLog(@"requestHistoryList link %@", url); 357 NSLog(@"requestHistoryList link %@", url);
358 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) { 358 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) {
359 359
360 if (completion == NULL) { 360 if (completion == NULL) {
361 return ; 361 return ;
362 } 362 }
363 363
364 if (error == nil) 364 if (error == nil)
365 { 365 {
366 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 366 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
367 NSLog(@"%@", dataResult); 367 NSLog(@"%@", dataResult);
368 int status = [dataResult[@"status"] intValue]; 368 int status = [dataResult[@"status"] intValue];
369 if (status == 1) { // status = 1 success 369 if (status == 1) { // status = 1 success
370 if(dataResult[@"result"] != nil) { 370 if(dataResult[@"result"] != nil) {
371 NSArray * array = dataResult[@"result"][@"data"]; 371 NSArray * array = dataResult[@"result"][@"data"];
372 NSMutableArray * arrayHistory = [[NSMutableArray alloc] init]; 372 NSMutableArray * arrayHistory = [[NSMutableArray alloc] init];
373 for(NSDictionary * dict in array) { 373 for(NSDictionary * dict in array) {
374 HistoryObject * object = [[HistoryObject alloc] initWithData:dict]; 374 HistoryObject * object = [[HistoryObject alloc] initWithData:dict];
375 [arrayHistory addObject:object]; 375 [arrayHistory addObject:object];
376 } 376 }
377 completion(arrayHistory, nil); 377 completion(arrayHistory, nil);
378 } 378 }
379 else { 379 else {
380 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}]; 380 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}];
381 completion(nil, errorObject); 381 completion(nil, errorObject);
382 } 382 }
383 } 383 }
384 else { 384 else {
385 NSString *message = dataResult[@"message"]; 385 NSString *message = dataResult[@"message"];
386 if (message == nil) { 386 if (message == nil) {
387 message = @"Unknown error"; 387 message = @"Unknown error";
388 } 388 }
389 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 389 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
390 completion(nil, errorObject); 390 completion(nil, errorObject);
391 } 391 }
392 } 392 }
393 else 393 else
394 { 394 {
395 completion(nil, error); 395 completion(nil, error);
396 } 396 }
397 }]; 397 }];
398 } 398 }
399 399
400 #pragma mark - SNS Screen Function 400 #pragma mark - SNS Screen Function
401 - (void) requestRecentlyTweetsList:(NSString *)token withPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion { 401 - (void) requestTweetsList:(NSString *)token groupID: (int) groupID withPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion {
402 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/sns/%d", page]; 402 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/sns/%d", page];
403 NSLog(@"requestRecentlyTweetsList link %@", url); 403 if(groupID > -1) {
404 url = [kServerAddress stringByAppendingFormat:@"api/tweet/list?group_id=%d&page=%d&record=10", groupID, page];
405 }
406 NSLog(@"requestTweetsList link %@", url);
404 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) { 407 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) {
405 408
406 if (completion == NULL) { 409 if (completion == NULL) {
407 return ; 410 return ;
408 } 411 }
409 412
410 if (error == nil) 413 if (error == nil)
411 { 414 {
412 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 415 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
413 NSLog(@"%@", dataResult); 416 NSLog(@"%@", dataResult);
414 int status = [dataResult[@"status"] intValue]; 417 int status = [dataResult[@"status"] intValue];
415 if (status == 1) { // status = 1 success 418 if (status == 1) { // status = 1 success
416 if(dataResult[@"result"] != nil) { 419 if(dataResult[@"result"] != nil) {
417 NSArray * array = dataResult[@"result"]; 420 NSArray * array = dataResult[@"result"];
418 NSMutableArray * arrayTweets = [[NSMutableArray alloc] init]; 421 NSMutableArray * arrayTweets = [[NSMutableArray alloc] init];
419 for(NSDictionary * dict in array) { 422 for(NSDictionary * dict in array) {
420 TweetObject * object = [[TweetObject alloc] initWithData:dict]; 423 TweetObject * object = [[TweetObject alloc] initWithData:dict];
421 [arrayTweets addObject:object]; 424 [arrayTweets addObject:object];
422 } 425 }
423 completion(arrayTweets, nil); 426 completion(arrayTweets, nil);
424 } 427 }
425 else { 428 else {
426 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}]; 429 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}];
427 completion(nil, errorObject); 430 completion(nil, errorObject);
428 } 431 }
429 } 432 }
430 else { 433 else {
431 NSString *message = dataResult[@"message"]; 434 NSString *message = dataResult[@"message"];
432 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 435 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
433 completion(nil, errorObject); 436 completion(nil, errorObject);
434 } 437 }
435 } 438 }
436 else 439 else
437 { 440 {
438 completion(nil, error); 441 completion(nil, error);
439 } 442 }
440 }]; 443 }];
441 } 444 }
442 445
443 - (void) searchGroup:(NSString *)token withKey:(NSString *)key andPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion { 446 - (void) searchGroup:(NSString *)token withKey:(NSString *)key andPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion {
444 NSString *url = [kServerAddress stringByAppendingFormat:@"api/sns/group/search"]; 447 NSString *url = [kServerAddress stringByAppendingFormat:@"api/sns/group/search"];
445 NSLog(@"searchGroup link %@ page %d", url, page); 448 NSLog(@"searchGroup link %@ page %d", url, page);
446 if(searchTask != nil) { 449 if(searchTask != nil) {
447 [searchTask cancel]; 450 [searchTask cancel];
448 } 451 }
449 452
450 searchTask = [self _request:url method:@"POST" token:token paras:@{@"keyword":key, @"page": [NSNumber numberWithInt:page]} completion:^(NSData *data, NSError *error) { 453 searchTask = [self _request:url method:@"POST" token:token paras:@{@"keyword":key, @"page": [NSNumber numberWithInt:page]} completion:^(NSData *data, NSError *error) {
451 searchTask = nil; 454 searchTask = nil;
452 if (completion == NULL) { 455 if (completion == NULL) {
453 return ; 456 return ;
454 } 457 }
455 458
456 if (error == nil) 459 if (error == nil)
457 { 460 {
458 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 461 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
459 NSLog(@"%@", dataResult); 462 NSLog(@"%@", dataResult);
460 int status = [dataResult[@"status"] intValue]; 463 int status = [dataResult[@"status"] intValue];
461 if (status == 1) { // status = 1 success 464 if (status == 1) { // status = 1 success
462 if(dataResult[@"result"] != nil) { 465 if(dataResult[@"result"] != nil) {
463 NSArray * array = dataResult[@"result"]; 466 NSArray * array = dataResult[@"result"];
464 NSMutableArray * arrayTweets = [[NSMutableArray alloc] init]; 467 NSMutableArray * arrayTweets = [[NSMutableArray alloc] init];
465 for(NSDictionary * dict in array) { 468 for(NSDictionary * dict in array) {
466 GroupObject * object = [[GroupObject alloc] initWithData:dict]; 469 GroupObject * object = [[GroupObject alloc] initWithData:dict];
467 [arrayTweets addObject:object]; 470 [arrayTweets addObject:object];
468 } 471 }
469 completion(arrayTweets, nil); 472 completion(arrayTweets, nil);
470 } 473 }
471 else { 474 else {
472 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}]; 475 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}];
473 completion(nil, errorObject); 476 completion(nil, errorObject);
474 } 477 }
475 } 478 }
476 else { 479 else {
477 NSString *message = dataResult[@"message"]; 480 NSString *message = dataResult[@"message"];
478 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 481 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
479 completion(nil, errorObject); 482 completion(nil, errorObject);
480 } 483 }
481 } 484 }
482 else 485 else
483 { 486 {
484 completion(nil, error); 487 completion(nil, error);
485 } 488 }
486 }]; 489 }];
487 } 490 }
488 491
489 #pragma mark - Private Function 492 #pragma mark - Private Function
490 - (NSData *) _encodeDictionary: (NSDictionary *) dictionary 493 - (NSData *) _encodeDictionary: (NSDictionary *) dictionary
491 { 494 {
492 NSMutableArray *parts = [[NSMutableArray alloc] init]; 495 NSMutableArray *parts = [[NSMutableArray alloc] init];
493 for (id key in dictionary) 496 for (id key in dictionary)
494 { 497 {
495 NSString *encodedValue = [[dictionary[key] description] urlencode]; 498 NSString *encodedValue = [[dictionary[key] description] urlencode];
496 NSString *encodedKey = [[key description] urlencode];//[[key description] stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]; 499 NSString *encodedKey = [[key description] urlencode];//[[key description] stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
497 NSString *part = [NSString stringWithFormat: @"%@=%@", encodedKey, encodedValue]; 500 NSString *part = [NSString stringWithFormat: @"%@=%@", encodedKey, encodedValue];
498 [parts addObject:part]; 501 [parts addObject:part];
499 } 502 }
500 NSString *encodedDictionary = [parts componentsJoinedByString:@"&"]; 503 NSString *encodedDictionary = [parts componentsJoinedByString:@"&"];
501 return [encodedDictionary dataUsingEncoding: NSUTF8StringEncoding]; 504 return [encodedDictionary dataUsingEncoding: NSUTF8StringEncoding];
502 } 505 }
503 506
504 - (NSURLSessionDataTask *) _request:(NSString *)address method:(NSString *)method token:(NSString *) token paras:(NSDictionary *)paras completion:(void (^)(NSData *data, NSError *error))completion 507 - (NSURLSessionDataTask *) _request:(NSString *)address method:(NSString *)method token:(NSString *) token paras:(NSDictionary *)paras completion:(void (^)(NSData *data, NSError *error))completion
505 { 508 {
506 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: [NSURL URLWithString:address]]; 509 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: [NSURL URLWithString:address]];
507 request.HTTPMethod = method; 510 request.HTTPMethod = method;
508 [request setValue: @"application/json" forHTTPHeaderField: @"Accept"]; 511 [request setValue: @"application/json" forHTTPHeaderField: @"Accept"];
509 [request setValue: @"application/json" forHTTPHeaderField: @"Content-Type"]; 512 [request setValue: @"application/json" forHTTPHeaderField: @"Content-Type"];
510 if(token != nil && ![token isEqual: @""]) { 513 if(token != nil && ![token isEqual: @""]) {
511 [request setValue: token forHTTPHeaderField: @"token"]; 514 [request setValue: token forHTTPHeaderField: @"token"];
512 } 515 }
513 [request setTimeoutInterval:self.timeOutInterval]; 516 [request setTimeoutInterval:self.timeOutInterval];
514 517
515 if (paras != nil) 518 if (paras != nil)
516 { 519 {
517 NSData *encodedData = [self _encodeDictionary: paras]; 520 NSData *encodedData = [self _encodeDictionary: paras];
518 [request setValue: [NSString stringWithFormat: @"%lu", (unsigned long) encodedData.length] forHTTPHeaderField: @"Content-Length"]; 521 [request setValue: [NSString stringWithFormat: @"%lu", (unsigned long) encodedData.length] forHTTPHeaderField: @"Content-Length"];
519 [request setValue: @"application/x-www-form-urlencoded charset=utf-8" forHTTPHeaderField: @"Content-Type"]; 522 [request setValue: @"application/x-www-form-urlencoded charset=utf-8" forHTTPHeaderField: @"Content-Type"];
520 [request setHTTPBody: encodedData]; 523 [request setHTTPBody: encodedData];
521 } 524 }
522 525
523 NSURLSession *session = [NSURLSession sharedSession]; 526 NSURLSession *session = [NSURLSession sharedSession];
524 NSURLSessionDataTask *task = [session dataTaskWithRequest:request 527 NSURLSessionDataTask *task = [session dataTaskWithRequest:request
525 completionHandler: 528 completionHandler:
526 ^(NSData *data, NSURLResponse *response, NSError *error) { 529 ^(NSData *data, NSURLResponse *response, NSError *error) {
527 if (completion == NULL) { 530 if (completion == NULL) {
528 return ; 531 return ;
529 } 532 }
530 if (error == nil) 533 if (error == nil)
531 { 534 {
532 completion(data, nil); 535 completion(data, nil);
533 } 536 }
534 else 537 else
535 { 538 {
536 completion(nil, error); 539 completion(nil, error);
537 } 540 }
538 }]; 541 }];
539 [task resume]; 542 [task resume];
540 return task; 543 return task;
541 } 544 }
542 545
543 @end 546 @end
544 547
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) {
48 self.userID = [dict[@"user_created"] intValue];
49 }
47 if([dict objectForKey:@"username"] != nil) { 50 if([dict objectForKey:@"username"] != nil) {
48 self.userName = dict[@"username"]; 51 self.userName = dict[@"username"];
49 } 52 }
53 if([dict objectForKey:@"full_name"] != nil) {
54 self.userName = dict[@"full_name"];
55 }
50 if([dict objectForKey:@"profile_image"] != nil) { 56 if([dict objectForKey:@"profile_image"] != nil) {
51 self.avatarLink = dict[@"profile_image"]; 57 self.avatarLink = dict[@"profile_image"];
52 } 58 }
53 if([dict objectForKey:@"created_at"] != nil) { 59 if([dict objectForKey:@"created_at"] != nil) {
54 NSString *dateString = dict[@"created_at"]; 60 NSString *dateString = dict[@"created_at"];
61 self.createDate = [Utilities dateFromString:dateString withFormat:@"yyyy-MM-dd hh:mm:ss"];
62 }
63 else if([dict objectForKey:@"date_created"] != nil && [dict objectForKey:@"time_created"] != nil) {
64 NSString *dateString = dict[@"date_created"];
65 [dateString stringByAppendingString:@" "];
66 [dateString stringByAppendingString:dict[@"time_created"]];
55 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"];
56 } 68 }
57 else { 69 else {
58 self.createDate = [NSDate date]; 70 self.createDate = [NSDate date];
59 } 71 }
60 return self; 72 return self;
61 } 73 }
62 74
63 @end 75 @end
64 76