Commit fa0d79042ba477b64ae35b840e693f95feffb751

Authored by nvtu11790@gmail.com
1 parent c5b45f2062

Add search group screen and API search group

Showing 17 changed files with 565 additions and 9 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 */; };
48 E933E66C1F3E04A6002926F5 /* SearchGroupViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = E933E66A1F3E04A6002926F5 /* SearchGroupViewController.xib */; };
49 E933E6701F3E09B6002926F5 /* SearchGroupTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E66E1F3E09B6002926F5 /* SearchGroupTableViewCell.m */; };
50 E933E6711F3E09B6002926F5 /* SearchGroupTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E933E66F1F3E09B6002926F5 /* SearchGroupTableViewCell.xib */; };
51 E933E6741F3E0E4E002926F5 /* GroupObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E6731F3E0E4E002926F5 /* GroupObject.m */; };
47 E9373E471F3596940059355A /* AutoTransLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E461F3596940059355A /* AutoTransLabel.m */; }; 52 E9373E471F3596940059355A /* AutoTransLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E461F3596940059355A /* AutoTransLabel.m */; };
48 E9373E4A1F35AA180059355A /* HistoryObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E491F35AA180059355A /* HistoryObject.m */; }; 53 E9373E4A1F35AA180059355A /* HistoryObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E491F35AA180059355A /* HistoryObject.m */; };
49 E9373E4D1F361A230059355A /* HistoryGraphObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E4C1F361A230059355A /* HistoryGraphObject.m */; }; 54 E9373E4D1F361A230059355A /* HistoryGraphObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E4C1F361A230059355A /* HistoryGraphObject.m */; };
50 E9682E2E1F39675A00FE05A2 /* RankingTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */; }; 55 E9682E2E1F39675A00FE05A2 /* RankingTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */; };
51 E9682E2F1F39675A00FE05A2 /* RankingTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */; }; 56 E9682E2F1F39675A00FE05A2 /* RankingTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */; };
52 E968550A1F3C444900317CEF /* AutoTransButton.m in Sources */ = {isa = PBXBuildFile; fileRef = E96855091F3C444900317CEF /* AutoTransButton.m */; }; 57 E968550A1F3C444900317CEF /* AutoTransButton.m in Sources */ = {isa = PBXBuildFile; fileRef = E96855091F3C444900317CEF /* AutoTransButton.m */; };
53 E96855111F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */; }; 58 E96855111F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */; };
54 E96855121F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */; }; 59 E96855121F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */; };
55 E997E0261F3AB66500709FB1 /* Social.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E997E0251F3AB66500709FB1 /* Social.framework */; }; 60 E997E0261F3AB66500709FB1 /* Social.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E997E0251F3AB66500709FB1 /* Social.framework */; };
56 E99E13AB1F336F3600C78787 /* CollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = E99E13AA1F336F3600C78787 /* CollectionView.m */; }; 61 E99E13AB1F336F3600C78787 /* CollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = E99E13AA1F336F3600C78787 /* CollectionView.m */; };
57 E99E13AD1F336F4500C78787 /* CollectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = E99E13AC1F336F4500C78787 /* CollectionView.xib */; }; 62 E99E13AD1F336F4500C78787 /* CollectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = E99E13AC1F336F4500C78787 /* CollectionView.xib */; };
58 E99E13B11F33720600C78787 /* LabelCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */; }; 63 E99E13B11F33720600C78787 /* LabelCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */; };
59 E99E13B21F33720600C78787 /* LabelCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */; }; 64 E99E13B21F33720600C78787 /* LabelCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */; };
60 E9D909211F3D559D004CF99F /* TweetObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9D909201F3D559D004CF99F /* TweetObject.m */; }; 65 E9D909211F3D559D004CF99F /* TweetObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9D909201F3D559D004CF99F /* TweetObject.m */; };
61 E9D909241F3D6E8C004CF99F /* BaseTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E9D909231F3D6E8C004CF99F /* BaseTableViewController.m */; }; 66 E9D909241F3D6E8C004CF99F /* BaseTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E9D909231F3D6E8C004CF99F /* BaseTableViewController.m */; };
62 E9F73DCC1F338A0F004A3A6F /* HistoryListTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */; }; 67 E9F73DCC1F338A0F004A3A6F /* HistoryListTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */; };
63 E9F73DCD1F338A0F004A3A6F /* HistoryListTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */; }; 68 E9F73DCD1F338A0F004A3A6F /* HistoryListTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */; };
64 /* End PBXBuildFile section */ 69 /* End PBXBuildFile section */
65 70
66 /* Begin PBXContainerItemProxy section */ 71 /* Begin PBXContainerItemProxy section */
67 6E84E38B1F27A703001EB88E /* PBXContainerItemProxy */ = { 72 6E84E38B1F27A703001EB88E /* PBXContainerItemProxy */ = {
68 isa = PBXContainerItemProxy; 73 isa = PBXContainerItemProxy;
69 containerPortal = 6E84E3691F27A700001EB88E /* Project object */; 74 containerPortal = 6E84E3691F27A700001EB88E /* Project object */;
70 proxyType = 1; 75 proxyType = 1;
71 remoteGlobalIDString = 6E84E3701F27A700001EB88E; 76 remoteGlobalIDString = 6E84E3701F27A700001EB88E;
72 remoteInfo = LifeLog; 77 remoteInfo = LifeLog;
73 }; 78 };
74 6E84E3961F27A703001EB88E /* PBXContainerItemProxy */ = { 79 6E84E3961F27A703001EB88E /* PBXContainerItemProxy */ = {
75 isa = PBXContainerItemProxy; 80 isa = PBXContainerItemProxy;
76 containerPortal = 6E84E3691F27A700001EB88E /* Project object */; 81 containerPortal = 6E84E3691F27A700001EB88E /* Project object */;
77 proxyType = 1; 82 proxyType = 1;
78 remoteGlobalIDString = 6E84E3701F27A700001EB88E; 83 remoteGlobalIDString = 6E84E3701F27A700001EB88E;
79 remoteInfo = LifeLog; 84 remoteInfo = LifeLog;
80 }; 85 };
81 /* End PBXContainerItemProxy section */ 86 /* End PBXContainerItemProxy section */
82 87
83 /* Begin PBXFileReference section */ 88 /* Begin PBXFileReference section */
84 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>"; }; 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>"; };
85 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LifeLog.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 90 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LifeLog.framework; sourceTree = BUILT_PRODUCTS_DIR; };
86 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>"; }; 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>"; };
87 6E18CED01F2E39DB0029891F /* LoginViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoginViewController.h; sourceTree = "<group>"; }; 92 6E18CED01F2E39DB0029891F /* LoginViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoginViewController.h; sourceTree = "<group>"; };
88 6E18CED11F2E39DB0029891F /* LoginViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LoginViewController.m; sourceTree = "<group>"; }; 93 6E18CED11F2E39DB0029891F /* LoginViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LoginViewController.m; sourceTree = "<group>"; };
89 6E18CED21F2E39DB0029891F /* LoginViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LoginViewController.xib; sourceTree = "<group>"; }; 94 6E18CED21F2E39DB0029891F /* LoginViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LoginViewController.xib; sourceTree = "<group>"; };
90 6E18CED61F2E3C840029891F /* ServerAPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServerAPI.h; sourceTree = "<group>"; }; 95 6E18CED61F2E3C840029891F /* ServerAPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServerAPI.h; sourceTree = "<group>"; };
91 6E18CED71F2E3C840029891F /* ServerAPI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ServerAPI.m; sourceTree = "<group>"; }; 96 6E18CED71F2E3C840029891F /* ServerAPI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ServerAPI.m; sourceTree = "<group>"; };
92 6E18CEDA1F2E40F50029891F /* User.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = User.h; sourceTree = "<group>"; }; 97 6E18CEDA1F2E40F50029891F /* User.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = User.h; sourceTree = "<group>"; };
93 6E18CEDB1F2E40F50029891F /* User.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = User.m; sourceTree = "<group>"; }; 98 6E18CEDB1F2E40F50029891F /* User.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = User.m; sourceTree = "<group>"; };
94 6E18CEDD1F2E46570029891F /* Entities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Entities.h; sourceTree = "<group>"; }; 99 6E18CEDD1F2E46570029891F /* Entities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Entities.h; sourceTree = "<group>"; };
95 6E48AF0B1F2F9D3200C1D184 /* CustomTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomTextField.h; sourceTree = "<group>"; }; 100 6E48AF0B1F2F9D3200C1D184 /* CustomTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomTextField.h; sourceTree = "<group>"; };
96 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomTextField.m; sourceTree = "<group>"; }; 101 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomTextField.m; sourceTree = "<group>"; };
97 6E7F933A1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingCollectionView.h; sourceTree = "<group>"; }; 102 6E7F933A1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingCollectionView.h; sourceTree = "<group>"; };
98 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingCollectionView.m; sourceTree = "<group>"; }; 103 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingCollectionView.m; sourceTree = "<group>"; };
99 6E7F933C1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingScrollView.h; sourceTree = "<group>"; }; 104 6E7F933C1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingScrollView.h; sourceTree = "<group>"; };
100 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingScrollView.m; sourceTree = "<group>"; }; 105 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingScrollView.m; sourceTree = "<group>"; };
101 6E7F933E1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingTableView.h; sourceTree = "<group>"; }; 106 6E7F933E1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingTableView.h; sourceTree = "<group>"; };
102 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingTableView.m; sourceTree = "<group>"; }; 107 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingTableView.m; sourceTree = "<group>"; };
103 6E7F93401F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIScrollView+TPKeyboardAvoidingAdditions.h"; sourceTree = "<group>"; }; 108 6E7F93401F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIScrollView+TPKeyboardAvoidingAdditions.h"; sourceTree = "<group>"; };
104 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIScrollView+TPKeyboardAvoidingAdditions.m"; sourceTree = "<group>"; }; 109 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIScrollView+TPKeyboardAvoidingAdditions.m"; sourceTree = "<group>"; };
105 6E84E3711F27A700001EB88E /* LifeLog.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LifeLog.app; sourceTree = BUILT_PRODUCTS_DIR; }; 110 6E84E3711F27A700001EB88E /* LifeLog.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LifeLog.app; sourceTree = BUILT_PRODUCTS_DIR; };
106 6E84E3751F27A701001EB88E /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; }; 111 6E84E3751F27A701001EB88E /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
107 6E84E3771F27A701001EB88E /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; }; 112 6E84E3771F27A701001EB88E /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
108 6E84E3781F27A701001EB88E /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; }; 113 6E84E3781F27A701001EB88E /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
109 6E84E3801F27A701001EB88E /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; 114 6E84E3801F27A701001EB88E /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
110 6E84E3831F27A701001EB88E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; }; 115 6E84E3831F27A701001EB88E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
111 6E84E3851F27A701001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 116 6E84E3851F27A701001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
112 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LifeLogTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 117 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LifeLogTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
113 6E84E38E1F27A703001EB88E /* LifeLogTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LifeLogTests.m; sourceTree = "<group>"; }; 118 6E84E38E1F27A703001EB88E /* LifeLogTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LifeLogTests.m; sourceTree = "<group>"; };
114 6E84E3901F27A703001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 119 6E84E3901F27A703001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
115 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LifeLogUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 120 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LifeLogUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
116 6E84E3991F27A703001EB88E /* LifeLogUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LifeLogUITests.m; sourceTree = "<group>"; }; 121 6E84E3991F27A703001EB88E /* LifeLogUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LifeLogUITests.m; sourceTree = "<group>"; };
117 6E84E39B1F27A703001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 122 6E84E39B1F27A703001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
118 6E84E3AD1F27A975001EB88E /* HomeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HomeViewController.h; sourceTree = "<group>"; }; 123 6E84E3AD1F27A975001EB88E /* HomeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HomeViewController.h; sourceTree = "<group>"; };
119 6E84E3AE1F27A975001EB88E /* HomeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HomeViewController.m; sourceTree = "<group>"; }; 124 6E84E3AE1F27A975001EB88E /* HomeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HomeViewController.m; sourceTree = "<group>"; };
120 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HomeViewController.xib; sourceTree = "<group>"; }; 125 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HomeViewController.xib; sourceTree = "<group>"; };
121 6E84E3B21F27A98B001EB88E /* HistoryViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryViewController.h; sourceTree = "<group>"; }; 126 6E84E3B21F27A98B001EB88E /* HistoryViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryViewController.h; sourceTree = "<group>"; };
122 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryViewController.m; sourceTree = "<group>"; }; 127 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryViewController.m; sourceTree = "<group>"; };
123 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HistoryViewController.xib; sourceTree = "<group>"; }; 128 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HistoryViewController.xib; sourceTree = "<group>"; };
124 6E84E3B71F27A9A0001EB88E /* RankingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RankingViewController.h; sourceTree = "<group>"; }; 129 6E84E3B71F27A9A0001EB88E /* RankingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RankingViewController.h; sourceTree = "<group>"; };
125 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RankingViewController.m; sourceTree = "<group>"; }; 130 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RankingViewController.m; sourceTree = "<group>"; };
126 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RankingViewController.xib; sourceTree = "<group>"; }; 131 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RankingViewController.xib; sourceTree = "<group>"; };
127 6E84E3BC1F27A9B1001EB88E /* SNSViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SNSViewController.h; sourceTree = "<group>"; }; 132 6E84E3BC1F27A9B1001EB88E /* SNSViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SNSViewController.h; sourceTree = "<group>"; };
128 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SNSViewController.m; sourceTree = "<group>"; }; 133 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SNSViewController.m; sourceTree = "<group>"; };
129 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SNSViewController.xib; sourceTree = "<group>"; }; 134 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SNSViewController.xib; sourceTree = "<group>"; };
130 6E84E3C21F27ACAE001EB88E /* MapViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MapViewController.h; sourceTree = "<group>"; }; 135 6E84E3C21F27ACAE001EB88E /* MapViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MapViewController.h; sourceTree = "<group>"; };
131 6E84E3C31F27ACAE001EB88E /* MapViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MapViewController.m; sourceTree = "<group>"; }; 136 6E84E3C31F27ACAE001EB88E /* MapViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MapViewController.m; sourceTree = "<group>"; };
132 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MapViewController.xib; sourceTree = "<group>"; }; 137 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MapViewController.xib; sourceTree = "<group>"; };
133 6E8DA0F41F2BAC3400CCE941 /* TodayViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TodayViewController.h; sourceTree = "<group>"; }; 138 6E8DA0F41F2BAC3400CCE941 /* TodayViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TodayViewController.h; sourceTree = "<group>"; };
134 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TodayViewController.m; sourceTree = "<group>"; }; 139 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TodayViewController.m; sourceTree = "<group>"; };
135 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TodayViewController.xib; sourceTree = "<group>"; }; 140 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TodayViewController.xib; sourceTree = "<group>"; };
136 6ECC406F1F2A5FEB00AAEB97 /* NSDate+helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDate+helper.h"; sourceTree = "<group>"; }; 141 6ECC406F1F2A5FEB00AAEB97 /* NSDate+helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDate+helper.h"; sourceTree = "<group>"; };
137 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDate+helper.m"; sourceTree = "<group>"; }; 142 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDate+helper.m"; sourceTree = "<group>"; };
138 6EDC8BEC1F2C2FB800765ACC /* Utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Utilities.h; sourceTree = "<group>"; }; 143 6EDC8BEC1F2C2FB800765ACC /* Utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Utilities.h; sourceTree = "<group>"; };
139 6EDC8BED1F2C2FB800765ACC /* Utilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Utilities.m; sourceTree = "<group>"; }; 144 6EDC8BED1F2C2FB800765ACC /* Utilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Utilities.m; sourceTree = "<group>"; };
140 6EDC8BF21F2C68D700765ACC /* CMMotionActivityExtra.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CMMotionActivityExtra.h; sourceTree = "<group>"; }; 145 6EDC8BF21F2C68D700765ACC /* CMMotionActivityExtra.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CMMotionActivityExtra.h; sourceTree = "<group>"; };
141 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CMMotionActivityExtra.m; sourceTree = "<group>"; }; 146 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CMMotionActivityExtra.m; sourceTree = "<group>"; };
142 6EF163091F29069300DA306C /* Localizable.strings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; path = Localizable.strings; sourceTree = "<group>"; }; 147 6EF163091F29069300DA306C /* Localizable.strings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; path = Localizable.strings; sourceTree = "<group>"; };
143 9CA8AEE71F31BB4600C5FC74 /* ConfirmForgetPassViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfirmForgetPassViewController.h; sourceTree = "<group>"; }; 148 9CA8AEE71F31BB4600C5FC74 /* ConfirmForgetPassViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfirmForgetPassViewController.h; sourceTree = "<group>"; };
144 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ConfirmForgetPassViewController.m; sourceTree = "<group>"; }; 149 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ConfirmForgetPassViewController.m; sourceTree = "<group>"; };
145 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ConfirmForgetPassViewController.xib; sourceTree = "<group>"; }; 150 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ConfirmForgetPassViewController.xib; sourceTree = "<group>"; };
146 9CBDA0F81F2ECE2C0055DED1 /* BaseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseViewController.h; sourceTree = "<group>"; }; 151 9CBDA0F81F2ECE2C0055DED1 /* BaseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseViewController.h; sourceTree = "<group>"; };
147 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BaseViewController.m; sourceTree = "<group>"; }; 152 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BaseViewController.m; sourceTree = "<group>"; };
148 9CBDA0FC1F2F03810055DED1 /* RegisterViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegisterViewController.h; sourceTree = "<group>"; }; 153 9CBDA0FC1F2F03810055DED1 /* RegisterViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegisterViewController.h; sourceTree = "<group>"; };
149 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RegisterViewController.m; sourceTree = "<group>"; }; 154 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RegisterViewController.m; sourceTree = "<group>"; };
150 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RegisterViewController.xib; sourceTree = "<group>"; }; 155 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>"; };
157 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>"; };
159 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>"; };
161 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>"; };
163 E933E6731F3E0E4E002926F5 /* GroupObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GroupObject.m; sourceTree = "<group>"; };
151 E9373E451F3596940059355A /* AutoTransLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoTransLabel.h; sourceTree = "<group>"; }; 164 E9373E451F3596940059355A /* AutoTransLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoTransLabel.h; sourceTree = "<group>"; };
152 E9373E461F3596940059355A /* AutoTransLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutoTransLabel.m; sourceTree = "<group>"; }; 165 E9373E461F3596940059355A /* AutoTransLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutoTransLabel.m; sourceTree = "<group>"; };
153 E9373E481F35AA180059355A /* HistoryObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryObject.h; sourceTree = "<group>"; }; 166 E9373E481F35AA180059355A /* HistoryObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryObject.h; sourceTree = "<group>"; };
154 E9373E491F35AA180059355A /* HistoryObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryObject.m; sourceTree = "<group>"; }; 167 E9373E491F35AA180059355A /* HistoryObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryObject.m; sourceTree = "<group>"; };
155 E9373E4B1F361A230059355A /* HistoryGraphObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryGraphObject.h; sourceTree = "<group>"; }; 168 E9373E4B1F361A230059355A /* HistoryGraphObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryGraphObject.h; sourceTree = "<group>"; };
156 E9373E4C1F361A230059355A /* HistoryGraphObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryGraphObject.m; sourceTree = "<group>"; }; 169 E9373E4C1F361A230059355A /* HistoryGraphObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryGraphObject.m; sourceTree = "<group>"; };
157 E9682E2B1F39675A00FE05A2 /* RankingTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RankingTableViewCell.h; sourceTree = "<group>"; }; 170 E9682E2B1F39675A00FE05A2 /* RankingTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RankingTableViewCell.h; sourceTree = "<group>"; };
158 E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RankingTableViewCell.m; sourceTree = "<group>"; }; 171 E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RankingTableViewCell.m; sourceTree = "<group>"; };
159 E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RankingTableViewCell.xib; sourceTree = "<group>"; }; 172 E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RankingTableViewCell.xib; sourceTree = "<group>"; };
160 E96855081F3C444900317CEF /* AutoTransButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoTransButton.h; sourceTree = "<group>"; }; 173 E96855081F3C444900317CEF /* AutoTransButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoTransButton.h; sourceTree = "<group>"; };
161 E96855091F3C444900317CEF /* AutoTransButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutoTransButton.m; sourceTree = "<group>"; }; 174 E96855091F3C444900317CEF /* AutoTransButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutoTransButton.m; sourceTree = "<group>"; };
162 E968550E1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SNSRecentTopicTableViewCell.h; sourceTree = "<group>"; }; 175 E968550E1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SNSRecentTopicTableViewCell.h; sourceTree = "<group>"; };
163 E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SNSRecentTopicTableViewCell.m; sourceTree = "<group>"; }; 176 E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SNSRecentTopicTableViewCell.m; sourceTree = "<group>"; };
164 E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SNSRecentTopicTableViewCell.xib; sourceTree = "<group>"; }; 177 E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SNSRecentTopicTableViewCell.xib; sourceTree = "<group>"; };
165 E997E0251F3AB66500709FB1 /* Social.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Social.framework; path = System/Library/Frameworks/Social.framework; sourceTree = SDKROOT; }; 178 E997E0251F3AB66500709FB1 /* Social.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Social.framework; path = System/Library/Frameworks/Social.framework; sourceTree = SDKROOT; };
166 E99E13A91F336F3600C78787 /* CollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CollectionView.h; sourceTree = "<group>"; }; 179 E99E13A91F336F3600C78787 /* CollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CollectionView.h; sourceTree = "<group>"; };
167 E99E13AA1F336F3600C78787 /* CollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CollectionView.m; sourceTree = "<group>"; }; 180 E99E13AA1F336F3600C78787 /* CollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CollectionView.m; sourceTree = "<group>"; };
168 E99E13AC1F336F4500C78787 /* CollectionView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CollectionView.xib; sourceTree = "<group>"; }; 181 E99E13AC1F336F4500C78787 /* CollectionView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CollectionView.xib; sourceTree = "<group>"; };
169 E99E13AE1F33720600C78787 /* LabelCollectionViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LabelCollectionViewCell.h; sourceTree = "<group>"; }; 182 E99E13AE1F33720600C78787 /* LabelCollectionViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LabelCollectionViewCell.h; sourceTree = "<group>"; };
170 E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LabelCollectionViewCell.m; sourceTree = "<group>"; }; 183 E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LabelCollectionViewCell.m; sourceTree = "<group>"; };
171 E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LabelCollectionViewCell.xib; sourceTree = "<group>"; }; 184 E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LabelCollectionViewCell.xib; sourceTree = "<group>"; };
172 E9D9091F1F3D559D004CF99F /* TweetObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TweetObject.h; sourceTree = "<group>"; }; 185 E9D9091F1F3D559D004CF99F /* TweetObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TweetObject.h; sourceTree = "<group>"; };
173 E9D909201F3D559D004CF99F /* TweetObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TweetObject.m; sourceTree = "<group>"; }; 186 E9D909201F3D559D004CF99F /* TweetObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TweetObject.m; sourceTree = "<group>"; };
174 E9D909221F3D6E8C004CF99F /* BaseTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseTableViewController.h; sourceTree = "<group>"; }; 187 E9D909221F3D6E8C004CF99F /* BaseTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseTableViewController.h; sourceTree = "<group>"; };
175 E9D909231F3D6E8C004CF99F /* BaseTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BaseTableViewController.m; sourceTree = "<group>"; }; 188 E9D909231F3D6E8C004CF99F /* BaseTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BaseTableViewController.m; sourceTree = "<group>"; };
176 E9F73DC91F338A0F004A3A6F /* HistoryListTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryListTableViewCell.h; sourceTree = "<group>"; }; 189 E9F73DC91F338A0F004A3A6F /* HistoryListTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryListTableViewCell.h; sourceTree = "<group>"; };
177 E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryListTableViewCell.m; sourceTree = "<group>"; }; 190 E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryListTableViewCell.m; sourceTree = "<group>"; };
178 E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HistoryListTableViewCell.xib; sourceTree = "<group>"; }; 191 E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HistoryListTableViewCell.xib; sourceTree = "<group>"; };
179 /* End PBXFileReference section */ 192 /* End PBXFileReference section */
180 193
181 /* Begin PBXFrameworksBuildPhase section */ 194 /* Begin PBXFrameworksBuildPhase section */
182 6E84E36E1F27A700001EB88E /* Frameworks */ = { 195 6E84E36E1F27A700001EB88E /* Frameworks */ = {
183 isa = PBXFrameworksBuildPhase; 196 isa = PBXFrameworksBuildPhase;
184 buildActionMask = 2147483647; 197 buildActionMask = 2147483647;
185 files = ( 198 files = (
186 E997E0261F3AB66500709FB1 /* Social.framework in Frameworks */, 199 E997E0261F3AB66500709FB1 /* Social.framework in Frameworks */,
187 011799F0F2B47D80472673CE /* Pods_LifeLog.framework in Frameworks */, 200 011799F0F2B47D80472673CE /* Pods_LifeLog.framework in Frameworks */,
188 ); 201 );
189 runOnlyForDeploymentPostprocessing = 0; 202 runOnlyForDeploymentPostprocessing = 0;
190 }; 203 };
191 6E84E3871F27A703001EB88E /* Frameworks */ = { 204 6E84E3871F27A703001EB88E /* Frameworks */ = {
192 isa = PBXFrameworksBuildPhase; 205 isa = PBXFrameworksBuildPhase;
193 buildActionMask = 2147483647; 206 buildActionMask = 2147483647;
194 files = ( 207 files = (
195 ); 208 );
196 runOnlyForDeploymentPostprocessing = 0; 209 runOnlyForDeploymentPostprocessing = 0;
197 }; 210 };
198 6E84E3921F27A703001EB88E /* Frameworks */ = { 211 6E84E3921F27A703001EB88E /* Frameworks */ = {
199 isa = PBXFrameworksBuildPhase; 212 isa = PBXFrameworksBuildPhase;
200 buildActionMask = 2147483647; 213 buildActionMask = 2147483647;
201 files = ( 214 files = (
202 ); 215 );
203 runOnlyForDeploymentPostprocessing = 0; 216 runOnlyForDeploymentPostprocessing = 0;
204 }; 217 };
205 /* End PBXFrameworksBuildPhase section */ 218 /* End PBXFrameworksBuildPhase section */
206 219
207 /* Begin PBXGroup section */ 220 /* Begin PBXGroup section */
208 020C1721B642EF36F31E1BB4 /* Frameworks */ = { 221 020C1721B642EF36F31E1BB4 /* Frameworks */ = {
209 isa = PBXGroup; 222 isa = PBXGroup;
210 children = ( 223 children = (
211 E997E0251F3AB66500709FB1 /* Social.framework */, 224 E997E0251F3AB66500709FB1 /* Social.framework */,
212 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */, 225 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */,
213 ); 226 );
214 name = Frameworks; 227 name = Frameworks;
215 sourceTree = "<group>"; 228 sourceTree = "<group>";
216 }; 229 };
217 6E18CECF1F2E398C0029891F /* Login */ = { 230 6E18CECF1F2E398C0029891F /* Login */ = {
218 isa = PBXGroup; 231 isa = PBXGroup;
219 children = ( 232 children = (
220 9CA8AEE61F31BB1200C5FC74 /* ConfirmForgetPass */, 233 9CA8AEE61F31BB1200C5FC74 /* ConfirmForgetPass */,
221 6E18CED01F2E39DB0029891F /* LoginViewController.h */, 234 6E18CED01F2E39DB0029891F /* LoginViewController.h */,
222 6E18CED11F2E39DB0029891F /* LoginViewController.m */, 235 6E18CED11F2E39DB0029891F /* LoginViewController.m */,
223 6E18CED21F2E39DB0029891F /* LoginViewController.xib */, 236 6E18CED21F2E39DB0029891F /* LoginViewController.xib */,
224 ); 237 );
225 name = Login; 238 name = Login;
226 sourceTree = "<group>"; 239 sourceTree = "<group>";
227 }; 240 };
228 6E18CED51F2E3C0E0029891F /* ServerAPI */ = { 241 6E18CED51F2E3C0E0029891F /* ServerAPI */ = {
229 isa = PBXGroup; 242 isa = PBXGroup;
230 children = ( 243 children = (
231 6E18CED61F2E3C840029891F /* ServerAPI.h */, 244 6E18CED61F2E3C840029891F /* ServerAPI.h */,
232 6E18CED71F2E3C840029891F /* ServerAPI.m */, 245 6E18CED71F2E3C840029891F /* ServerAPI.m */,
233 ); 246 );
234 name = ServerAPI; 247 name = ServerAPI;
235 sourceTree = "<group>"; 248 sourceTree = "<group>";
236 }; 249 };
237 6E18CED91F2E40AE0029891F /* Model */ = { 250 6E18CED91F2E40AE0029891F /* Model */ = {
238 isa = PBXGroup; 251 isa = PBXGroup;
239 children = ( 252 children = (
240 6E18CEDA1F2E40F50029891F /* User.h */, 253 6E18CEDA1F2E40F50029891F /* User.h */,
241 6E18CEDB1F2E40F50029891F /* User.m */, 254 6E18CEDB1F2E40F50029891F /* User.m */,
242 6E18CEDD1F2E46570029891F /* Entities.h */, 255 6E18CEDD1F2E46570029891F /* Entities.h */,
243 E9373E481F35AA180059355A /* HistoryObject.h */, 256 E9373E481F35AA180059355A /* HistoryObject.h */,
244 E9373E491F35AA180059355A /* HistoryObject.m */, 257 E9373E491F35AA180059355A /* HistoryObject.m */,
245 E9373E4B1F361A230059355A /* HistoryGraphObject.h */, 258 E9373E4B1F361A230059355A /* HistoryGraphObject.h */,
246 E9373E4C1F361A230059355A /* HistoryGraphObject.m */, 259 E9373E4C1F361A230059355A /* HistoryGraphObject.m */,
247 E9D9091F1F3D559D004CF99F /* TweetObject.h */, 260 E9D9091F1F3D559D004CF99F /* TweetObject.h */,
248 E9D909201F3D559D004CF99F /* TweetObject.m */, 261 E9D909201F3D559D004CF99F /* TweetObject.m */,
262 E933E6721F3E0E4E002926F5 /* GroupObject.h */,
263 E933E6731F3E0E4E002926F5 /* GroupObject.m */,
249 ); 264 );
250 name = Model; 265 name = Model;
251 sourceTree = "<group>"; 266 sourceTree = "<group>";
252 }; 267 };
253 6E7F93391F35870F00EFBC71 /* TPKeyboardAvoiding */ = { 268 6E7F93391F35870F00EFBC71 /* TPKeyboardAvoiding */ = {
254 isa = PBXGroup; 269 isa = PBXGroup;
255 children = ( 270 children = (
256 6E7F933A1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.h */, 271 6E7F933A1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.h */,
257 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */, 272 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */,
258 6E7F933C1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.h */, 273 6E7F933C1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.h */,
259 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */, 274 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */,
260 6E7F933E1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.h */, 275 6E7F933E1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.h */,
261 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */, 276 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */,
262 6E7F93401F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.h */, 277 6E7F93401F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.h */,
263 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */, 278 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */,
264 ); 279 );
265 name = TPKeyboardAvoiding; 280 name = TPKeyboardAvoiding;
266 sourceTree = "<group>"; 281 sourceTree = "<group>";
267 }; 282 };
268 6E84E3681F27A700001EB88E = { 283 6E84E3681F27A700001EB88E = {
269 isa = PBXGroup; 284 isa = PBXGroup;
270 children = ( 285 children = (
271 6E84E3731F27A700001EB88E /* LifeLog */, 286 6E84E3731F27A700001EB88E /* LifeLog */,
272 6E84E38D1F27A703001EB88E /* LifeLogTests */, 287 6E84E38D1F27A703001EB88E /* LifeLogTests */,
273 6E84E3981F27A703001EB88E /* LifeLogUITests */, 288 6E84E3981F27A703001EB88E /* LifeLogUITests */,
274 DE8269E957EA47CD771BAB33 /* Pods */, 289 DE8269E957EA47CD771BAB33 /* Pods */,
275 020C1721B642EF36F31E1BB4 /* Frameworks */, 290 020C1721B642EF36F31E1BB4 /* Frameworks */,
276 ); 291 );
277 sourceTree = "<group>"; 292 sourceTree = "<group>";
278 }; 293 };
279 6E84E3721F27A700001EB88E /* Products */ = { 294 6E84E3721F27A700001EB88E /* Products */ = {
280 isa = PBXGroup; 295 isa = PBXGroup;
281 children = ( 296 children = (
282 6E84E3711F27A700001EB88E /* LifeLog.app */, 297 6E84E3711F27A700001EB88E /* LifeLog.app */,
283 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */, 298 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */,
284 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */, 299 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */,
285 ); 300 );
286 name = Products; 301 name = Products;
287 sourceTree = "<group>"; 302 sourceTree = "<group>";
288 }; 303 };
289 6E84E3731F27A700001EB88E /* LifeLog */ = { 304 6E84E3731F27A700001EB88E /* LifeLog */ = {
290 isa = PBXGroup; 305 isa = PBXGroup;
291 children = ( 306 children = (
292 6E18CED91F2E40AE0029891F /* Model */, 307 6E18CED91F2E40AE0029891F /* Model */,
293 6E18CED51F2E3C0E0029891F /* ServerAPI */, 308 6E18CED51F2E3C0E0029891F /* ServerAPI */,
294 6EDC8BEB1F2C2F3300765ACC /* Common */, 309 6EDC8BEB1F2C2F3300765ACC /* Common */,
295 6ECC406D1F2A5FA500AAEB97 /* Library */, 310 6ECC406D1F2A5FA500AAEB97 /* Library */,
296 E99E13A71F336F0C00C78787 /* CustomView */, 311 E99E13A71F336F0C00C78787 /* CustomView */,
297 6E84E3A81F27A8A9001EB88E /* ViewControllers */, 312 6E84E3A81F27A8A9001EB88E /* ViewControllers */,
298 6E84E3A71F27A887001EB88E /* AppDelegate */, 313 6E84E3A71F27A887001EB88E /* AppDelegate */,
299 6E84E3801F27A701001EB88E /* Assets.xcassets */, 314 6E84E3801F27A701001EB88E /* Assets.xcassets */,
300 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */, 315 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */,
301 6E84E3851F27A701001EB88E /* Info.plist */, 316 6E84E3851F27A701001EB88E /* Info.plist */,
302 6E84E3741F27A701001EB88E /* Supporting Files */, 317 6E84E3741F27A701001EB88E /* Supporting Files */,
303 ); 318 );
304 path = LifeLog; 319 path = LifeLog;
305 sourceTree = "<group>"; 320 sourceTree = "<group>";
306 }; 321 };
307 6E84E3741F27A701001EB88E /* Supporting Files */ = { 322 6E84E3741F27A701001EB88E /* Supporting Files */ = {
308 isa = PBXGroup; 323 isa = PBXGroup;
309 children = ( 324 children = (
310 6E84E3751F27A701001EB88E /* main.m */, 325 6E84E3751F27A701001EB88E /* main.m */,
311 6EF163091F29069300DA306C /* Localizable.strings */, 326 6EF163091F29069300DA306C /* Localizable.strings */,
312 ); 327 );
313 name = "Supporting Files"; 328 name = "Supporting Files";
314 sourceTree = "<group>"; 329 sourceTree = "<group>";
315 }; 330 };
316 6E84E38D1F27A703001EB88E /* LifeLogTests */ = { 331 6E84E38D1F27A703001EB88E /* LifeLogTests */ = {
317 isa = PBXGroup; 332 isa = PBXGroup;
318 children = ( 333 children = (
319 6E84E38E1F27A703001EB88E /* LifeLogTests.m */, 334 6E84E38E1F27A703001EB88E /* LifeLogTests.m */,
320 6E84E3901F27A703001EB88E /* Info.plist */, 335 6E84E3901F27A703001EB88E /* Info.plist */,
321 ); 336 );
322 path = LifeLogTests; 337 path = LifeLogTests;
323 sourceTree = "<group>"; 338 sourceTree = "<group>";
324 }; 339 };
325 6E84E3981F27A703001EB88E /* LifeLogUITests */ = { 340 6E84E3981F27A703001EB88E /* LifeLogUITests */ = {
326 isa = PBXGroup; 341 isa = PBXGroup;
327 children = ( 342 children = (
328 6E84E3991F27A703001EB88E /* LifeLogUITests.m */, 343 6E84E3991F27A703001EB88E /* LifeLogUITests.m */,
329 6E84E39B1F27A703001EB88E /* Info.plist */, 344 6E84E39B1F27A703001EB88E /* Info.plist */,
330 ); 345 );
331 path = LifeLogUITests; 346 path = LifeLogUITests;
332 sourceTree = "<group>"; 347 sourceTree = "<group>";
333 }; 348 };
334 6E84E3A71F27A887001EB88E /* AppDelegate */ = { 349 6E84E3A71F27A887001EB88E /* AppDelegate */ = {
335 isa = PBXGroup; 350 isa = PBXGroup;
336 children = ( 351 children = (
337 6E84E3771F27A701001EB88E /* AppDelegate.h */, 352 6E84E3771F27A701001EB88E /* AppDelegate.h */,
338 6E84E3781F27A701001EB88E /* AppDelegate.m */, 353 6E84E3781F27A701001EB88E /* AppDelegate.m */,
339 ); 354 );
340 name = AppDelegate; 355 name = AppDelegate;
341 sourceTree = "<group>"; 356 sourceTree = "<group>";
342 }; 357 };
343 6E84E3A81F27A8A9001EB88E /* ViewControllers */ = { 358 6E84E3A81F27A8A9001EB88E /* ViewControllers */ = {
344 isa = PBXGroup; 359 isa = PBXGroup;
345 children = ( 360 children = (
346 9CBDA0F71F2ECDFD0055DED1 /* BaseViewController */, 361 9CBDA0F71F2ECDFD0055DED1 /* BaseViewController */,
347 9CBDA0FB1F2F03490055DED1 /* Register */, 362 9CBDA0FB1F2F03490055DED1 /* Register */,
348 6E18CECF1F2E398C0029891F /* Login */, 363 6E18CECF1F2E398C0029891F /* Login */,
349 6E84E3AC1F27A954001EB88E /* SNS */, 364 6E84E3AC1F27A954001EB88E /* SNS */,
350 6E84E3C11F27AC89001EB88E /* Map */, 365 6E84E3C11F27AC89001EB88E /* Map */,
351 6E84E3AB1F27A946001EB88E /* Ranking */, 366 6E84E3AB1F27A946001EB88E /* Ranking */,
352 6E84E3AA1F27A924001EB88E /* History */, 367 6E84E3AA1F27A924001EB88E /* History */,
353 6E84E3A91F27A915001EB88E /* Home */, 368 6E84E3A91F27A915001EB88E /* Home */,
354 ); 369 );
355 name = ViewControllers; 370 name = ViewControllers;
356 sourceTree = "<group>"; 371 sourceTree = "<group>";
357 }; 372 };
358 6E84E3A91F27A915001EB88E /* Home */ = { 373 6E84E3A91F27A915001EB88E /* Home */ = {
359 isa = PBXGroup; 374 isa = PBXGroup;
360 children = ( 375 children = (
361 6E8DA0F31F2BAC0800CCE941 /* Today */, 376 6E8DA0F31F2BAC0800CCE941 /* Today */,
362 6E84E3AD1F27A975001EB88E /* HomeViewController.h */, 377 6E84E3AD1F27A975001EB88E /* HomeViewController.h */,
363 6E84E3AE1F27A975001EB88E /* HomeViewController.m */, 378 6E84E3AE1F27A975001EB88E /* HomeViewController.m */,
364 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */, 379 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */,
365 ); 380 );
366 name = Home; 381 name = Home;
367 sourceTree = "<group>"; 382 sourceTree = "<group>";
368 }; 383 };
369 6E84E3AA1F27A924001EB88E /* History */ = { 384 6E84E3AA1F27A924001EB88E /* History */ = {
370 isa = PBXGroup; 385 isa = PBXGroup;
371 children = ( 386 children = (
372 6E84E3B21F27A98B001EB88E /* HistoryViewController.h */, 387 6E84E3B21F27A98B001EB88E /* HistoryViewController.h */,
373 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */, 388 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */,
374 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */, 389 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */,
375 E9F73DC91F338A0F004A3A6F /* HistoryListTableViewCell.h */, 390 E9F73DC91F338A0F004A3A6F /* HistoryListTableViewCell.h */,
376 E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */, 391 E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */,
377 E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */, 392 E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */,
378 ); 393 );
379 name = History; 394 name = History;
380 sourceTree = "<group>"; 395 sourceTree = "<group>";
381 }; 396 };
382 6E84E3AB1F27A946001EB88E /* Ranking */ = { 397 6E84E3AB1F27A946001EB88E /* Ranking */ = {
383 isa = PBXGroup; 398 isa = PBXGroup;
384 children = ( 399 children = (
385 6E84E3B71F27A9A0001EB88E /* RankingViewController.h */, 400 6E84E3B71F27A9A0001EB88E /* RankingViewController.h */,
386 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */, 401 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */,
387 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */, 402 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */,
388 E9682E2B1F39675A00FE05A2 /* RankingTableViewCell.h */, 403 E9682E2B1F39675A00FE05A2 /* RankingTableViewCell.h */,
389 E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */, 404 E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */,
390 E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */, 405 E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */,
391 ); 406 );
392 name = Ranking; 407 name = Ranking;
393 sourceTree = "<group>"; 408 sourceTree = "<group>";
394 }; 409 };
395 6E84E3AC1F27A954001EB88E /* SNS */ = { 410 6E84E3AC1F27A954001EB88E /* SNS */ = {
396 isa = PBXGroup; 411 isa = PBXGroup;
397 children = ( 412 children = (
413 E933E6671F3E0479002926F5 /* SeachGroup */,
398 6E84E3BC1F27A9B1001EB88E /* SNSViewController.h */, 414 6E84E3BC1F27A9B1001EB88E /* SNSViewController.h */,
399 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */, 415 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */,
400 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */, 416 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */,
401 E968550E1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.h */, 417 E968550E1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.h */,
402 E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */, 418 E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */,
403 E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */, 419 E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */,
404 ); 420 );
405 name = SNS; 421 name = SNS;
406 sourceTree = "<group>"; 422 sourceTree = "<group>";
407 }; 423 };
408 6E84E3C11F27AC89001EB88E /* Map */ = { 424 6E84E3C11F27AC89001EB88E /* Map */ = {
409 isa = PBXGroup; 425 isa = PBXGroup;
410 children = ( 426 children = (
411 6E84E3C21F27ACAE001EB88E /* MapViewController.h */, 427 6E84E3C21F27ACAE001EB88E /* MapViewController.h */,
412 6E84E3C31F27ACAE001EB88E /* MapViewController.m */, 428 6E84E3C31F27ACAE001EB88E /* MapViewController.m */,
413 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */, 429 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */,
414 ); 430 );
415 name = Map; 431 name = Map;
416 sourceTree = "<group>"; 432 sourceTree = "<group>";
417 }; 433 };
418 6E8DA0F31F2BAC0800CCE941 /* Today */ = { 434 6E8DA0F31F2BAC0800CCE941 /* Today */ = {
419 isa = PBXGroup; 435 isa = PBXGroup;
420 children = ( 436 children = (
421 6E8DA0F41F2BAC3400CCE941 /* TodayViewController.h */, 437 6E8DA0F41F2BAC3400CCE941 /* TodayViewController.h */,
422 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */, 438 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */,
423 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */, 439 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */,
424 ); 440 );
425 name = Today; 441 name = Today;
426 sourceTree = "<group>"; 442 sourceTree = "<group>";
427 }; 443 };
428 6ECC406D1F2A5FA500AAEB97 /* Library */ = { 444 6ECC406D1F2A5FA500AAEB97 /* Library */ = {
429 isa = PBXGroup; 445 isa = PBXGroup;
430 children = ( 446 children = (
431 6E7F93391F35870F00EFBC71 /* TPKeyboardAvoiding */, 447 6E7F93391F35870F00EFBC71 /* TPKeyboardAvoiding */,
432 6ECC406E1F2A5FB200AAEB97 /* Category */, 448 6ECC406E1F2A5FB200AAEB97 /* Category */,
433 ); 449 );
434 name = Library; 450 name = Library;
435 sourceTree = "<group>"; 451 sourceTree = "<group>";
436 }; 452 };
437 6ECC406E1F2A5FB200AAEB97 /* Category */ = { 453 6ECC406E1F2A5FB200AAEB97 /* Category */ = {
438 isa = PBXGroup; 454 isa = PBXGroup;
439 children = ( 455 children = (
440 6ECC406F1F2A5FEB00AAEB97 /* NSDate+helper.h */, 456 6ECC406F1F2A5FEB00AAEB97 /* NSDate+helper.h */,
441 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */, 457 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */,
442 ); 458 );
443 name = Category; 459 name = Category;
444 sourceTree = "<group>"; 460 sourceTree = "<group>";
445 }; 461 };
446 6EDC8BEB1F2C2F3300765ACC /* Common */ = { 462 6EDC8BEB1F2C2F3300765ACC /* Common */ = {
447 isa = PBXGroup; 463 isa = PBXGroup;
448 children = ( 464 children = (
449 6EDC8BEC1F2C2FB800765ACC /* Utilities.h */, 465 6EDC8BEC1F2C2FB800765ACC /* Utilities.h */,
450 6EDC8BED1F2C2FB800765ACC /* Utilities.m */, 466 6EDC8BED1F2C2FB800765ACC /* Utilities.m */,
451 6EDC8BF21F2C68D700765ACC /* CMMotionActivityExtra.h */, 467 6EDC8BF21F2C68D700765ACC /* CMMotionActivityExtra.h */,
452 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */, 468 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */,
453 ); 469 );
454 name = Common; 470 name = Common;
455 sourceTree = "<group>"; 471 sourceTree = "<group>";
456 }; 472 };
457 9CA8AEE61F31BB1200C5FC74 /* ConfirmForgetPass */ = { 473 9CA8AEE61F31BB1200C5FC74 /* ConfirmForgetPass */ = {
458 isa = PBXGroup; 474 isa = PBXGroup;
459 children = ( 475 children = (
460 9CA8AEE71F31BB4600C5FC74 /* ConfirmForgetPassViewController.h */, 476 9CA8AEE71F31BB4600C5FC74 /* ConfirmForgetPassViewController.h */,
461 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */, 477 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */,
462 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */, 478 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */,
463 ); 479 );
464 name = ConfirmForgetPass; 480 name = ConfirmForgetPass;
465 sourceTree = "<group>"; 481 sourceTree = "<group>";
466 }; 482 };
467 9CBDA0F71F2ECDFD0055DED1 /* BaseViewController */ = { 483 9CBDA0F71F2ECDFD0055DED1 /* BaseViewController */ = {
468 isa = PBXGroup; 484 isa = PBXGroup;
469 children = ( 485 children = (
470 9CBDA0F81F2ECE2C0055DED1 /* BaseViewController.h */, 486 9CBDA0F81F2ECE2C0055DED1 /* BaseViewController.h */,
471 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */, 487 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */,
472 6E48AF0B1F2F9D3200C1D184 /* CustomTextField.h */, 488 6E48AF0B1F2F9D3200C1D184 /* CustomTextField.h */,
473 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */, 489 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */,
474 E9D909221F3D6E8C004CF99F /* BaseTableViewController.h */, 490 E9D909221F3D6E8C004CF99F /* BaseTableViewController.h */,
475 E9D909231F3D6E8C004CF99F /* BaseTableViewController.m */, 491 E9D909231F3D6E8C004CF99F /* BaseTableViewController.m */,
476 ); 492 );
477 name = BaseViewController; 493 name = BaseViewController;
478 sourceTree = "<group>"; 494 sourceTree = "<group>";
479 }; 495 };
480 9CBDA0FB1F2F03490055DED1 /* Register */ = { 496 9CBDA0FB1F2F03490055DED1 /* Register */ = {
481 isa = PBXGroup; 497 isa = PBXGroup;
482 children = ( 498 children = (
483 9CBDA0FC1F2F03810055DED1 /* RegisterViewController.h */, 499 9CBDA0FC1F2F03810055DED1 /* RegisterViewController.h */,
484 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */, 500 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */,
485 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */, 501 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */,
486 ); 502 );
487 name = Register; 503 name = Register;
488 sourceTree = "<group>"; 504 sourceTree = "<group>";
489 }; 505 };
490 DE8269E957EA47CD771BAB33 /* Pods */ = { 506 DE8269E957EA47CD771BAB33 /* Pods */ = {
491 isa = PBXGroup; 507 isa = PBXGroup;
492 children = ( 508 children = (
493 6E84E3721F27A700001EB88E /* Products */, 509 6E84E3721F27A700001EB88E /* Products */,
494 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */, 510 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */,
495 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */, 511 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */,
496 ); 512 );
497 name = Pods; 513 name = Pods;
498 sourceTree = "<group>"; 514 sourceTree = "<group>";
499 }; 515 };
516 E933E6671F3E0479002926F5 /* SeachGroup */ = {
517 isa = PBXGroup;
518 children = (
519 E933E6681F3E04A6002926F5 /* SearchGroupViewController.h */,
520 E933E6691F3E04A6002926F5 /* SearchGroupViewController.m */,
521 E933E66A1F3E04A6002926F5 /* SearchGroupViewController.xib */,
522 E933E66D1F3E09B6002926F5 /* SearchGroupTableViewCell.h */,
523 E933E66E1F3E09B6002926F5 /* SearchGroupTableViewCell.m */,
524 E933E66F1F3E09B6002926F5 /* SearchGroupTableViewCell.xib */,
525 );
526 name = SeachGroup;
527 sourceTree = "<group>";
528 };
500 E9373E441F35966D0059355A /* AutoTranslateView */ = { 529 E9373E441F35966D0059355A /* AutoTranslateView */ = {
501 isa = PBXGroup; 530 isa = PBXGroup;
502 children = ( 531 children = (
503 E9373E451F3596940059355A /* AutoTransLabel.h */, 532 E9373E451F3596940059355A /* AutoTransLabel.h */,
504 E9373E461F3596940059355A /* AutoTransLabel.m */, 533 E9373E461F3596940059355A /* AutoTransLabel.m */,
505 E96855081F3C444900317CEF /* AutoTransButton.h */, 534 E96855081F3C444900317CEF /* AutoTransButton.h */,
506 E96855091F3C444900317CEF /* AutoTransButton.m */, 535 E96855091F3C444900317CEF /* AutoTransButton.m */,
507 ); 536 );
508 name = AutoTranslateView; 537 name = AutoTranslateView;
509 sourceTree = "<group>"; 538 sourceTree = "<group>";
510 }; 539 };
511 E99E13A71F336F0C00C78787 /* CustomView */ = { 540 E99E13A71F336F0C00C78787 /* CustomView */ = {
512 isa = PBXGroup; 541 isa = PBXGroup;
513 children = ( 542 children = (
514 E9373E441F35966D0059355A /* AutoTranslateView */, 543 E9373E441F35966D0059355A /* AutoTranslateView */,
515 E99E13A81F336F1700C78787 /* CollectionView */, 544 E99E13A81F336F1700C78787 /* CollectionView */,
516 ); 545 );
517 name = CustomView; 546 name = CustomView;
518 sourceTree = "<group>"; 547 sourceTree = "<group>";
519 }; 548 };
520 E99E13A81F336F1700C78787 /* CollectionView */ = { 549 E99E13A81F336F1700C78787 /* CollectionView */ = {
521 isa = PBXGroup; 550 isa = PBXGroup;
522 children = ( 551 children = (
523 E99E13AE1F33720600C78787 /* LabelCollectionViewCell.h */, 552 E99E13AE1F33720600C78787 /* LabelCollectionViewCell.h */,
524 E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */, 553 E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */,
525 E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */, 554 E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */,
526 E99E13A91F336F3600C78787 /* CollectionView.h */, 555 E99E13A91F336F3600C78787 /* CollectionView.h */,
527 E99E13AA1F336F3600C78787 /* CollectionView.m */, 556 E99E13AA1F336F3600C78787 /* CollectionView.m */,
528 E99E13AC1F336F4500C78787 /* CollectionView.xib */, 557 E99E13AC1F336F4500C78787 /* CollectionView.xib */,
529 ); 558 );
530 name = CollectionView; 559 name = CollectionView;
531 sourceTree = "<group>"; 560 sourceTree = "<group>";
532 }; 561 };
533 /* End PBXGroup section */ 562 /* End PBXGroup section */
534 563
535 /* Begin PBXNativeTarget section */ 564 /* Begin PBXNativeTarget section */
536 6E84E3701F27A700001EB88E /* LifeLog */ = { 565 6E84E3701F27A700001EB88E /* LifeLog */ = {
537 isa = PBXNativeTarget; 566 isa = PBXNativeTarget;
538 buildConfigurationList = 6E84E39E1F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLog" */; 567 buildConfigurationList = 6E84E39E1F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLog" */;
539 buildPhases = ( 568 buildPhases = (
540 2BB22CAEC0728AA1E086BCE3 /* [CP] Check Pods Manifest.lock */, 569 2BB22CAEC0728AA1E086BCE3 /* [CP] Check Pods Manifest.lock */,
541 6E84E36D1F27A700001EB88E /* Sources */, 570 6E84E36D1F27A700001EB88E /* Sources */,
542 6E84E36E1F27A700001EB88E /* Frameworks */, 571 6E84E36E1F27A700001EB88E /* Frameworks */,
543 6E84E36F1F27A700001EB88E /* Resources */, 572 6E84E36F1F27A700001EB88E /* Resources */,
544 22F89B11794CEB4E265996AC /* [CP] Embed Pods Frameworks */, 573 22F89B11794CEB4E265996AC /* [CP] Embed Pods Frameworks */,
545 96653BDB2C24A87C2866C897 /* [CP] Copy Pods Resources */, 574 96653BDB2C24A87C2866C897 /* [CP] Copy Pods Resources */,
546 ); 575 );
547 buildRules = ( 576 buildRules = (
548 ); 577 );
549 dependencies = ( 578 dependencies = (
550 ); 579 );
551 name = LifeLog; 580 name = LifeLog;
552 productName = LifeLog; 581 productName = LifeLog;
553 productReference = 6E84E3711F27A700001EB88E /* LifeLog.app */; 582 productReference = 6E84E3711F27A700001EB88E /* LifeLog.app */;
554 productType = "com.apple.product-type.application"; 583 productType = "com.apple.product-type.application";
555 }; 584 };
556 6E84E3891F27A703001EB88E /* LifeLogTests */ = { 585 6E84E3891F27A703001EB88E /* LifeLogTests */ = {
557 isa = PBXNativeTarget; 586 isa = PBXNativeTarget;
558 buildConfigurationList = 6E84E3A11F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogTests" */; 587 buildConfigurationList = 6E84E3A11F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogTests" */;
559 buildPhases = ( 588 buildPhases = (
560 6E84E3861F27A703001EB88E /* Sources */, 589 6E84E3861F27A703001EB88E /* Sources */,
561 6E84E3871F27A703001EB88E /* Frameworks */, 590 6E84E3871F27A703001EB88E /* Frameworks */,
562 6E84E3881F27A703001EB88E /* Resources */, 591 6E84E3881F27A703001EB88E /* Resources */,
563 ); 592 );
564 buildRules = ( 593 buildRules = (
565 ); 594 );
566 dependencies = ( 595 dependencies = (
567 6E84E38C1F27A703001EB88E /* PBXTargetDependency */, 596 6E84E38C1F27A703001EB88E /* PBXTargetDependency */,
568 ); 597 );
569 name = LifeLogTests; 598 name = LifeLogTests;
570 productName = LifeLogTests; 599 productName = LifeLogTests;
571 productReference = 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */; 600 productReference = 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */;
572 productType = "com.apple.product-type.bundle.unit-test"; 601 productType = "com.apple.product-type.bundle.unit-test";
573 }; 602 };
574 6E84E3941F27A703001EB88E /* LifeLogUITests */ = { 603 6E84E3941F27A703001EB88E /* LifeLogUITests */ = {
575 isa = PBXNativeTarget; 604 isa = PBXNativeTarget;
576 buildConfigurationList = 6E84E3A41F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogUITests" */; 605 buildConfigurationList = 6E84E3A41F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogUITests" */;
577 buildPhases = ( 606 buildPhases = (
578 6E84E3911F27A703001EB88E /* Sources */, 607 6E84E3911F27A703001EB88E /* Sources */,
579 6E84E3921F27A703001EB88E /* Frameworks */, 608 6E84E3921F27A703001EB88E /* Frameworks */,
580 6E84E3931F27A703001EB88E /* Resources */, 609 6E84E3931F27A703001EB88E /* Resources */,
581 ); 610 );
582 buildRules = ( 611 buildRules = (
583 ); 612 );
584 dependencies = ( 613 dependencies = (
585 6E84E3971F27A703001EB88E /* PBXTargetDependency */, 614 6E84E3971F27A703001EB88E /* PBXTargetDependency */,
586 ); 615 );
587 name = LifeLogUITests; 616 name = LifeLogUITests;
588 productName = LifeLogUITests; 617 productName = LifeLogUITests;
589 productReference = 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */; 618 productReference = 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */;
590 productType = "com.apple.product-type.bundle.ui-testing"; 619 productType = "com.apple.product-type.bundle.ui-testing";
591 }; 620 };
592 /* End PBXNativeTarget section */ 621 /* End PBXNativeTarget section */
593 622
594 /* Begin PBXProject section */ 623 /* Begin PBXProject section */
595 6E84E3691F27A700001EB88E /* Project object */ = { 624 6E84E3691F27A700001EB88E /* Project object */ = {
596 isa = PBXProject; 625 isa = PBXProject;
597 attributes = { 626 attributes = {
598 LastUpgradeCheck = 0830; 627 LastUpgradeCheck = 0830;
599 ORGANIZATIONNAME = PhongNV; 628 ORGANIZATIONNAME = PhongNV;
600 TargetAttributes = { 629 TargetAttributes = {
601 6E84E3701F27A700001EB88E = { 630 6E84E3701F27A700001EB88E = {
602 CreatedOnToolsVersion = 8.3.3; 631 CreatedOnToolsVersion = 8.3.3;
603 DevelopmentTeam = UXU4V3VUN4; 632 DevelopmentTeam = UXU4V3VUN4;
604 ProvisioningStyle = Automatic; 633 ProvisioningStyle = Automatic;
605 }; 634 };
606 6E84E3891F27A703001EB88E = { 635 6E84E3891F27A703001EB88E = {
607 CreatedOnToolsVersion = 8.3.3; 636 CreatedOnToolsVersion = 8.3.3;
608 ProvisioningStyle = Automatic; 637 ProvisioningStyle = Automatic;
609 TestTargetID = 6E84E3701F27A700001EB88E; 638 TestTargetID = 6E84E3701F27A700001EB88E;
610 }; 639 };
611 6E84E3941F27A703001EB88E = { 640 6E84E3941F27A703001EB88E = {
612 CreatedOnToolsVersion = 8.3.3; 641 CreatedOnToolsVersion = 8.3.3;
613 ProvisioningStyle = Automatic; 642 ProvisioningStyle = Automatic;
614 TestTargetID = 6E84E3701F27A700001EB88E; 643 TestTargetID = 6E84E3701F27A700001EB88E;
615 }; 644 };
616 }; 645 };
617 }; 646 };
618 buildConfigurationList = 6E84E36C1F27A700001EB88E /* Build configuration list for PBXProject "LifeLog" */; 647 buildConfigurationList = 6E84E36C1F27A700001EB88E /* Build configuration list for PBXProject "LifeLog" */;
619 compatibilityVersion = "Xcode 3.2"; 648 compatibilityVersion = "Xcode 3.2";
620 developmentRegion = English; 649 developmentRegion = English;
621 hasScannedForEncodings = 0; 650 hasScannedForEncodings = 0;
622 knownRegions = ( 651 knownRegions = (
623 en, 652 en,
624 Base, 653 Base,
625 ); 654 );
626 mainGroup = 6E84E3681F27A700001EB88E; 655 mainGroup = 6E84E3681F27A700001EB88E;
627 productRefGroup = 6E84E3721F27A700001EB88E /* Products */; 656 productRefGroup = 6E84E3721F27A700001EB88E /* Products */;
628 projectDirPath = ""; 657 projectDirPath = "";
629 projectRoot = ""; 658 projectRoot = "";
630 targets = ( 659 targets = (
631 6E84E3701F27A700001EB88E /* LifeLog */, 660 6E84E3701F27A700001EB88E /* LifeLog */,
632 6E84E3891F27A703001EB88E /* LifeLogTests */, 661 6E84E3891F27A703001EB88E /* LifeLogTests */,
633 6E84E3941F27A703001EB88E /* LifeLogUITests */, 662 6E84E3941F27A703001EB88E /* LifeLogUITests */,
634 ); 663 );
635 }; 664 };
636 /* End PBXProject section */ 665 /* End PBXProject section */
637 666
638 /* Begin PBXResourcesBuildPhase section */ 667 /* Begin PBXResourcesBuildPhase section */
639 6E84E36F1F27A700001EB88E /* Resources */ = { 668 6E84E36F1F27A700001EB88E /* Resources */ = {
640 isa = PBXResourcesBuildPhase; 669 isa = PBXResourcesBuildPhase;
641 buildActionMask = 2147483647; 670 buildActionMask = 2147483647;
642 files = ( 671 files = (
643 9CBDA1001F2F03810055DED1 /* RegisterViewController.xib in Resources */, 672 9CBDA1001F2F03810055DED1 /* RegisterViewController.xib in Resources */,
644 6E18CED41F2E39DB0029891F /* LoginViewController.xib in Resources */, 673 6E18CED41F2E39DB0029891F /* LoginViewController.xib in Resources */,
645 E99E13AD1F336F4500C78787 /* CollectionView.xib in Resources */, 674 E99E13AD1F336F4500C78787 /* CollectionView.xib in Resources */,
646 6E84E3BB1F27A9A0001EB88E /* RankingViewController.xib in Resources */, 675 6E84E3BB1F27A9A0001EB88E /* RankingViewController.xib in Resources */,
647 9CA8AEEB1F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib in Resources */, 676 9CA8AEEB1F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib in Resources */,
648 6E84E3C01F27A9B1001EB88E /* SNSViewController.xib in Resources */, 677 6E84E3C01F27A9B1001EB88E /* SNSViewController.xib in Resources */,
649 E9682E2F1F39675A00FE05A2 /* RankingTableViewCell.xib in Resources */, 678 E9682E2F1F39675A00FE05A2 /* RankingTableViewCell.xib in Resources */,
679 E933E6711F3E09B6002926F5 /* SearchGroupTableViewCell.xib in Resources */,
650 6E8DA0F81F2BAC3500CCE941 /* TodayViewController.xib in Resources */, 680 6E8DA0F81F2BAC3500CCE941 /* TodayViewController.xib in Resources */,
651 6E84E3841F27A701001EB88E /* LaunchScreen.storyboard in Resources */, 681 6E84E3841F27A701001EB88E /* LaunchScreen.storyboard in Resources */,
652 6E84E3811F27A701001EB88E /* Assets.xcassets in Resources */, 682 6E84E3811F27A701001EB88E /* Assets.xcassets in Resources */,
653 6E84E3C61F27ACAE001EB88E /* MapViewController.xib in Resources */, 683 6E84E3C61F27ACAE001EB88E /* MapViewController.xib in Resources */,
654 6EF1630A1F29069300DA306C /* Localizable.strings in Resources */, 684 6EF1630A1F29069300DA306C /* Localizable.strings in Resources */,
655 6E84E3B11F27A975001EB88E /* HomeViewController.xib in Resources */, 685 6E84E3B11F27A975001EB88E /* HomeViewController.xib in Resources */,
656 6E84E3B61F27A98B001EB88E /* HistoryViewController.xib in Resources */, 686 6E84E3B61F27A98B001EB88E /* HistoryViewController.xib in Resources */,
687 E933E66C1F3E04A6002926F5 /* SearchGroupViewController.xib in Resources */,
657 E96855121F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib in Resources */, 688 E96855121F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib in Resources */,
658 E99E13B21F33720600C78787 /* LabelCollectionViewCell.xib in Resources */, 689 E99E13B21F33720600C78787 /* LabelCollectionViewCell.xib in Resources */,
659 E9F73DCD1F338A0F004A3A6F /* HistoryListTableViewCell.xib in Resources */, 690 E9F73DCD1F338A0F004A3A6F /* HistoryListTableViewCell.xib in Resources */,
660 ); 691 );
661 runOnlyForDeploymentPostprocessing = 0; 692 runOnlyForDeploymentPostprocessing = 0;
662 }; 693 };
663 6E84E3881F27A703001EB88E /* Resources */ = { 694 6E84E3881F27A703001EB88E /* Resources */ = {
664 isa = PBXResourcesBuildPhase; 695 isa = PBXResourcesBuildPhase;
665 buildActionMask = 2147483647; 696 buildActionMask = 2147483647;
666 files = ( 697 files = (
667 ); 698 );
668 runOnlyForDeploymentPostprocessing = 0; 699 runOnlyForDeploymentPostprocessing = 0;
669 }; 700 };
670 6E84E3931F27A703001EB88E /* Resources */ = { 701 6E84E3931F27A703001EB88E /* Resources */ = {
671 isa = PBXResourcesBuildPhase; 702 isa = PBXResourcesBuildPhase;
672 buildActionMask = 2147483647; 703 buildActionMask = 2147483647;
673 files = ( 704 files = (
674 ); 705 );
675 runOnlyForDeploymentPostprocessing = 0; 706 runOnlyForDeploymentPostprocessing = 0;
676 }; 707 };
677 /* End PBXResourcesBuildPhase section */ 708 /* End PBXResourcesBuildPhase section */
678 709
679 /* Begin PBXShellScriptBuildPhase section */ 710 /* Begin PBXShellScriptBuildPhase section */
680 22F89B11794CEB4E265996AC /* [CP] Embed Pods Frameworks */ = { 711 22F89B11794CEB4E265996AC /* [CP] Embed Pods Frameworks */ = {
681 isa = PBXShellScriptBuildPhase; 712 isa = PBXShellScriptBuildPhase;
682 buildActionMask = 2147483647; 713 buildActionMask = 2147483647;
683 files = ( 714 files = (
684 ); 715 );
685 inputPaths = ( 716 inputPaths = (
686 ); 717 );
687 name = "[CP] Embed Pods Frameworks"; 718 name = "[CP] Embed Pods Frameworks";
688 outputPaths = ( 719 outputPaths = (
689 ); 720 );
690 runOnlyForDeploymentPostprocessing = 0; 721 runOnlyForDeploymentPostprocessing = 0;
691 shellPath = /bin/sh; 722 shellPath = /bin/sh;
692 shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog-frameworks.sh\"\n"; 723 shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog-frameworks.sh\"\n";
693 showEnvVarsInLog = 0; 724 showEnvVarsInLog = 0;
694 }; 725 };
695 2BB22CAEC0728AA1E086BCE3 /* [CP] Check Pods Manifest.lock */ = { 726 2BB22CAEC0728AA1E086BCE3 /* [CP] Check Pods Manifest.lock */ = {
696 isa = PBXShellScriptBuildPhase; 727 isa = PBXShellScriptBuildPhase;
697 buildActionMask = 2147483647; 728 buildActionMask = 2147483647;
698 files = ( 729 files = (
699 ); 730 );
700 inputPaths = ( 731 inputPaths = (
701 ); 732 );
702 name = "[CP] Check Pods Manifest.lock"; 733 name = "[CP] Check Pods Manifest.lock";
703 outputPaths = ( 734 outputPaths = (
704 ); 735 );
705 runOnlyForDeploymentPostprocessing = 0; 736 runOnlyForDeploymentPostprocessing = 0;
706 shellPath = /bin/sh; 737 shellPath = /bin/sh;
707 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"; 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";
708 showEnvVarsInLog = 0; 739 showEnvVarsInLog = 0;
709 }; 740 };
710 96653BDB2C24A87C2866C897 /* [CP] Copy Pods Resources */ = { 741 96653BDB2C24A87C2866C897 /* [CP] Copy Pods Resources */ = {
711 isa = PBXShellScriptBuildPhase; 742 isa = PBXShellScriptBuildPhase;
712 buildActionMask = 2147483647; 743 buildActionMask = 2147483647;
713 files = ( 744 files = (
714 ); 745 );
715 inputPaths = ( 746 inputPaths = (
716 ); 747 );
717 name = "[CP] Copy Pods Resources"; 748 name = "[CP] Copy Pods Resources";
718 outputPaths = ( 749 outputPaths = (
719 ); 750 );
720 runOnlyForDeploymentPostprocessing = 0; 751 runOnlyForDeploymentPostprocessing = 0;
721 shellPath = /bin/sh; 752 shellPath = /bin/sh;
722 shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog-resources.sh\"\n"; 753 shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog-resources.sh\"\n";
723 showEnvVarsInLog = 0; 754 showEnvVarsInLog = 0;
724 }; 755 };
725 /* End PBXShellScriptBuildPhase section */ 756 /* End PBXShellScriptBuildPhase section */
726 757
727 /* Begin PBXSourcesBuildPhase section */ 758 /* Begin PBXSourcesBuildPhase section */
728 6E84E36D1F27A700001EB88E /* Sources */ = { 759 6E84E36D1F27A700001EB88E /* Sources */ = {
729 isa = PBXSourcesBuildPhase; 760 isa = PBXSourcesBuildPhase;
730 buildActionMask = 2147483647; 761 buildActionMask = 2147483647;
731 files = ( 762 files = (
732 6E18CED81F2E3C840029891F /* ServerAPI.m in Sources */, 763 6E18CED81F2E3C840029891F /* ServerAPI.m in Sources */,
733 6E7F93431F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m in Sources */, 764 6E7F93431F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m in Sources */,
734 6E7F93421F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m in Sources */, 765 6E7F93421F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m in Sources */,
735 E968550A1F3C444900317CEF /* AutoTransButton.m in Sources */, 766 E968550A1F3C444900317CEF /* AutoTransButton.m in Sources */,
767 E933E6741F3E0E4E002926F5 /* GroupObject.m in Sources */,
736 9CBDA0FA1F2ECE2C0055DED1 /* BaseViewController.m in Sources */, 768 9CBDA0FA1F2ECE2C0055DED1 /* BaseViewController.m in Sources */,
737 6E8DA0F71F2BAC3400CCE941 /* TodayViewController.m in Sources */, 769 6E8DA0F71F2BAC3400CCE941 /* TodayViewController.m in Sources */,
738 6E7F93451F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m in Sources */, 770 6E7F93451F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m in Sources */,
739 E9682E2E1F39675A00FE05A2 /* RankingTableViewCell.m in Sources */, 771 E9682E2E1F39675A00FE05A2 /* RankingTableViewCell.m in Sources */,
740 E9D909211F3D559D004CF99F /* TweetObject.m in Sources */, 772 E9D909211F3D559D004CF99F /* TweetObject.m in Sources */,
741 6E48AF0D1F2F9D3300C1D184 /* CustomTextField.m in Sources */, 773 6E48AF0D1F2F9D3300C1D184 /* CustomTextField.m in Sources */,
742 E99E13AB1F336F3600C78787 /* CollectionView.m in Sources */, 774 E99E13AB1F336F3600C78787 /* CollectionView.m in Sources */,
743 6E84E3B01F27A975001EB88E /* HomeViewController.m in Sources */, 775 6E84E3B01F27A975001EB88E /* HomeViewController.m in Sources */,
744 E9373E471F3596940059355A /* AutoTransLabel.m in Sources */, 776 E9373E471F3596940059355A /* AutoTransLabel.m in Sources */,
745 6E84E3791F27A701001EB88E /* AppDelegate.m in Sources */, 777 6E84E3791F27A701001EB88E /* AppDelegate.m in Sources */,
746 6E84E3BA1F27A9A0001EB88E /* RankingViewController.m in Sources */, 778 6E84E3BA1F27A9A0001EB88E /* RankingViewController.m in Sources */,
747 6E7F93441F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m in Sources */, 779 6E7F93441F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m in Sources */,
748 E9F73DCC1F338A0F004A3A6F /* HistoryListTableViewCell.m in Sources */, 780 E9F73DCC1F338A0F004A3A6F /* HistoryListTableViewCell.m in Sources */,
749 6EDC8BF41F2C68D700765ACC /* CMMotionActivityExtra.m in Sources */, 781 6EDC8BF41F2C68D700765ACC /* CMMotionActivityExtra.m in Sources */,
750 9CBDA0FF1F2F03810055DED1 /* RegisterViewController.m in Sources */, 782 9CBDA0FF1F2F03810055DED1 /* RegisterViewController.m in Sources */,
751 E9373E4A1F35AA180059355A /* HistoryObject.m in Sources */, 783 E9373E4A1F35AA180059355A /* HistoryObject.m in Sources */,
752 9CA8AEEA1F31BB4600C5FC74 /* ConfirmForgetPassViewController.m in Sources */, 784 9CA8AEEA1F31BB4600C5FC74 /* ConfirmForgetPassViewController.m in Sources */,
753 E99E13B11F33720600C78787 /* LabelCollectionViewCell.m in Sources */, 785 E99E13B11F33720600C78787 /* LabelCollectionViewCell.m in Sources */,
754 6EDC8BEE1F2C2FB800765ACC /* Utilities.m in Sources */, 786 6EDC8BEE1F2C2FB800765ACC /* Utilities.m in Sources */,
755 E96855111F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m in Sources */, 787 E96855111F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m in Sources */,
756 6E84E3C51F27ACAE001EB88E /* MapViewController.m in Sources */, 788 6E84E3C51F27ACAE001EB88E /* MapViewController.m in Sources */,
757 6E18CEDC1F2E40F50029891F /* User.m in Sources */, 789 6E18CEDC1F2E40F50029891F /* User.m in Sources */,
758 6ECC40711F2A5FEB00AAEB97 /* NSDate+helper.m in Sources */, 790 6ECC40711F2A5FEB00AAEB97 /* NSDate+helper.m in Sources */,
759 6E18CED31F2E39DB0029891F /* LoginViewController.m in Sources */, 791 6E18CED31F2E39DB0029891F /* LoginViewController.m in Sources */,
760 E9D909241F3D6E8C004CF99F /* BaseTableViewController.m in Sources */, 792 E9D909241F3D6E8C004CF99F /* BaseTableViewController.m in Sources */,
761 6E84E3761F27A701001EB88E /* main.m in Sources */, 793 6E84E3761F27A701001EB88E /* main.m in Sources */,
794 E933E6701F3E09B6002926F5 /* SearchGroupTableViewCell.m in Sources */,
762 6E84E3B51F27A98B001EB88E /* HistoryViewController.m in Sources */, 795 6E84E3B51F27A98B001EB88E /* HistoryViewController.m in Sources */,
763 E9373E4D1F361A230059355A /* HistoryGraphObject.m in Sources */, 796 E9373E4D1F361A230059355A /* HistoryGraphObject.m in Sources */,
797 E933E66B1F3E04A6002926F5 /* SearchGroupViewController.m in Sources */,
764 6E84E3BF1F27A9B1001EB88E /* SNSViewController.m in Sources */, 798 6E84E3BF1F27A9B1001EB88E /* SNSViewController.m in Sources */,
765 ); 799 );
766 runOnlyForDeploymentPostprocessing = 0; 800 runOnlyForDeploymentPostprocessing = 0;
767 }; 801 };
768 6E84E3861F27A703001EB88E /* Sources */ = { 802 6E84E3861F27A703001EB88E /* Sources */ = {
769 isa = PBXSourcesBuildPhase; 803 isa = PBXSourcesBuildPhase;
770 buildActionMask = 2147483647; 804 buildActionMask = 2147483647;
771 files = ( 805 files = (
772 6E84E38F1F27A703001EB88E /* LifeLogTests.m in Sources */, 806 6E84E38F1F27A703001EB88E /* LifeLogTests.m in Sources */,
773 ); 807 );
774 runOnlyForDeploymentPostprocessing = 0; 808 runOnlyForDeploymentPostprocessing = 0;
775 }; 809 };
776 6E84E3911F27A703001EB88E /* Sources */ = { 810 6E84E3911F27A703001EB88E /* Sources */ = {
777 isa = PBXSourcesBuildPhase; 811 isa = PBXSourcesBuildPhase;
778 buildActionMask = 2147483647; 812 buildActionMask = 2147483647;
779 files = ( 813 files = (
780 6E84E39A1F27A703001EB88E /* LifeLogUITests.m in Sources */, 814 6E84E39A1F27A703001EB88E /* LifeLogUITests.m in Sources */,
781 ); 815 );
782 runOnlyForDeploymentPostprocessing = 0; 816 runOnlyForDeploymentPostprocessing = 0;
783 }; 817 };
784 /* End PBXSourcesBuildPhase section */ 818 /* End PBXSourcesBuildPhase section */
785 819
786 /* Begin PBXTargetDependency section */ 820 /* Begin PBXTargetDependency section */
787 6E84E38C1F27A703001EB88E /* PBXTargetDependency */ = { 821 6E84E38C1F27A703001EB88E /* PBXTargetDependency */ = {
788 isa = PBXTargetDependency; 822 isa = PBXTargetDependency;
789 target = 6E84E3701F27A700001EB88E /* LifeLog */; 823 target = 6E84E3701F27A700001EB88E /* LifeLog */;
790 targetProxy = 6E84E38B1F27A703001EB88E /* PBXContainerItemProxy */; 824 targetProxy = 6E84E38B1F27A703001EB88E /* PBXContainerItemProxy */;
791 }; 825 };
792 6E84E3971F27A703001EB88E /* PBXTargetDependency */ = { 826 6E84E3971F27A703001EB88E /* PBXTargetDependency */ = {
793 isa = PBXTargetDependency; 827 isa = PBXTargetDependency;
794 target = 6E84E3701F27A700001EB88E /* LifeLog */; 828 target = 6E84E3701F27A700001EB88E /* LifeLog */;
795 targetProxy = 6E84E3961F27A703001EB88E /* PBXContainerItemProxy */; 829 targetProxy = 6E84E3961F27A703001EB88E /* PBXContainerItemProxy */;
796 }; 830 };
797 /* End PBXTargetDependency section */ 831 /* End PBXTargetDependency section */
798 832
799 /* Begin PBXVariantGroup section */ 833 /* Begin PBXVariantGroup section */
800 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */ = { 834 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */ = {
801 isa = PBXVariantGroup; 835 isa = PBXVariantGroup;
802 children = ( 836 children = (
803 6E84E3831F27A701001EB88E /* Base */, 837 6E84E3831F27A701001EB88E /* Base */,
804 ); 838 );
805 name = LaunchScreen.storyboard; 839 name = LaunchScreen.storyboard;
806 sourceTree = "<group>"; 840 sourceTree = "<group>";
807 }; 841 };
808 /* End PBXVariantGroup section */ 842 /* End PBXVariantGroup section */
809 843
810 /* Begin XCBuildConfiguration section */ 844 /* Begin XCBuildConfiguration section */
811 6E84E39C1F27A703001EB88E /* Debug */ = { 845 6E84E39C1F27A703001EB88E /* Debug */ = {
812 isa = XCBuildConfiguration; 846 isa = XCBuildConfiguration;
813 buildSettings = { 847 buildSettings = {
814 ALWAYS_SEARCH_USER_PATHS = NO; 848 ALWAYS_SEARCH_USER_PATHS = NO;
815 CLANG_ANALYZER_NONNULL = YES; 849 CLANG_ANALYZER_NONNULL = YES;
816 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 850 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
817 CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 851 CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
818 CLANG_CXX_LIBRARY = "libc++"; 852 CLANG_CXX_LIBRARY = "libc++";
819 CLANG_ENABLE_MODULES = YES; 853 CLANG_ENABLE_MODULES = YES;
820 CLANG_ENABLE_OBJC_ARC = YES; 854 CLANG_ENABLE_OBJC_ARC = YES;
821 CLANG_WARN_BOOL_CONVERSION = YES; 855 CLANG_WARN_BOOL_CONVERSION = YES;
822 CLANG_WARN_CONSTANT_CONVERSION = YES; 856 CLANG_WARN_CONSTANT_CONVERSION = YES;
823 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 857 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
824 CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 858 CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
825 CLANG_WARN_EMPTY_BODY = YES; 859 CLANG_WARN_EMPTY_BODY = YES;
826 CLANG_WARN_ENUM_CONVERSION = YES; 860 CLANG_WARN_ENUM_CONVERSION = YES;
827 CLANG_WARN_INFINITE_RECURSION = YES; 861 CLANG_WARN_INFINITE_RECURSION = YES;
828 CLANG_WARN_INT_CONVERSION = YES; 862 CLANG_WARN_INT_CONVERSION = YES;
829 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 863 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
830 CLANG_WARN_SUSPICIOUS_MOVE = YES; 864 CLANG_WARN_SUSPICIOUS_MOVE = YES;
831 CLANG_WARN_UNREACHABLE_CODE = YES; 865 CLANG_WARN_UNREACHABLE_CODE = YES;
832 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 866 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
833 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 867 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
834 COPY_PHASE_STRIP = NO; 868 COPY_PHASE_STRIP = NO;
835 DEBUG_INFORMATION_FORMAT = dwarf; 869 DEBUG_INFORMATION_FORMAT = dwarf;
836 ENABLE_STRICT_OBJC_MSGSEND = YES; 870 ENABLE_STRICT_OBJC_MSGSEND = YES;
837 ENABLE_TESTABILITY = YES; 871 ENABLE_TESTABILITY = YES;
838 GCC_C_LANGUAGE_STANDARD = gnu99; 872 GCC_C_LANGUAGE_STANDARD = gnu99;
839 GCC_DYNAMIC_NO_PIC = NO; 873 GCC_DYNAMIC_NO_PIC = NO;
840 GCC_NO_COMMON_BLOCKS = YES; 874 GCC_NO_COMMON_BLOCKS = YES;
841 GCC_OPTIMIZATION_LEVEL = 0; 875 GCC_OPTIMIZATION_LEVEL = 0;
842 GCC_PREPROCESSOR_DEFINITIONS = ( 876 GCC_PREPROCESSOR_DEFINITIONS = (
843 "DEBUG=1", 877 "DEBUG=1",
844 "$(inherited)", 878 "$(inherited)",
845 ); 879 );
846 GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 880 GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
847 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 881 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
848 GCC_WARN_UNDECLARED_SELECTOR = YES; 882 GCC_WARN_UNDECLARED_SELECTOR = YES;
849 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 883 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
850 GCC_WARN_UNUSED_FUNCTION = YES; 884 GCC_WARN_UNUSED_FUNCTION = YES;
851 GCC_WARN_UNUSED_VARIABLE = YES; 885 GCC_WARN_UNUSED_VARIABLE = YES;
852 IPHONEOS_DEPLOYMENT_TARGET = 10.3; 886 IPHONEOS_DEPLOYMENT_TARGET = 10.3;
853 MTL_ENABLE_DEBUG_INFO = YES; 887 MTL_ENABLE_DEBUG_INFO = YES;
854 ONLY_ACTIVE_ARCH = YES; 888 ONLY_ACTIVE_ARCH = YES;
855 SDKROOT = iphoneos; 889 SDKROOT = iphoneos;
856 TARGETED_DEVICE_FAMILY = "1,2"; 890 TARGETED_DEVICE_FAMILY = "1,2";
857 }; 891 };
858 name = Debug; 892 name = Debug;
859 }; 893 };
860 6E84E39D1F27A703001EB88E /* Release */ = { 894 6E84E39D1F27A703001EB88E /* Release */ = {
861 isa = XCBuildConfiguration; 895 isa = XCBuildConfiguration;
862 buildSettings = { 896 buildSettings = {
863 ALWAYS_SEARCH_USER_PATHS = NO; 897 ALWAYS_SEARCH_USER_PATHS = NO;
864 CLANG_ANALYZER_NONNULL = YES; 898 CLANG_ANALYZER_NONNULL = YES;
865 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 899 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
866 CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 900 CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
867 CLANG_CXX_LIBRARY = "libc++"; 901 CLANG_CXX_LIBRARY = "libc++";
868 CLANG_ENABLE_MODULES = YES; 902 CLANG_ENABLE_MODULES = YES;
869 CLANG_ENABLE_OBJC_ARC = YES; 903 CLANG_ENABLE_OBJC_ARC = YES;
870 CLANG_WARN_BOOL_CONVERSION = YES; 904 CLANG_WARN_BOOL_CONVERSION = YES;
871 CLANG_WARN_CONSTANT_CONVERSION = YES; 905 CLANG_WARN_CONSTANT_CONVERSION = YES;
872 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 906 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
873 CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 907 CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
874 CLANG_WARN_EMPTY_BODY = YES; 908 CLANG_WARN_EMPTY_BODY = YES;
875 CLANG_WARN_ENUM_CONVERSION = YES; 909 CLANG_WARN_ENUM_CONVERSION = YES;
876 CLANG_WARN_INFINITE_RECURSION = YES; 910 CLANG_WARN_INFINITE_RECURSION = YES;
877 CLANG_WARN_INT_CONVERSION = YES; 911 CLANG_WARN_INT_CONVERSION = YES;
878 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 912 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
879 CLANG_WARN_SUSPICIOUS_MOVE = YES; 913 CLANG_WARN_SUSPICIOUS_MOVE = YES;
880 CLANG_WARN_UNREACHABLE_CODE = YES; 914 CLANG_WARN_UNREACHABLE_CODE = YES;
881 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 915 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
882 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 916 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
883 COPY_PHASE_STRIP = NO; 917 COPY_PHASE_STRIP = NO;
884 DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 918 DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
885 ENABLE_NS_ASSERTIONS = NO; 919 ENABLE_NS_ASSERTIONS = NO;
886 ENABLE_STRICT_OBJC_MSGSEND = YES; 920 ENABLE_STRICT_OBJC_MSGSEND = YES;
887 GCC_C_LANGUAGE_STANDARD = gnu99; 921 GCC_C_LANGUAGE_STANDARD = gnu99;
888 GCC_NO_COMMON_BLOCKS = YES; 922 GCC_NO_COMMON_BLOCKS = YES;
889 GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 923 GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
890 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 924 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
891 GCC_WARN_UNDECLARED_SELECTOR = YES; 925 GCC_WARN_UNDECLARED_SELECTOR = YES;
892 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 926 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
893 GCC_WARN_UNUSED_FUNCTION = YES; 927 GCC_WARN_UNUSED_FUNCTION = YES;
894 GCC_WARN_UNUSED_VARIABLE = YES; 928 GCC_WARN_UNUSED_VARIABLE = YES;
895 IPHONEOS_DEPLOYMENT_TARGET = 10.3; 929 IPHONEOS_DEPLOYMENT_TARGET = 10.3;
896 MTL_ENABLE_DEBUG_INFO = NO; 930 MTL_ENABLE_DEBUG_INFO = NO;
897 SDKROOT = iphoneos; 931 SDKROOT = iphoneos;
898 TARGETED_DEVICE_FAMILY = "1,2"; 932 TARGETED_DEVICE_FAMILY = "1,2";
899 VALIDATE_PRODUCT = YES; 933 VALIDATE_PRODUCT = YES;
900 }; 934 };
901 name = Release; 935 name = Release;
902 }; 936 };
903 6E84E39F1F27A703001EB88E /* Debug */ = { 937 6E84E39F1F27A703001EB88E /* Debug */ = {
904 isa = XCBuildConfiguration; 938 isa = XCBuildConfiguration;
905 baseConfigurationReference = 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */; 939 baseConfigurationReference = 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */;
906 buildSettings = { 940 buildSettings = {
907 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 941 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
908 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 942 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
909 DEVELOPMENT_TEAM = ""; 943 DEVELOPMENT_TEAM = "";
910 INFOPLIST_FILE = LifeLog/Info.plist; 944 INFOPLIST_FILE = LifeLog/Info.plist;
911 IPHONEOS_DEPLOYMENT_TARGET = 9.0; 945 IPHONEOS_DEPLOYMENT_TARGET = 9.0;
912 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 946 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
913 OTHER_LDFLAGS = ( 947 OTHER_LDFLAGS = (
914 "$(inherited)", 948 "$(inherited)",
915 "-framework", 949 "-framework",
916 "\"CircleProgressBar\"", 950 "\"CircleProgressBar\"",
917 "-all_load", 951 "-all_load",
918 "-ObjC", 952 "-ObjC",
919 ); 953 );
920 PRODUCT_BUNDLE_IDENTIFIER = mobileworld.jp.lifelog; 954 PRODUCT_BUNDLE_IDENTIFIER = mobileworld.jp.lifelog;
921 PRODUCT_NAME = "$(TARGET_NAME)"; 955 PRODUCT_NAME = "$(TARGET_NAME)";
922 PROVISIONING_PROFILE = ""; 956 PROVISIONING_PROFILE = "";
923 PROVISIONING_PROFILE_SPECIFIER = ""; 957 PROVISIONING_PROFILE_SPECIFIER = "";
924 }; 958 };
925 name = Debug; 959 name = Debug;
926 }; 960 };
927 6E84E3A01F27A703001EB88E /* Release */ = { 961 6E84E3A01F27A703001EB88E /* Release */ = {
928 isa = XCBuildConfiguration; 962 isa = XCBuildConfiguration;
929 baseConfigurationReference = 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */; 963 baseConfigurationReference = 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */;
930 buildSettings = { 964 buildSettings = {
931 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 965 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
932 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 966 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
933 DEVELOPMENT_TEAM = ""; 967 DEVELOPMENT_TEAM = "";
934 INFOPLIST_FILE = LifeLog/Info.plist; 968 INFOPLIST_FILE = LifeLog/Info.plist;
935 IPHONEOS_DEPLOYMENT_TARGET = 9.0; 969 IPHONEOS_DEPLOYMENT_TARGET = 9.0;
936 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 970 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
937 OTHER_LDFLAGS = ( 971 OTHER_LDFLAGS = (
938 "$(inherited)", 972 "$(inherited)",
939 "-framework", 973 "-framework",
940 "\"CircleProgressBar\"", 974 "\"CircleProgressBar\"",
941 "-all_load", 975 "-all_load",
942 "-ObjC", 976 "-ObjC",
943 ); 977 );
944 PRODUCT_BUNDLE_IDENTIFIER = mobileworld.jp.lifelog; 978 PRODUCT_BUNDLE_IDENTIFIER = mobileworld.jp.lifelog;
945 PRODUCT_NAME = "$(TARGET_NAME)"; 979 PRODUCT_NAME = "$(TARGET_NAME)";
946 PROVISIONING_PROFILE = ""; 980 PROVISIONING_PROFILE = "";
947 PROVISIONING_PROFILE_SPECIFIER = ""; 981 PROVISIONING_PROFILE_SPECIFIER = "";
948 }; 982 };
949 name = Release; 983 name = Release;
950 }; 984 };
951 6E84E3A21F27A703001EB88E /* Debug */ = { 985 6E84E3A21F27A703001EB88E /* Debug */ = {
952 isa = XCBuildConfiguration; 986 isa = XCBuildConfiguration;
953 buildSettings = { 987 buildSettings = {
954 BUNDLE_LOADER = "$(TEST_HOST)"; 988 BUNDLE_LOADER = "$(TEST_HOST)";
955 INFOPLIST_FILE = LifeLogTests/Info.plist; 989 INFOPLIST_FILE = LifeLogTests/Info.plist;
956 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 990 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
957 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogTests; 991 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogTests;
958 PRODUCT_NAME = "$(TARGET_NAME)"; 992 PRODUCT_NAME = "$(TARGET_NAME)";
959 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LifeLog.app/LifeLog"; 993 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LifeLog.app/LifeLog";
960 }; 994 };
961 name = Debug; 995 name = Debug;
962 }; 996 };
963 6E84E3A31F27A703001EB88E /* Release */ = { 997 6E84E3A31F27A703001EB88E /* Release */ = {
964 isa = XCBuildConfiguration; 998 isa = XCBuildConfiguration;
965 buildSettings = { 999 buildSettings = {
966 BUNDLE_LOADER = "$(TEST_HOST)"; 1000 BUNDLE_LOADER = "$(TEST_HOST)";
967 INFOPLIST_FILE = LifeLogTests/Info.plist; 1001 INFOPLIST_FILE = LifeLogTests/Info.plist;
968 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 1002 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
969 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogTests; 1003 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogTests;
970 PRODUCT_NAME = "$(TARGET_NAME)"; 1004 PRODUCT_NAME = "$(TARGET_NAME)";
971 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LifeLog.app/LifeLog"; 1005 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LifeLog.app/LifeLog";
972 }; 1006 };
973 name = Release; 1007 name = Release;
974 }; 1008 };
975 6E84E3A51F27A703001EB88E /* Debug */ = { 1009 6E84E3A51F27A703001EB88E /* Debug */ = {
976 isa = XCBuildConfiguration; 1010 isa = XCBuildConfiguration;
977 buildSettings = { 1011 buildSettings = {
978 INFOPLIST_FILE = LifeLogUITests/Info.plist; 1012 INFOPLIST_FILE = LifeLogUITests/Info.plist;
979 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 1013 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
980 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogUITests; 1014 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogUITests;
981 PRODUCT_NAME = "$(TARGET_NAME)"; 1015 PRODUCT_NAME = "$(TARGET_NAME)";
982 TEST_TARGET_NAME = LifeLog; 1016 TEST_TARGET_NAME = LifeLog;
983 }; 1017 };
984 name = Debug; 1018 name = Debug;
985 }; 1019 };
986 6E84E3A61F27A703001EB88E /* Release */ = { 1020 6E84E3A61F27A703001EB88E /* Release */ = {
987 isa = XCBuildConfiguration; 1021 isa = XCBuildConfiguration;
988 buildSettings = { 1022 buildSettings = {
989 INFOPLIST_FILE = LifeLogUITests/Info.plist; 1023 INFOPLIST_FILE = LifeLogUITests/Info.plist;
990 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 1024 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
991 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogUITests; 1025 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogUITests;
992 PRODUCT_NAME = "$(TARGET_NAME)"; 1026 PRODUCT_NAME = "$(TARGET_NAME)";
993 TEST_TARGET_NAME = LifeLog; 1027 TEST_TARGET_NAME = LifeLog;
994 }; 1028 };
995 name = Release; 1029 name = Release;
996 }; 1030 };
997 /* End XCBuildConfiguration section */ 1031 /* End XCBuildConfiguration section */
998 1032
999 /* Begin XCConfigurationList section */ 1033 /* Begin XCConfigurationList section */
1000 6E84E36C1F27A700001EB88E /* Build configuration list for PBXProject "LifeLog" */ = { 1034 6E84E36C1F27A700001EB88E /* Build configuration list for PBXProject "LifeLog" */ = {
1001 isa = XCConfigurationList; 1035 isa = XCConfigurationList;
1002 buildConfigurations = ( 1036 buildConfigurations = (
1003 6E84E39C1F27A703001EB88E /* Debug */, 1037 6E84E39C1F27A703001EB88E /* Debug */,
1004 6E84E39D1F27A703001EB88E /* Release */, 1038 6E84E39D1F27A703001EB88E /* Release */,
1005 ); 1039 );
1006 defaultConfigurationIsVisible = 0; 1040 defaultConfigurationIsVisible = 0;
1007 defaultConfigurationName = Release; 1041 defaultConfigurationName = Release;
1008 }; 1042 };
1009 6E84E39E1F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLog" */ = { 1043 6E84E39E1F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLog" */ = {
1010 isa = XCConfigurationList; 1044 isa = XCConfigurationList;
1011 buildConfigurations = ( 1045 buildConfigurations = (
1012 6E84E39F1F27A703001EB88E /* Debug */, 1046 6E84E39F1F27A703001EB88E /* Debug */,
1013 6E84E3A01F27A703001EB88E /* Release */, 1047 6E84E3A01F27A703001EB88E /* Release */,
1014 ); 1048 );
1015 defaultConfigurationIsVisible = 0; 1049 defaultConfigurationIsVisible = 0;
1016 defaultConfigurationName = Release; 1050 defaultConfigurationName = Release;
1017 }; 1051 };
1018 6E84E3A11F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogTests" */ = { 1052 6E84E3A11F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogTests" */ = {
1019 isa = XCConfigurationList; 1053 isa = XCConfigurationList;
1020 buildConfigurations = ( 1054 buildConfigurations = (
1021 6E84E3A21F27A703001EB88E /* Debug */, 1055 6E84E3A21F27A703001EB88E /* Debug */,
1022 6E84E3A31F27A703001EB88E /* Release */, 1056 6E84E3A31F27A703001EB88E /* Release */,
1023 ); 1057 );
1024 defaultConfigurationIsVisible = 0; 1058 defaultConfigurationIsVisible = 0;
1025 defaultConfigurationName = Release; 1059 defaultConfigurationName = Release;
1026 }; 1060 };
1027 6E84E3A41F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogUITests" */ = { 1061 6E84E3A41F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogUITests" */ = {
1028 isa = XCConfigurationList; 1062 isa = XCConfigurationList;
1029 buildConfigurations = ( 1063 buildConfigurations = (
1030 6E84E3A51F27A703001EB88E /* Debug */, 1064 6E84E3A51F27A703001EB88E /* Debug */,
1031 6E84E3A61F27A703001EB88E /* Release */, 1065 6E84E3A61F27A703001EB88E /* Release */,
1032 ); 1066 );
1033 defaultConfigurationIsVisible = 0; 1067 defaultConfigurationIsVisible = 0;
1034 defaultConfigurationName = Release; 1068 defaultConfigurationName = Release;
1035 }; 1069 };
1036 /* End XCConfigurationList section */ 1070 /* End XCConfigurationList section */
1037 }; 1071 };
1038 rootObject = 6E84E3691F27A700001EB88E /* Project object */; 1072 rootObject = 6E84E3691F27A700001EB88E /* Project object */;
1039 } 1073 }
1040 1074
LifeLog/LifeLog/Entities.h
1 // 1 //
2 // Entities.h 2 // Entities.h
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by Nguyen Van Phong on 7/30/17. 5 // Created by Nguyen Van Phong on 7/30/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #ifndef Entities_h 9 #ifndef Entities_h
10 #define Entities_h 10 #define Entities_h
11 11
12 #import <MBProgressHUD/MBProgressHUD.h> 12 #import <MBProgressHUD/MBProgressHUD.h>
13 13
14 #import "GroupObject.h"
14 #import "TweetObject.h" 15 #import "TweetObject.h"
15 #import "HistoryGraphObject.h" 16 #import "HistoryGraphObject.h"
16 #import "HistoryObject.h" 17 #import "HistoryObject.h"
17 #import "User.h" 18 #import "User.h"
18 19
19 #endif /* Entities_h */ 20 #endif /* Entities_h */
20 21
LifeLog/LifeLog/GroupObject.h
File was created 1 //
2 // GroupObject.h
3 // LifeLog
4 //
5 // Created by nvtu on 8/11/17.
6 // Copyright © 2017 PhongNV. All rights reserved.
7 //
8
9 #import <Foundation/Foundation.h>
10
11 @interface GroupObject : NSObject
12
13 @property (nonatomic) int groupID;
14 @property (nonatomic) int numSearch;
15
16 @property (nonatomic) BOOL walkMode;
17 @property (nonatomic) BOOL runMode;
18 @property (nonatomic) BOOL bikeMode;
19 @property (nonatomic) BOOL stepMode;
20 @property (nonatomic) BOOL gymMode;
21 @property (nonatomic) BOOL beginMode;
22
23 @property (nonatomic, strong) NSString * name;
24 @property (nonatomic, strong) NSString * avatar;
25 @property (nonatomic, strong) NSDate * createDate;
26
27 -(id) initWithData : (NSDictionary *) dict;
28
29 @end
30
LifeLog/LifeLog/GroupObject.m
File was created 1 //
2 // GroupObject.m
3 // LifeLog
4 //
5 // Created by nvtu on 8/11/17.
6 // Copyright © 2017 PhongNV. All rights reserved.
7 //
8
9 #import "GroupObject.h"
10 #import "Utilities.h"
11
12 @implementation GroupObject
13
14 -(id) initWithData : (NSDictionary *) dict {
15 if([dict objectForKey:@"group_id"] != nil) {
16 self.groupID = [dict[@"group_id"] intValue];
17 }
18 if([dict objectForKey:@"group_name"] != nil) {
19 self.name = dict[@"group_name"];
20 }
21 if([dict objectForKey:@"group_avatar"] != nil) {
22 self.avatar = dict[@"group_avatar"];
23 }
24 if([dict objectForKey:@"walk_mode_active"] != nil && ![[dict objectForKey:@"walk_mode_active"] isKindOfClass:[NSNull class]]) {
25 self.walkMode = [dict[@"walk_mode_active"] boolValue];
26 }
27 if([dict objectForKey:@"run_mode_active"] != nil && ![[dict objectForKey:@"run_mode_active"] isKindOfClass:[NSNull class]]) {
28 self.runMode = [dict[@"run_mode_active"] boolValue];
29 }
30 if([dict objectForKey:@"run_mode_active"] != nil && ![[dict objectForKey:@"run_mode_active"] isKindOfClass:[NSNull class]]) {
31 self.bikeMode = [dict[@"bike_mode_active"] boolValue];
32 }
33 if([dict objectForKey:@"step_mode_active"] != nil && ![[dict objectForKey:@"step_mode_active"] isKindOfClass:[NSNull class]]) {
34 self.stepMode = [dict[@"step_mode_active"] boolValue];
35 }
36 if([dict objectForKey:@"gym_mode_active"] != nil && ![[dict objectForKey:@"gym_mode_active"] isKindOfClass:[NSNull class]]) {
37 self.gymMode = [dict[@"gym_mode_active"] boolValue];
38 }
39 if([dict objectForKey:@"beginer_mode_active"] != nil && ![[dict objectForKey:@"beginer_mode_active"] isKindOfClass:[NSNull class]]) {
40 self.beginMode = [dict[@"beginer_mode_active"] boolValue];
41 }
42 if([dict objectForKey:@"created_at"] != nil) {
43 NSString *dateString = dict[@"created_at"];
44 self.createDate = [Utilities dateFromString:dateString withFormat:@"yyyy-MM-dd hh:mm:ss"];
45 }
46 else {
47 self.createDate = [NSDate date];
48 }
49 if([dict objectForKey:@"num_search"] != nil) {
50 self.numSearch = [dict[@"num_search"] intValue];
51 }
52 return self;
53 }
54
55 @end
56
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 @end 17 @end
17 18
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 #import "SNSRecentTopicTableViewCell.h" 10
11 #import <SDWebImage/UIImageView+WebCache.h>
12
11 #import "ServerAPI.h" 13 #import "ServerAPI.h"
12 #import "Utilities.h" 14 #import "Utilities.h"
13 #import <SDWebImage/UIImageView+WebCache.h>
14 15
16 #import "SNSRecentTopicTableViewCell.h"
17 #import "SearchGroupViewController.h"
18
15 @interface SNSViewController () 19 @interface SNSViewController ()
16 20
17 @end 21 @end
18 22
19 @implementation SNSViewController 23 @implementation SNSViewController
20 24
21 - (void)viewDidLoad { 25 - (void)viewDidLoad {
22 [super viewDidLoad]; 26 [super viewDidLoad];
23 // Do any additional setup after loading the view from its nib. 27 // Do any additional setup after loading the view from its nib.
24 self.title = NSLocalizedString(@"lifelog.tapbar.sns", nil); 28 self.title = NSLocalizedString(@"lifelog.tapbar.sns", nil);
25 29
26 [self callRequestToUpdateData]; 30 [self callRequestToUpdateData];
27 31
28 //register nib for table view 32 //register nib for table view
29 [self.tableBase registerNib:[UINib nibWithNibName:@"SNSRecentTopicTableViewCell" bundle:nil] forCellReuseIdentifier:@"RecentTopicCell"]; 33 [self.tableBase registerNib:[UINib nibWithNibName:@"SNSRecentTopicTableViewCell" bundle:nil] forCellReuseIdentifier:@"RecentTopicCell"];
30 } 34 }
31 35
32 - (void)didReceiveMemoryWarning { 36 - (void)didReceiveMemoryWarning {
33 [super didReceiveMemoryWarning]; 37 [super didReceiveMemoryWarning];
34 // Dispose of any resources that can be recreated. 38 // Dispose of any resources that can be recreated.
35 } 39 }
36 40
41 #pragma mark IBAction
42 - (IBAction)clickRecommendGroup:(id)sender {
43 SearchGroupViewController * search = [[SearchGroupViewController alloc] init];
44 [self.navigationController pushViewController:search animated:true];
45 }
37 46
38 #pragma mark UITableView Delegate 47 #pragma mark UITableView Delegate
39 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 48 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
40 SNSRecentTopicTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"RecentTopicCell"]; 49 SNSRecentTopicTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"RecentTopicCell"];
41 TweetObject *object = [_curDataList objectAtIndex:indexPath.row]; 50 TweetObject *object = [_curDataList objectAtIndex:indexPath.row];
42 if(object.avatarLink && ![object.avatarLink isKindOfClass:[NSNull class]]) { 51 if(object.avatarLink && ![object.avatarLink isKindOfClass:[NSNull class]]) {
43 [cell.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatarLink]]]; 52 [cell.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatarLink]]];
44 } 53 }
45 cell.lblDateTime.text = [Utilities stringFromDate:object.createDate withFormat:@"YYYY/MM/dd hh:mm"]; 54 cell.lblDateTime.text = [Utilities stringFromDate:object.createDate withFormat:@"YYYY/MM/dd hh:mm"];
46 cell.lblUsername.text = object.userName; 55 cell.lblUsername.text = object.userName;
47 cell.lblDes.text = object.content; 56 cell.lblDes.text = object.content;
48 cell.lblMode.text = object.mode; 57 cell.lblMode.text = object.mode;
49 cell.lblDistance.text = [NSString stringWithFormat:@"%.0f m", object.distance]; 58 cell.lblDistance.text = [NSString stringWithFormat:@"%.0f m", object.distance];
50 cell.lblDuration.text = object.time; 59 cell.lblDuration.text = object.time;
51 return cell; 60 return cell;
52 } 61 }
53 62
54 #pragma mark Private Function 63 #pragma mark Private Function
55 64
56 -(void) callRequestToUpdateData { 65 -(void) callRequestToUpdateData {
57 [super callRequestToUpdateData]; 66 [super callRequestToUpdateData];
58 67
59 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken]; 68 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken];
60 MBProgressHUD *hudView = nil; 69 MBProgressHUD *hudView = nil;
61 if(_curPage == 1 && !self.refreshControl.isRefreshing) { 70 if(_curPage == 1 && !self.refreshControl.isRefreshing) {
62 hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true]; 71 hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true];
63 } 72 }
64 [[ServerAPI server] requestRecentlyTweetsList:token withPage:_curPage CompletionHandler:^(NSArray *array, NSError *error){ 73 [[ServerAPI server] requestRecentlyTweetsList:token withPage:_curPage CompletionHandler:^(NSArray *array, NSError *error){
65 dispatch_async(dispatch_get_main_queue(), ^{ 74 dispatch_async(dispatch_get_main_queue(), ^{
66 if(hudView != nil) { 75 if(hudView != nil) {
67 [hudView hideAnimated:true]; 76 [hudView hideAnimated:true];
68 } 77 }
69 }); 78 });
70 SNSViewController __weak *weakSelf = self; 79 SNSViewController __weak *weakSelf = self;
71 [weakSelf updateTableData:array error:error]; 80 [weakSelf updateTableData:array error:error];
72 }]; 81 }];
73 } 82 }
74 83
75 @end 84 @end
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="12121" systemVersion="16A323" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> 2 <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12118" systemVersion="16D32" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
3 <device id="retina4_7" orientation="portrait"> 3 <device id="retina4_7" orientation="portrait">
4 <adaptation id="fullscreen"/> 4 <adaptation id="fullscreen"/>
5 </device> 5 </device>
6 <dependencies> 6 <dependencies>
7 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/> 7 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="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>
84 <action selector="clickRecommendGroup:" destination="-1" eventType="touchUpInside" id="DEw-ej-loH"/>
85 </connections>
83 </button> 86 </button>
84 <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">
85 <rect key="frame" x="20" y="126" width="335" height="40"/> 88 <rect key="frame" x="20" y="126" width="335" height="40"/>
86 <color key="backgroundColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/> 89 <color key="backgroundColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
87 <constraints> 90 <constraints>
88 <constraint firstAttribute="height" constant="40" id="oph-d8-bxh"/> 91 <constraint firstAttribute="height" constant="40" id="oph-d8-bxh"/>
89 </constraints> 92 </constraints>
90 <fontDescription key="fontDescription" type="system" pointSize="13"/> 93 <fontDescription key="fontDescription" type="system" pointSize="13"/>
91 <state key="normal"> 94 <state key="normal">
92 <string key="title" base64-UTF8="YES"> 95 <string key="title" base64-UTF8="YES">
93 44Oe44Kk44Kw44Or44O844OXAA 96 44Oe44Kk44Kw44Or44O844OXAA
94 </string> 97 </string>
95 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 98 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
96 </state> 99 </state>
97 <userDefinedRuntimeAttributes> 100 <userDefinedRuntimeAttributes>
98 <userDefinedRuntimeAttribute type="number" keyPath="layer.corderRadius"> 101 <userDefinedRuntimeAttribute type="number" keyPath="layer.corderRadius">
99 <integer key="value" value="5"/> 102 <integer key="value" value="5"/>
100 </userDefinedRuntimeAttribute> 103 </userDefinedRuntimeAttribute>
101 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.sns.bt.mygroup"/> 104 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.sns.bt.mygroup"/>
102 </userDefinedRuntimeAttributes> 105 </userDefinedRuntimeAttributes>
103 </button> 106 </button>
104 <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"> 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">
105 <rect key="frame" x="20" y="226" width="335" height="21"/> 108 <rect key="frame" x="20" y="226" width="335" height="21"/>
106 <constraints> 109 <constraints>
107 <constraint firstAttribute="height" constant="21" id="Gu9-7U-YXF"/> 110 <constraint firstAttribute="height" constant="21" id="Gu9-7U-YXF"/>
108 </constraints> 111 </constraints>
109 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/> 112 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/>
110 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 113 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
111 <nil key="highlightedColor"/> 114 <nil key="highlightedColor"/>
112 <userDefinedRuntimeAttributes> 115 <userDefinedRuntimeAttributes>
113 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.sns.lbl.recent"/> 116 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.sns.lbl.recent"/>
114 </userDefinedRuntimeAttributes> 117 </userDefinedRuntimeAttributes>
115 </label> 118 </label>
116 <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" rowHeight="100" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="KcG-O5-UhK"> 119 <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" rowHeight="100" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="KcG-O5-UhK">
117 <rect key="frame" x="0.0" y="255" width="375" height="362"/> 120 <rect key="frame" x="0.0" y="255" width="375" height="362"/>
118 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 121 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
119 <connections> 122 <connections>
120 <outlet property="dataSource" destination="-1" id="Y5Y-4y-Bzz"/> 123 <outlet property="dataSource" destination="-1" id="Y5Y-4y-Bzz"/>
121 <outlet property="delegate" destination="-1" id="VCg-Ha-vdk"/> 124 <outlet property="delegate" destination="-1" id="VCg-Ha-vdk"/>
122 </connections> 125 </connections>
123 </tableView> 126 </tableView>
124 </subviews> 127 </subviews>
125 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/> 128 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
126 <constraints> 129 <constraints>
127 <constraint firstItem="O4Q-H0-WBO" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="0u7-Ks-LSt"/> 130 <constraint firstItem="O4Q-H0-WBO" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="0u7-Ks-LSt"/>
128 <constraint firstAttribute="trailing" secondItem="O4Q-H0-WBO" secondAttribute="trailing" id="2pA-85-kwM"/> 131 <constraint firstAttribute="trailing" secondItem="O4Q-H0-WBO" secondAttribute="trailing" id="2pA-85-kwM"/>
129 <constraint firstItem="zzn-bU-X6s" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="20" id="4Uu-Hd-lEX"/> 132 <constraint firstItem="zzn-bU-X6s" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="20" id="4Uu-Hd-lEX"/>
130 <constraint firstItem="uB3-Sm-i6e" firstAttribute="top" secondItem="5ZL-zf-geZ" secondAttribute="bottom" constant="10" id="BBu-TF-Z8P"/> 133 <constraint firstItem="uB3-Sm-i6e" firstAttribute="top" secondItem="5ZL-zf-geZ" secondAttribute="bottom" constant="10" id="BBu-TF-Z8P"/>
131 <constraint firstItem="O4Q-H0-WBO" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="Ml4-eE-LTb"/> 134 <constraint firstItem="O4Q-H0-WBO" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="Ml4-eE-LTb"/>
132 <constraint firstAttribute="bottom" secondItem="KcG-O5-UhK" secondAttribute="bottom" constant="50" id="O0M-Cr-W0f"/> 135 <constraint firstAttribute="bottom" secondItem="KcG-O5-UhK" secondAttribute="bottom" constant="50" id="O0M-Cr-W0f"/>
133 <constraint firstAttribute="trailing" secondItem="uB3-Sm-i6e" secondAttribute="trailing" constant="20" id="Qu0-ja-Iwx"/> 136 <constraint firstAttribute="trailing" secondItem="uB3-Sm-i6e" secondAttribute="trailing" constant="20" id="Qu0-ja-Iwx"/>
134 <constraint firstAttribute="trailing" secondItem="5ZL-zf-geZ" secondAttribute="trailing" constant="20" id="Sdn-yt-XFa"/> 137 <constraint firstAttribute="trailing" secondItem="5ZL-zf-geZ" secondAttribute="trailing" constant="20" id="Sdn-yt-XFa"/>
135 <constraint firstAttribute="trailing" secondItem="KcG-O5-UhK" secondAttribute="trailing" id="T6S-Bu-Yqj"/> 138 <constraint firstAttribute="trailing" secondItem="KcG-O5-UhK" secondAttribute="trailing" id="T6S-Bu-Yqj"/>
136 <constraint firstItem="5ZL-zf-geZ" firstAttribute="top" secondItem="O4Q-H0-WBO" secondAttribute="bottom" constant="30" id="byK-GM-sv0"/> 139 <constraint firstItem="5ZL-zf-geZ" firstAttribute="top" secondItem="O4Q-H0-WBO" secondAttribute="bottom" constant="30" id="byK-GM-sv0"/>
137 <constraint firstItem="KcG-O5-UhK" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="eBl-Gj-eMk"/> 140 <constraint firstItem="KcG-O5-UhK" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="eBl-Gj-eMk"/>
138 <constraint firstItem="zzn-bU-X6s" firstAttribute="top" secondItem="uB3-Sm-i6e" secondAttribute="bottom" constant="60" id="edW-Ji-61a"/> 141 <constraint firstItem="zzn-bU-X6s" firstAttribute="top" secondItem="uB3-Sm-i6e" secondAttribute="bottom" constant="60" id="edW-Ji-61a"/>
139 <constraint firstAttribute="trailing" secondItem="zzn-bU-X6s" secondAttribute="trailing" constant="20" id="ftd-7J-C4c"/> 142 <constraint firstAttribute="trailing" secondItem="zzn-bU-X6s" secondAttribute="trailing" constant="20" id="ftd-7J-C4c"/>
140 <constraint firstItem="5ZL-zf-geZ" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="20" id="jDz-q1-ufR"/> 143 <constraint firstItem="5ZL-zf-geZ" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="20" id="jDz-q1-ufR"/>
141 <constraint firstItem="KcG-O5-UhK" firstAttribute="top" secondItem="zzn-bU-X6s" secondAttribute="bottom" constant="8" id="lFR-We-lIy"/> 144 <constraint firstItem="KcG-O5-UhK" firstAttribute="top" secondItem="zzn-bU-X6s" secondAttribute="bottom" constant="8" id="lFR-We-lIy"/>
142 <constraint firstItem="uB3-Sm-i6e" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="20" id="v4n-Fr-Vhx"/> 145 <constraint firstItem="uB3-Sm-i6e" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="20" id="v4n-Fr-Vhx"/>
143 </constraints> 146 </constraints>
144 <point key="canvasLocation" x="24.5" y="52.5"/> 147 <point key="canvasLocation" x="24.5" y="52.5"/>
145 </view> 148 </view>
146 </objects> 149 </objects>
147 <resources> 150 <resources>
148 <image name="icon_menu" width="30" height="30"/> 151 <image name="icon_menu" width="30" height="30"/>
149 <image name="today_back_button" width="73" height="37"/> 152 <image name="today_back_button" width="73" height="37"/>
150 </resources> 153 </resources>
151 </document> 154 </document>
152 155
LifeLog/LifeLog/SearchGroupTableViewCell.h
File was created 1 //
2 // SearchGroupTableViewCell.h
3 // LifeLog
4 //
5 // Created by nvtu on 8/11/17.
6 // Copyright © 2017 PhongNV. All rights reserved.
7 //
8
9 #import <UIKit/UIKit.h>
10
11 @interface SearchGroupTableViewCell : UITableViewCell
12
13 @property (weak, nonatomic) IBOutlet UIImageView *imgAvatar;
14 @property (weak, nonatomic) IBOutlet UILabel *lblName;
15
16 @end
17
LifeLog/LifeLog/SearchGroupTableViewCell.m
File was created 1 //
2 // SearchGroupTableViewCell.m
3 // LifeLog
4 //
5 // Created by nvtu on 8/11/17.
6 // Copyright © 2017 PhongNV. All rights reserved.
7 //
8
9 #import "SearchGroupTableViewCell.h"
10
11 @implementation SearchGroupTableViewCell
12
13 - (void)awakeFromNib {
14 [super awakeFromNib];
15 // Initialization code
16 }
17
18 - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
19 [super setSelected:selected animated:animated];
20
21 // Configure the view for the selected state
22 }
23
24 @end
25
LifeLog/LifeLog/SearchGroupTableViewCell.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"/>
12 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
13 <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="SearchGroupCell" id="KGk-i7-Jjw" customClass="SearchGroupTableViewCell">
14 <rect key="frame" x="0.0" y="0.0" width="320" height="70"/>
15 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
16 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
17 <rect key="frame" x="0.0" y="0.0" width="320" height="69.5"/>
18 <autoresizingMask key="autoresizingMask"/>
19 <subviews>
20 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="avatar_default" translatesAutoresizingMaskIntoConstraints="NO" id="V29-aB-z6m">
21 <rect key="frame" x="10" y="10" width="50" height="50"/>
22 <constraints>
23 <constraint firstAttribute="width" constant="50" id="NCc-vl-jbV"/>
24 <constraint firstAttribute="height" constant="50" id="nPg-m6-RJC"/>
25 </constraints>
26 </imageView>
27 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="PqD-FA-DIk">
28 <rect key="frame" x="68" y="20" width="212" height="20"/>
29 <constraints>
30 <constraint firstAttribute="height" constant="20" id="fDB-VO-fgq"/>
31 </constraints>
32 <fontDescription key="fontDescription" type="system" pointSize="14"/>
33 <nil key="textColor"/>
34 <nil key="highlightedColor"/>
35 </label>
36 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="SNy-dc-xb8">
37 <rect key="frame" x="0.0" y="68.5" width="320" height="1"/>
38 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
39 <constraints>
40 <constraint firstAttribute="height" constant="1" id="EuB-6b-DDV"/>
41 </constraints>
42 </view>
43 </subviews>
44 <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
45 <constraints>
46 <constraint firstItem="V29-aB-z6m" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="10" id="6NK-Up-vWU"/>
47 <constraint firstAttribute="bottom" secondItem="SNy-dc-xb8" secondAttribute="bottom" id="CKE-YJ-Sv6"/>
48 <constraint firstItem="SNy-dc-xb8" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="Jvh-LM-ymJ"/>
49 <constraint firstItem="PqD-FA-DIk" firstAttribute="leading" secondItem="V29-aB-z6m" secondAttribute="trailing" constant="8" id="O4W-xn-z9e"/>
50 <constraint firstItem="PqD-FA-DIk" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="20" id="biO-wT-ELG"/>
51 <constraint firstItem="V29-aB-z6m" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="poP-mK-1Dh"/>
52 <constraint firstAttribute="trailing" secondItem="SNy-dc-xb8" secondAttribute="trailing" id="tRm-Jq-VNR"/>
53 <constraint firstAttribute="trailing" secondItem="PqD-FA-DIk" secondAttribute="trailing" constant="40" id="wZt-Nt-oWk"/>
54 </constraints>
55 </tableViewCellContentView>
56 <connections>
57 <outlet property="imgAvatar" destination="V29-aB-z6m" id="ye6-9r-VIf"/>
58 <outlet property="lblName" destination="PqD-FA-DIk" id="OLi-eS-E1G"/>
59 </connections>
60 </tableViewCell>
61 </objects>
62 <resources>
63 <image name="avatar_default" width="80" height="80"/>
64 </resources>
65 </document>
66
LifeLog/LifeLog/SearchGroupViewController.h
File was created 1 //
2 // SearchGroupViewController.h
3 // LifeLog
4 //
5 // Created by nvtu on 8/11/17.
6 // Copyright © 2017 PhongNV. All rights reserved.
7 //
8
9 #import <UIKit/UIKit.h>
10 #import "BaseTableViewController.h"
11
12 @interface SearchGroupViewController : BaseTableViewController<UITextFieldDelegate>
13
14 @property (weak, nonatomic) IBOutlet UITextField *textFieldSearch;
15
16 - (IBAction)clickBack:(id)sender;
17 - (IBAction)clickSearch:(id)sender;
18 - (IBAction)clickCreateGroup:(id)sender;
19
20 @end
21
LifeLog/LifeLog/SearchGroupViewController.m
File was created 1 //
2 // SearchGroupViewController.m
3 // LifeLog
4 //
5 // Created by nvtu on 8/11/17.
6 // Copyright © 2017 PhongNV. All rights reserved.
7 //
8
9 #import "SearchGroupViewController.h"
10
11 #import <SDWebImage/UIImageView+WebCache.h>
12
13 #import "ServerAPI.h"
14 #import "Utilities.h"
15
16 #import "SearchGroupTableViewCell.h"
17
18 @interface SearchGroupViewController ()
19
20 @end
21
22 @implementation SearchGroupViewController
23
24 - (void)viewDidLoad {
25 [super viewDidLoad];
26 [self callRequestToUpdateData];
27
28 //register nib for table view
29 [self.tableBase registerNib:[UINib nibWithNibName:@"SearchGroupTableViewCell" bundle:nil] forCellReuseIdentifier:@"SearchGroupCell"];
30 }
31
32 - (void)didReceiveMemoryWarning {
33 [super didReceiveMemoryWarning];
34 // Dispose of any resources that can be recreated.
35 }
36
37 #pragma mark IBAction
38
39 - (IBAction)clickBack:(id)sender {
40 [self.navigationController popViewControllerAnimated:true];
41 }
42
43 - (IBAction)clickSearch:(id)sender {
44 [self resetData];
45 }
46
47 - (IBAction)clickCreateGroup:(id)sender {
48
49 }
50
51 #pragma mark UITableView Delegate
52 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
53 SearchGroupTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"SearchGroupCell"];
54 GroupObject *object = [_curDataList objectAtIndex:indexPath.row];
55 if(object.avatar && ![object.avatar isKindOfClass:[NSNull class]]) {
56 [cell.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatar]]];
57 }
58 cell.lblName.text = object.name;
59 return cell;
60 }
61
62 -(void) scrollViewDidScroll:(UIScrollView *)scrollView {
63 [self.view endEditing:true];
64 }
65
66 #pragma mark UITextField Delegate
67 -(BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
68 [self resetData];
69 return true;
70 }
71
72 #pragma mark Private Function
73 -(void) callRequestToUpdateData {
74 [super callRequestToUpdateData];
75
76 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken];
77 MBProgressHUD *hudView = nil;
78 if(_curPage == 1 && !self.refreshControl.isRefreshing) {
79 hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true];
80 }
81 [[ServerAPI server] searchGroup:token withKey:self.textFieldSearch.text andPage:_curPage CompletionHandler:^(NSArray *array, NSError *error) {
82 dispatch_async(dispatch_get_main_queue(), ^{
83 if(hudView != nil) {
84 [hudView hideAnimated:true];
85 }
86 });
87 SearchGroupViewController __weak *weakSelf = self;
88 [weakSelf updateTableData:array error:error];
89 }];
90 }
91 @end
92
LifeLog/LifeLog/SearchGroupViewController.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="SearchGroupViewController">
12 <connections>
13 <outlet property="tableBase" destination="yF3-ZN-ebL" id="WYE-g2-1iW"/>
14 <outlet property="textFieldSearch" destination="ZV5-M6-gge" id="my5-ga-rV2"/>
15 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
16 </connections>
17 </placeholder>
18 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
19 <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
20 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
21 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
22 <subviews>
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"/>
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">
27 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/>
28 <fontDescription key="fontDescription" type="system" pointSize="17"/>
29 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
30 <nil key="highlightedColor"/>
31 <userDefinedRuntimeAttributes>
32 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.sns.title"/>
33 </userDefinedRuntimeAttributes>
34 </label>
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"/>
37 <constraints>
38 <constraint firstAttribute="width" constant="70" id="Kdt-q3-40K"/>
39 </constraints>
40 <state key="normal" image="today_back_button"/>
41 <connections>
42 <action selector="clickBack:" destination="-1" eventType="touchUpInside" id="Z3f-Fd-CEc"/>
43 </connections>
44 </button>
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"/>
47 <constraints>
48 <constraint firstAttribute="width" constant="45" id="7W6-Cl-TRS"/>
49 </constraints>
50 <state key="normal" image="icon_menu"/>
51 </button>
52 </subviews>
53 <color key="backgroundColor" red="0.098039215690000001" green="0.098039215690000001" blue="0.098039215690000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
54 <constraints>
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"/>
57 <constraint firstAttribute="trailing" secondItem="PkV-G3-Fru" secondAttribute="trailing" id="CiO-zw-1XR"/>
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"/>
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"/>
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"/>
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"/>
66 </constraints>
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">
69 <rect key="frame" x="16" y="86" width="209" height="30"/>
70 <nil key="textColor"/>
71 <fontDescription key="fontDescription" type="system" pointSize="14"/>
72 <textInputTraits key="textInputTraits"/>
73 <connections>
74 <outlet property="delegate" destination="-1" id="Wzs-Wc-gd1"/>
75 </connections>
76 </textField>
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"/>
79 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
80 <constraints>
81 <constraint firstAttribute="height" constant="30" id="plQ-aS-bwK"/>
82 <constraint firstAttribute="width" constant="110" id="w47-Tg-vYC"/>
83 </constraints>
84 <fontDescription key="fontDescription" type="system" pointSize="13"/>
85 <state key="normal" title="検索">
86 <color key="titleColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
87 </state>
88 <userDefinedRuntimeAttributes>
89 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
90 <integer key="value" value="5"/>
91 </userDefinedRuntimeAttribute>
92 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.searchGr.bt.search"/>
93 </userDefinedRuntimeAttributes>
94 <connections>
95 <action selector="clickSearch:" destination="-1" eventType="touchUpInside" id="WPo-6j-0K1"/>
96 </connections>
97 </button>
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"/>
100 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
101 <constraints>
102 <constraint firstAttribute="height" constant="30" id="Cwt-yy-rcp"/>
103 </constraints>
104 <fontDescription key="fontDescription" type="system" pointSize="13"/>
105 <state key="normal" title="グループ作成">
106 <color key="titleColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
107 </state>
108 <userDefinedRuntimeAttributes>
109 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
110 <integer key="value" value="5"/>
111 </userDefinedRuntimeAttribute>
112 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.searchGr.bt.createGr"/>
113 </userDefinedRuntimeAttributes>
114 <connections>
115 <action selector="clickCreateGroup:" destination="-1" eventType="touchUpOutside" id="iYI-HB-mhb"/>
116 </connections>
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">
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"/>
121 <connections>
122 <outlet property="dataSource" destination="-1" id="tKB-Uq-esC"/>
123 <outlet property="delegate" destination="-1" id="88z-Bd-dz0"/>
124 </connections>
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">
127 <rect key="frame" x="16" y="54" width="343" height="21"/>
128 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
129 <fontDescription key="fontDescription" type="system" pointSize="17"/>
130 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
131 <nil key="highlightedColor"/>
132 <userDefinedRuntimeAttributes>
133 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.searchGr.lbl.title"/>
134 </userDefinedRuntimeAttributes>
135 </label>
136 </subviews>
137 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
138 <constraints>
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"/>
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"/>
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"/>
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"/>
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"/>
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"/>
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"/>
153 <constraint firstItem="V72-De-hhR" firstAttribute="top" secondItem="ZV5-M6-gge" secondAttribute="top" id="voZ-Kp-Zm3"/>
154 </constraints>
155 <point key="canvasLocation" x="24.5" y="52.5"/>
156 </view>
157 </objects>
158 <resources>
159 <image name="icon_menu" width="30" height="30"/>
160 <image name="today_back_button" width="73" height="37"/>
161 </resources>
162 </document>
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 - (void) requestRecentlyTweetsList:(NSString *)token withPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion;
32 - (void) searchGroup:(NSString *)token withKey:(NSString *)key andPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion;
32 @end 33 @end
33 34
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;
41
40 @synthesize timeOutInterval = _timeOutInterval; 42 @synthesize timeOutInterval = _timeOutInterval;
41 43
42 + (instancetype)server 44 + (instancetype)server
43 { 45 {
44 @synchronized(self) { 46 @synchronized(self) {
45 if (_server == nil) { 47 if (_server == nil) {
46 _server = [[ServerAPI alloc] init]; 48 _server = [[ServerAPI alloc] init];
47 } 49 }
48 } 50 }
49 return _server; 51 return _server;
50 } 52 }
51 53
52 - (instancetype)init 54 - (instancetype)init
53 { 55 {
54 self = [super init]; 56 self = [super init];
55 if (self != nil) { 57 if (self != nil) {
56 self.timeOutInterval = 150; 58 self.timeOutInterval = 150;
57 } 59 }
58 return self; 60 return self;
59 } 61 }
60 62
61 // Login 63 // Login
62 - (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
63 { 65 {
64 [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) {
65 67
66 if (completion == NULL) { 68 if (completion == NULL) {
67 return ; 69 return ;
68 } 70 }
69 71
70 if (error == nil) 72 if (error == nil)
71 { 73 {
72 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 74 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
73 75
74 int status = [dataResult[@"status"] intValue]; 76 int status = [dataResult[@"status"] intValue];
75 if (status == 1) { // status = 1 success 77 if (status == 1) { // status = 1 success
76 NSString *token = dataResult[@"result"][@"token"]; 78 NSString *token = dataResult[@"result"][@"token"];
77 NSDictionary *dictUser = dataResult[@"result"][@"user"]; 79 NSDictionary *dictUser = dataResult[@"result"][@"user"];
78 User *user = [[User alloc] init]; 80 User *user = [[User alloc] init];
79 user.user_id = [NSString stringWithFormat:@"%@",dictUser[@"id"]]; 81 user.user_id = [NSString stringWithFormat:@"%@",dictUser[@"id"]];
80 user.username = [NSString stringWithFormat:@"%@",dictUser[@"username"]]; 82 user.username = [NSString stringWithFormat:@"%@",dictUser[@"username"]];
81 user.full_name = [NSString stringWithFormat:@"%@",dictUser[@"full_name"]]; 83 user.full_name = [NSString stringWithFormat:@"%@",dictUser[@"full_name"]];
82 user.nickname = [NSString stringWithFormat:@"%@",dictUser[@"nickname"]]; 84 user.nickname = [NSString stringWithFormat:@"%@",dictUser[@"nickname"]];
83 user.email = [NSString stringWithFormat:@"%@",dictUser[@"email"]]; 85 user.email = [NSString stringWithFormat:@"%@",dictUser[@"email"]];
84 user.password = [NSString stringWithFormat:@"%@",dictUser[@"password"]]; 86 user.password = [NSString stringWithFormat:@"%@",dictUser[@"password"]];
85 user.birthday = [NSString stringWithFormat:@"%@",dictUser[@"birthday"]]; 87 user.birthday = [NSString stringWithFormat:@"%@",dictUser[@"birthday"]];
86 user.address = [NSString stringWithFormat:@"%@",dictUser[@"address"]]; 88 user.address = [NSString stringWithFormat:@"%@",dictUser[@"address"]];
87 user.gender = [[NSString stringWithFormat:@"%@",dictUser[@"gender"]] intValue]; 89 user.gender = [[NSString stringWithFormat:@"%@",dictUser[@"gender"]] intValue];
88 user.height = [[NSString stringWithFormat:@"%@",dictUser[@"height"]] floatValue]; 90 user.height = [[NSString stringWithFormat:@"%@",dictUser[@"height"]] floatValue];
89 user.weight = [[NSString stringWithFormat:@"%@",dictUser[@"weight"]] floatValue]; 91 user.weight = [[NSString stringWithFormat:@"%@",dictUser[@"weight"]] floatValue];
90 user.user_description = [NSString stringWithFormat:@"%@",dictUser[@"description"]]; 92 user.user_description = [NSString stringWithFormat:@"%@",dictUser[@"description"]];
91 user.created_at = [NSString stringWithFormat:@"%@",dictUser[@"created_at"]]; 93 user.created_at = [NSString stringWithFormat:@"%@",dictUser[@"created_at"]];
92 user.physical_activity = [NSString stringWithFormat:@"%@",dictUser[@"physical_activity"]]; 94 user.physical_activity = [NSString stringWithFormat:@"%@",dictUser[@"physical_activity"]];
93 user.profile_image = [NSString stringWithFormat:@"%@",dictUser[@"profile_image"]]; 95 user.profile_image = [NSString stringWithFormat:@"%@",dictUser[@"profile_image"]];
94 user.updated_at = [NSString stringWithFormat:@"%@",dictUser[@"updated_at"]]; 96 user.updated_at = [NSString stringWithFormat:@"%@",dictUser[@"updated_at"]];
95 user.delete_flag = [[NSString stringWithFormat:@"%@",dictUser[@"delete_flag"]] intValue]; 97 user.delete_flag = [[NSString stringWithFormat:@"%@",dictUser[@"delete_flag"]] intValue];
96 user.fat_rate = [[NSString stringWithFormat:@"%@",dictUser[@"fat_rate"]] intValue]; 98 user.fat_rate = [[NSString stringWithFormat:@"%@",dictUser[@"fat_rate"]] intValue];
97 user.profiles_share = [[NSString stringWithFormat:@"%@",dictUser[@"profiles_share"]] intValue]; 99 user.profiles_share = [[NSString stringWithFormat:@"%@",dictUser[@"profiles_share"]] intValue];
98 user.remember_me = [[NSString stringWithFormat:@"%@",dictUser[@"remember_me"]] intValue]; 100 user.remember_me = [[NSString stringWithFormat:@"%@",dictUser[@"remember_me"]] intValue];
99 user.sound_notifications_share = [[NSString stringWithFormat:@"%@",dictUser[@"sound_notifications_share"]] intValue]; 101 user.sound_notifications_share = [[NSString stringWithFormat:@"%@",dictUser[@"sound_notifications_share"]] intValue];
100 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];
101 user.target = [[NSString stringWithFormat:@"%@",dictUser[@"target"]] intValue]; 103 user.target = [[NSString stringWithFormat:@"%@",dictUser[@"target"]] intValue];
102 completion(user, token, nil); 104 completion(user, token, nil);
103 } 105 }
104 else { // status = 0 error 106 else { // status = 0 error
105 NSString *message = dataResult[@"message"]; 107 NSString *message = dataResult[@"message"];
106 if (message == nil) { 108 if (message == nil) {
107 message = @"Unknown error"; 109 message = @"Unknown error";
108 } 110 }
109 NSError *loginFaild = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 111 NSError *loginFaild = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
110 completion(nil, nil, loginFaild); 112 completion(nil, nil, loginFaild);
111 } 113 }
112 } 114 }
113 else 115 else
114 { 116 {
115 completion(nil, nil, error); 117 completion(nil, nil, error);
116 } 118 }
117 }]; 119 }];
118 } 120 }
119 121
120 // Register 122 // Register
121 - (void)registerUserWithParams:(NSDictionary *)params CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion { 123 - (void)registerUserWithParams:(NSDictionary *)params CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion {
122 [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) {
123 125
124 if (completion == NULL) { 126 if (completion == NULL) {
125 return ; 127 return ;
126 } 128 }
127 129
128 if (error == nil) 130 if (error == nil)
129 { 131 {
130 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 132 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
131 133
132 int status = [dataResult[@"status"] intValue]; 134 int status = [dataResult[@"status"] intValue];
133 if (status == 1) { // status = 1 success 135 if (status == 1) { // status = 1 success
134 NSString *token = dataResult[@"result"][@"token"]; 136 NSString *token = dataResult[@"result"][@"token"];
135 NSDictionary *dictUser = dataResult[@"result"][@"user"]; 137 NSDictionary *dictUser = dataResult[@"result"][@"user"];
136 User *user = [[User alloc] init]; 138 User *user = [[User alloc] init];
137 user.user_id = [NSString stringWithFormat:@"%@",dictUser[@"id"]]; 139 user.user_id = [NSString stringWithFormat:@"%@",dictUser[@"id"]];
138 user.username = [NSString stringWithFormat:@"%@",dictUser[@"username"]]; 140 user.username = [NSString stringWithFormat:@"%@",dictUser[@"username"]];
139 user.full_name = [NSString stringWithFormat:@"%@",dictUser[@"full_name"]]; 141 user.full_name = [NSString stringWithFormat:@"%@",dictUser[@"full_name"]];
140 user.nickname = [NSString stringWithFormat:@"%@",dictUser[@"nickname"]]; 142 user.nickname = [NSString stringWithFormat:@"%@",dictUser[@"nickname"]];
141 user.email = [NSString stringWithFormat:@"%@",dictUser[@"email"]]; 143 user.email = [NSString stringWithFormat:@"%@",dictUser[@"email"]];
142 user.password = [NSString stringWithFormat:@"%@",dictUser[@"password"]]; 144 user.password = [NSString stringWithFormat:@"%@",dictUser[@"password"]];
143 user.birthday = [NSString stringWithFormat:@"%@",dictUser[@"birthday"]]; 145 user.birthday = [NSString stringWithFormat:@"%@",dictUser[@"birthday"]];
144 user.address = [NSString stringWithFormat:@"%@",dictUser[@"address"]]; 146 user.address = [NSString stringWithFormat:@"%@",dictUser[@"address"]];
145 user.gender = [[NSString stringWithFormat:@"%@",dictUser[@"gender"]] intValue]; 147 user.gender = [[NSString stringWithFormat:@"%@",dictUser[@"gender"]] intValue];
146 user.height = [[NSString stringWithFormat:@"%@",dictUser[@"height"]] floatValue]; 148 user.height = [[NSString stringWithFormat:@"%@",dictUser[@"height"]] floatValue];
147 user.weight = [[NSString stringWithFormat:@"%@",dictUser[@"weight"]] floatValue]; 149 user.weight = [[NSString stringWithFormat:@"%@",dictUser[@"weight"]] floatValue];
148 user.user_description = [NSString stringWithFormat:@"%@",dictUser[@"description"]]; 150 user.user_description = [NSString stringWithFormat:@"%@",dictUser[@"description"]];
149 user.created_at = [NSString stringWithFormat:@"%@",dictUser[@"created_at"]]; 151 user.created_at = [NSString stringWithFormat:@"%@",dictUser[@"created_at"]];
150 user.physical_activity = [NSString stringWithFormat:@"%@",dictUser[@"physical_activity"]]; 152 user.physical_activity = [NSString stringWithFormat:@"%@",dictUser[@"physical_activity"]];
151 user.profile_image = [NSString stringWithFormat:@"%@",dictUser[@"profile_image"]]; 153 user.profile_image = [NSString stringWithFormat:@"%@",dictUser[@"profile_image"]];
152 user.updated_at = [NSString stringWithFormat:@"%@",dictUser[@"updated_at"]]; 154 user.updated_at = [NSString stringWithFormat:@"%@",dictUser[@"updated_at"]];
153 user.delete_flag = [[NSString stringWithFormat:@"%@",dictUser[@"delete_flag"]] intValue]; 155 user.delete_flag = [[NSString stringWithFormat:@"%@",dictUser[@"delete_flag"]] intValue];
154 user.fat_rate = [[NSString stringWithFormat:@"%@",dictUser[@"fat_rate"]] intValue]; 156 user.fat_rate = [[NSString stringWithFormat:@"%@",dictUser[@"fat_rate"]] intValue];
155 user.profiles_share = [[NSString stringWithFormat:@"%@",dictUser[@"profiles_share"]] intValue]; 157 user.profiles_share = [[NSString stringWithFormat:@"%@",dictUser[@"profiles_share"]] intValue];
156 user.remember_me = [[NSString stringWithFormat:@"%@",dictUser[@"remember_me"]] intValue]; 158 user.remember_me = [[NSString stringWithFormat:@"%@",dictUser[@"remember_me"]] intValue];
157 user.sound_notifications_share = [[NSString stringWithFormat:@"%@",dictUser[@"sound_notifications_share"]] intValue]; 159 user.sound_notifications_share = [[NSString stringWithFormat:@"%@",dictUser[@"sound_notifications_share"]] intValue];
158 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];
159 user.target = [[NSString stringWithFormat:@"%@",dictUser[@"target"]] intValue]; 161 user.target = [[NSString stringWithFormat:@"%@",dictUser[@"target"]] intValue];
160 completion(user, token, nil); 162 completion(user, token, nil);
161 } 163 }
162 else { // status = 0 error 164 else { // status = 0 error
163 NSString *message = dataResult[@"message"]; 165 NSString *message = dataResult[@"message"];
164 if (message == nil) { 166 if (message == nil) {
165 message = @"Unknown error"; 167 message = @"Unknown error";
166 } 168 }
167 NSError *loginFaild = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 169 NSError *loginFaild = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
168 completion(nil, nil, loginFaild); 170 completion(nil, nil, loginFaild);
169 } 171 }
170 } 172 }
171 else 173 else
172 { 174 {
173 completion(nil, nil, error); 175 completion(nil, nil, error);
174 } 176 }
175 }]; 177 }];
176 } 178 }
177 179
178 - (void)forgetPass:(NSString *)email CompletionHandler:(void (^)(NSError *)) completion { 180 - (void)forgetPass:(NSString *)email CompletionHandler:(void (^)(NSError *)) completion {
179 [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) {
180 182
181 if (completion == NULL) { 183 if (completion == NULL) {
182 return ; 184 return ;
183 } 185 }
184 186
185 if (error == nil) 187 if (error == nil)
186 { 188 {
187 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 189 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
188 190
189 int status = [dataResult[@"status"] intValue]; 191 int status = [dataResult[@"status"] intValue];
190 if (status == 1) { // status = 1 success 192 if (status == 1) { // status = 1 success
191 completion(nil); 193 completion(nil);
192 } 194 }
193 else { // status = 0 error 195 else { // status = 0 error
194 NSString *message = dataResult[@"message"]; 196 NSString *message = dataResult[@"message"];
195 if (message == nil) { 197 if (message == nil) {
196 message = @"Unknown error"; 198 message = @"Unknown error";
197 } 199 }
198 NSError *forgetPass = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 200 NSError *forgetPass = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
199 completion(forgetPass); 201 completion(forgetPass);
200 } 202 }
201 } 203 }
202 else 204 else
203 { 205 {
204 completion(error); 206 completion(error);
205 } 207 }
206 }]; 208 }];
207 } 209 }
208 - (void)confirmForgetPass:(NSString *)email withConfirm:(NSString *)confirm CompletionHandler:(void (^)(NSError *)) completion { 210 - (void)confirmForgetPass:(NSString *)email withConfirm:(NSString *)confirm CompletionHandler:(void (^)(NSError *)) completion {
209 [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) {
210 212
211 if (completion == NULL) { 213 if (completion == NULL) {
212 return ; 214 return ;
213 } 215 }
214 216
215 if (error == nil) 217 if (error == nil)
216 { 218 {
217 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 219 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
218 220
219 int status = [dataResult[@"status"] intValue]; 221 int status = [dataResult[@"status"] intValue];
220 if (status == 1) { // status = 1 success 222 if (status == 1) { // status = 1 success
221 completion(nil); 223 completion(nil);
222 } 224 }
223 else { // status = 0 error 225 else { // status = 0 error
224 NSString *message = dataResult[@"message"]; 226 NSString *message = dataResult[@"message"];
225 NSError *confirmForgetPass = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 227 NSError *confirmForgetPass = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
226 completion(confirmForgetPass); 228 completion(confirmForgetPass);
227 } 229 }
228 } 230 }
229 else 231 else
230 { 232 {
231 completion(error); 233 completion(error);
232 } 234 }
233 }]; 235 }];
234 } 236 }
235 237
236 - (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 {
237 NSDictionary *dict = nil; 239 NSDictionary *dict = nil;
238 NSString *base64Encoded = [data base64EncodedStringWithOptions:0]; 240 NSString *base64Encoded = [data base64EncodedStringWithOptions:0];
239 if (token != nil) { 241 if (token != nil) {
240 dict = @{@"token":token, @"img": base64Encoded}; 242 dict = @{@"token":token, @"img": base64Encoded};
241 } 243 }
242 else { 244 else {
243 dict = @{@"img": base64Encoded}; 245 dict = @{@"img": base64Encoded};
244 } 246 }
245 [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) {
246 248
247 if (completion == NULL) { 249 if (completion == NULL) {
248 return ; 250 return ;
249 } 251 }
250 252
251 if (error == nil) 253 if (error == nil)
252 { 254 {
253 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 255 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
254 NSString *image_profile = [NSString stringWithFormat:@"%@", dataResult[@"message"]]; 256 NSString *image_profile = [NSString stringWithFormat:@"%@", dataResult[@"message"]];
255 completion(image_profile, nil); 257 completion(image_profile, nil);
256 } 258 }
257 else 259 else
258 { 260 {
259 completion(nil, error); 261 completion(nil, error);
260 } 262 }
261 }]; 263 }];
262 } 264 }
263 265
264 -(NSString *) convertIntToString : (int) type { 266 -(NSString *) convertIntToString : (int) type {
265 switch (type) { 267 switch (type) {
266 case 1: 268 case 1:
267 return @"week"; 269 return @"week";
268 break; 270 break;
269 case 2: 271 case 2:
270 return @"oneMonth"; 272 return @"oneMonth";
271 break; 273 break;
272 case 3: 274 case 3:
273 return @"threeMonth"; 275 return @"threeMonth";
274 break; 276 break;
275 case 4: 277 case 4:
276 return @"sixMonth"; 278 return @"sixMonth";
277 break; 279 break;
278 default: 280 default:
279 return @"today"; 281 return @"today";
280 break; 282 break;
281 } 283 }
282 } 284 }
283 285
284 #pragma mark - History Screen Function 286 #pragma mark - History Screen Function
285 - (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 {
286 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/history/%@/%d", [self convertIntToString:type], mode]; 288 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/history/%@/%d", [self convertIntToString:type], mode];
287 NSLog(@"requestHistory link %@", url); 289 NSLog(@"requestHistory link %@", url);
288 [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) {
289 291
290 if (completion == NULL) { 292 if (completion == NULL) {
291 return ; 293 return ;
292 } 294 }
293 295
294 if (error == nil) 296 if (error == nil)
295 { 297 {
296 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 298 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
297 NSLog(@"%@", dataResult); 299 NSLog(@"%@", dataResult);
298 int status = [dataResult[@"status"] intValue]; 300 int status = [dataResult[@"status"] intValue];
299 if (status == 1) { // status = 1 success 301 if (status == 1) { // status = 1 success
300 HistoryObject * object = [[HistoryObject alloc] initWithData:dataResult[@"result"]]; 302 HistoryObject * object = [[HistoryObject alloc] initWithData:dataResult[@"result"]];
301 completion(object, nil); 303 completion(object, nil);
302 } 304 }
303 else { 305 else {
304 NSString *message = dataResult[@"message"]; 306 NSString *message = dataResult[@"message"];
305 if (message == nil) { 307 if (message == nil) {
306 message = @"Unknown error"; 308 message = @"Unknown error";
307 } 309 }
308 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 310 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
309 completion(nil, errorObject); 311 completion(nil, errorObject);
310 } 312 }
311 } 313 }
312 else 314 else
313 { 315 {
314 completion(nil, error); 316 completion(nil, error);
315 } 317 }
316 }]; 318 }];
317 } 319 }
318 320
319 - (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 {
320 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];
321 NSLog(@"requestHistoryGraph link %@", url); 323 NSLog(@"requestHistoryGraph link %@", url);
322 [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) {
323 325
324 if (completion == NULL) { 326 if (completion == NULL) {
325 return ; 327 return ;
326 } 328 }
327 329
328 if (error == nil) 330 if (error == nil)
329 { 331 {
330 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 332 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
331 NSLog(@"%@", dataResult); 333 NSLog(@"%@", dataResult);
332 int status = [dataResult[@"status"] intValue]; 334 int status = [dataResult[@"status"] intValue];
333 if (status == 1) { // status = 1 success 335 if (status == 1) { // status = 1 success
334 HistoryGraphObject * object = [[HistoryGraphObject alloc] initWithData:dataResult[@"result"]]; 336 HistoryGraphObject * object = [[HistoryGraphObject alloc] initWithData:dataResult[@"result"]];
335 completion(object, nil); 337 completion(object, nil);
336 } 338 }
337 else { 339 else {
338 NSString *message = dataResult[@"message"]; 340 NSString *message = dataResult[@"message"];
339 if (message == nil) { 341 if (message == nil) {
340 message = @"Unknown error"; 342 message = @"Unknown error";
341 } 343 }
342 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 344 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
343 completion(nil, errorObject); 345 completion(nil, errorObject);
344 } 346 }
345 } 347 }
346 else 348 else
347 { 349 {
348 completion(nil, error); 350 completion(nil, error);
349 } 351 }
350 }]; 352 }];
351 } 353 }
352 354
353 - (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 {
354 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];
355 NSLog(@"requestHistoryList link %@", url); 357 NSLog(@"requestHistoryList link %@", url);
356 [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) {
357 359
358 if (completion == NULL) { 360 if (completion == NULL) {
359 return ; 361 return ;
360 } 362 }
361 363
362 if (error == nil) 364 if (error == nil)
363 { 365 {
364 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 366 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
365 NSLog(@"%@", dataResult); 367 NSLog(@"%@", dataResult);
366 int status = [dataResult[@"status"] intValue]; 368 int status = [dataResult[@"status"] intValue];
367 if (status == 1) { // status = 1 success 369 if (status == 1) { // status = 1 success
368 if(dataResult[@"result"] != nil) { 370 if(dataResult[@"result"] != nil) {
369 NSArray * array = dataResult[@"result"][@"data"]; 371 NSArray * array = dataResult[@"result"][@"data"];
370 NSMutableArray * arrayHistory = [[NSMutableArray alloc] init]; 372 NSMutableArray * arrayHistory = [[NSMutableArray alloc] init];
371 for(NSDictionary * dict in array) { 373 for(NSDictionary * dict in array) {
372 HistoryObject * object = [[HistoryObject alloc] initWithData:dict]; 374 HistoryObject * object = [[HistoryObject alloc] initWithData:dict];
373 [arrayHistory addObject:object]; 375 [arrayHistory addObject:object];
374 } 376 }
375 completion(arrayHistory, nil); 377 completion(arrayHistory, nil);
376 } 378 }
377 else { 379 else {
378 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"}];
379 completion(nil, errorObject); 381 completion(nil, errorObject);
380 } 382 }
381 } 383 }
382 else { 384 else {
383 NSString *message = dataResult[@"message"]; 385 NSString *message = dataResult[@"message"];
384 if (message == nil) { 386 if (message == nil) {
385 message = @"Unknown error"; 387 message = @"Unknown error";
386 } 388 }
387 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 389 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
388 completion(nil, errorObject); 390 completion(nil, errorObject);
389 } 391 }
390 } 392 }
391 else 393 else
392 { 394 {
393 completion(nil, error); 395 completion(nil, error);
394 } 396 }
395 }]; 397 }];
396 } 398 }
397 399
398 #pragma mark - SNS Screen Function 400 #pragma mark - SNS Screen Function
399 - (void) requestRecentlyTweetsList:(NSString *)token withPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion { 401 - (void) requestRecentlyTweetsList:(NSString *)token withPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion {
400 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/sns/%d", page]; 402 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/sns/%d", page];
401 NSLog(@"requestRecentlyTweetsList link %@", url); 403 NSLog(@"requestRecentlyTweetsList link %@", url);
402 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) { 404 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) {
403 405
404 if (completion == NULL) { 406 if (completion == NULL) {
405 return ; 407 return ;
406 } 408 }
407 409
408 if (error == nil) 410 if (error == nil)
409 { 411 {
410 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 412 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
411 NSLog(@"%@", dataResult); 413 NSLog(@"%@", dataResult);
412 int status = [dataResult[@"status"] intValue]; 414 int status = [dataResult[@"status"] intValue];
413 if (status == 1) { // status = 1 success 415 if (status == 1) { // status = 1 success
414 if(dataResult[@"result"] != nil) { 416 if(dataResult[@"result"] != nil) {
415 NSArray * array = dataResult[@"result"]; 417 NSArray * array = dataResult[@"result"];
416 NSMutableArray * arrayTweets = [[NSMutableArray alloc] init]; 418 NSMutableArray * arrayTweets = [[NSMutableArray alloc] init];
417 for(NSDictionary * dict in array) { 419 for(NSDictionary * dict in array) {
418 TweetObject * object = [[TweetObject alloc] initWithData:dict]; 420 TweetObject * object = [[TweetObject alloc] initWithData:dict];
419 [arrayTweets addObject:object]; 421 [arrayTweets addObject:object];
420 } 422 }
421 completion(arrayTweets, nil); 423 completion(arrayTweets, nil);
422 } 424 }
423 else { 425 else {
424 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}]; 426 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}];
425 completion(nil, errorObject); 427 completion(nil, errorObject);
426 } 428 }
427 } 429 }
428 else { 430 else {
429 NSString *message = dataResult[@"message"]; 431 NSString *message = dataResult[@"message"];
430 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 432 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
431 completion(nil, errorObject); 433 completion(nil, errorObject);
432 } 434 }
433 } 435 }
434 else 436 else
435 { 437 {
436 completion(nil, error); 438 completion(nil, error);
437 } 439 }
438 }]; 440 }];
439 } 441 }
440 442
443 - (void) searchGroup:(NSString *)token withKey:(NSString *)key andPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion {
444 NSString *url = [kServerAddress stringByAppendingFormat:@"api/sns/group/search"];
445 NSLog(@"searchGroup link %@ page %d", url, page);
446 if(searchTask != nil) {
447 [searchTask cancel];
448 }
449
450 searchTask = [self _request:url method:@"POST" token:token paras:@{@"keyword":key, @"page": [NSNumber numberWithInt:page]} completion:^(NSData *data, NSError *error) {
451 searchTask = nil;
452 if (completion == NULL) {
453 return ;
454 }
455
456 if (error == nil)
457 {
458 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
459 NSLog(@"%@", dataResult);
460 int status = [dataResult[@"status"] intValue];
461 if (status == 1) { // status = 1 success
462 if(dataResult[@"result"] != nil) {
463 NSArray * array = dataResult[@"result"];
464 NSMutableArray * arrayTweets = [[NSMutableArray alloc] init];
465 for(NSDictionary * dict in array) {
466 GroupObject * object = [[GroupObject alloc] initWithData:dict];
467 [arrayTweets addObject:object];
468 }
469 completion(arrayTweets, nil);
470 }
471 else {
472 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}];
473 completion(nil, errorObject);
474 }
475 }
476 else {
477 NSString *message = dataResult[@"message"];
478 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
479 completion(nil, errorObject);
480 }
481 }
482 else
483 {
484 completion(nil, error);
485 }
486 }];
487 }
488
441 #pragma mark - Private Function 489 #pragma mark - Private Function
442 - (NSData *) _encodeDictionary: (NSDictionary *) dictionary 490 - (NSData *) _encodeDictionary: (NSDictionary *) dictionary
443 { 491 {
444 NSMutableArray *parts = [[NSMutableArray alloc] init]; 492 NSMutableArray *parts = [[NSMutableArray alloc] init];
445 for (id key in dictionary) 493 for (id key in dictionary)
446 { 494 {
447 NSString *encodedValue = [[dictionary[key] description] urlencode]; 495 NSString *encodedValue = [[dictionary[key] description] urlencode];
448 NSString *encodedKey = [[key description] urlencode];//[[key description] stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]; 496 NSString *encodedKey = [[key description] urlencode];//[[key description] stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
449 NSString *part = [NSString stringWithFormat: @"%@=%@", encodedKey, encodedValue]; 497 NSString *part = [NSString stringWithFormat: @"%@=%@", encodedKey, encodedValue];
450 [parts addObject:part]; 498 [parts addObject:part];
451 } 499 }
452 NSString *encodedDictionary = [parts componentsJoinedByString:@"&"]; 500 NSString *encodedDictionary = [parts componentsJoinedByString:@"&"];
453 return [encodedDictionary dataUsingEncoding: NSUTF8StringEncoding]; 501 return [encodedDictionary dataUsingEncoding: NSUTF8StringEncoding];
454 } 502 }
455 503
456 - (void) _request:(NSString *)address method:(NSString *)method token:(NSString *) token paras:(NSDictionary *)paras completion:(void (^)(NSData *data, NSError *error))completion 504 - (NSURLSessionDataTask *) _request:(NSString *)address method:(NSString *)method token:(NSString *) token paras:(NSDictionary *)paras completion:(void (^)(NSData *data, NSError *error))completion
457 { 505 {
458 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: [NSURL URLWithString:address]]; 506 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: [NSURL URLWithString:address]];
459 request.HTTPMethod = method; 507 request.HTTPMethod = method;
460 [request setValue: @"application/json" forHTTPHeaderField: @"Accept"]; 508 [request setValue: @"application/json" forHTTPHeaderField: @"Accept"];
461 [request setValue: @"application/json" forHTTPHeaderField: @"Content-Type"]; 509 [request setValue: @"application/json" forHTTPHeaderField: @"Content-Type"];
462 if(token != nil && ![token isEqual: @""]) { 510 if(token != nil && ![token isEqual: @""]) {
463 [request setValue: token forHTTPHeaderField: @"token"]; 511 [request setValue: token forHTTPHeaderField: @"token"];
464 } 512 }
465 [request setTimeoutInterval:self.timeOutInterval]; 513 [request setTimeoutInterval:self.timeOutInterval];
466 514
467 if (paras != nil) 515 if (paras != nil)
468 { 516 {
469 NSData *encodedData = [self _encodeDictionary: paras]; 517 NSData *encodedData = [self _encodeDictionary: paras];
470 [request setValue: [NSString stringWithFormat: @"%lu", (unsigned long) encodedData.length] forHTTPHeaderField: @"Content-Length"]; 518 [request setValue: [NSString stringWithFormat: @"%lu", (unsigned long) encodedData.length] forHTTPHeaderField: @"Content-Length"];
471 [request setValue: @"application/x-www-form-urlencoded charset=utf-8" forHTTPHeaderField: @"Content-Type"]; 519 [request setValue: @"application/x-www-form-urlencoded charset=utf-8" forHTTPHeaderField: @"Content-Type"];
472 [request setHTTPBody: encodedData]; 520 [request setHTTPBody: encodedData];
473 } 521 }
474 522
475 NSURLSession *session = [NSURLSession sharedSession]; 523 NSURLSession *session = [NSURLSession sharedSession];
476 NSURLSessionDataTask *task = [session dataTaskWithRequest:request 524 NSURLSessionDataTask *task = [session dataTaskWithRequest:request
477 completionHandler: 525 completionHandler:
478 ^(NSData *data, NSURLResponse *response, NSError *error) { 526 ^(NSData *data, NSURLResponse *response, NSError *error) {
479 if (completion == NULL) { 527 if (completion == NULL) {
480 return ; 528 return ;
481 } 529 }
482 if (error == nil) 530 if (error == nil)
483 { 531 {
484 completion(data, nil); 532 completion(data, nil);
485 } 533 }
486 else 534 else
487 { 535 {
488 completion(nil, error); 536 completion(nil, error);
489 } 537 }
490 }]; 538 }];
491
492 [task resume]; 539 [task resume];
540 return task;
493 } 541 }
494 542
495 @end 543 @end
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:@"username"] != nil) { 47 if([dict objectForKey:@"username"] != nil) {
48 self.userName = dict[@"username"]; 48 self.userName = dict[@"username"];
49 } 49 }
50 if([dict objectForKey:@"profile_image"] != nil) { 50 if([dict objectForKey:@"profile_image"] != nil) {
51 self.avatarLink = dict[@"profile_image"]; 51 self.avatarLink = dict[@"profile_image"];
52 } 52 }
53 if([dict objectForKey:@"created_at"] != nil) { 53 if([dict objectForKey:@"created_at"] != nil) {
54 self.createDate = dict[@"created_at"];
55 }
56 if([dict objectForKey:@"created_at"] != nil) {
57 NSString *dateString = dict[@"created_at"]; 54 NSString *dateString = dict[@"created_at"];
58 self.createDate = [Utilities dateFromString:dateString withFormat:@"yyyy-MM-dd hh:mm:ss"]; 55 self.createDate = [Utilities dateFromString:dateString withFormat:@"yyyy-MM-dd hh:mm:ss"];
59 } 56 }
60 else { 57 else {
61 self.createDate = [NSDate date]; 58 self.createDate = [NSDate date];
62 } 59 }
63 return self; 60 return self;
64 } 61 }
65 62
66 @end 63 @end
67 64