Commit 2bab9a9ab1748f24cb669774aae02a0ff5a629e1

Authored by phong
1 parent 3b284106de

update api and token

Showing 12 changed files with 252 additions and 2 deletions Inline Diff

LifeLog/LifeLog.xcodeproj/project.pbxproj
1 // !$*UTF8*$! 1 // !$*UTF8*$!
2 { 2 {
3 archiveVersion = 1; 3 archiveVersion = 1;
4 classes = { 4 classes = {
5 }; 5 };
6 objectVersion = 46; 6 objectVersion = 46;
7 objects = { 7 objects = {
8 8
9 /* Begin PBXBuildFile section */ 9 /* Begin PBXBuildFile section */
10 011799F0F2B47D80472673CE /* Pods_LifeLog.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */; }; 10 011799F0F2B47D80472673CE /* Pods_LifeLog.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */; };
11 6E18CED31F2E39DB0029891F /* LoginViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E18CED11F2E39DB0029891F /* LoginViewController.m */; }; 11 6E18CED31F2E39DB0029891F /* LoginViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E18CED11F2E39DB0029891F /* LoginViewController.m */; };
12 6E18CED41F2E39DB0029891F /* LoginViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E18CED21F2E39DB0029891F /* LoginViewController.xib */; }; 12 6E18CED41F2E39DB0029891F /* LoginViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E18CED21F2E39DB0029891F /* LoginViewController.xib */; };
13 6E18CED81F2E3C840029891F /* ServerAPI.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E18CED71F2E3C840029891F /* ServerAPI.m */; }; 13 6E18CED81F2E3C840029891F /* ServerAPI.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E18CED71F2E3C840029891F /* ServerAPI.m */; };
14 6E18CEDC1F2E40F50029891F /* User.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E18CEDB1F2E40F50029891F /* User.m */; }; 14 6E18CEDC1F2E40F50029891F /* User.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E18CEDB1F2E40F50029891F /* User.m */; };
15 6E48AF0D1F2F9D3300C1D184 /* CustomTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */; }; 15 6E48AF0D1F2F9D3300C1D184 /* CustomTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */; };
16 6E7F93421F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */; }; 16 6E7F93421F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */; };
17 6E7F93431F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */; }; 17 6E7F93431F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */; };
18 6E7F93441F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */; }; 18 6E7F93441F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */; };
19 6E7F93451F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */; }; 19 6E7F93451F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */; };
20 6E84E3761F27A701001EB88E /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3751F27A701001EB88E /* main.m */; }; 20 6E84E3761F27A701001EB88E /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3751F27A701001EB88E /* main.m */; };
21 6E84E3791F27A701001EB88E /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3781F27A701001EB88E /* AppDelegate.m */; }; 21 6E84E3791F27A701001EB88E /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3781F27A701001EB88E /* AppDelegate.m */; };
22 6E84E3811F27A701001EB88E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3801F27A701001EB88E /* Assets.xcassets */; }; 22 6E84E3811F27A701001EB88E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3801F27A701001EB88E /* Assets.xcassets */; };
23 6E84E3841F27A701001EB88E /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */; }; 23 6E84E3841F27A701001EB88E /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */; };
24 6E84E38F1F27A703001EB88E /* LifeLogTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E38E1F27A703001EB88E /* LifeLogTests.m */; }; 24 6E84E38F1F27A703001EB88E /* LifeLogTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E38E1F27A703001EB88E /* LifeLogTests.m */; };
25 6E84E39A1F27A703001EB88E /* LifeLogUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3991F27A703001EB88E /* LifeLogUITests.m */; }; 25 6E84E39A1F27A703001EB88E /* LifeLogUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3991F27A703001EB88E /* LifeLogUITests.m */; };
26 6E84E3B01F27A975001EB88E /* HomeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3AE1F27A975001EB88E /* HomeViewController.m */; }; 26 6E84E3B01F27A975001EB88E /* HomeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3AE1F27A975001EB88E /* HomeViewController.m */; };
27 6E84E3B11F27A975001EB88E /* HomeViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */; }; 27 6E84E3B11F27A975001EB88E /* HomeViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */; };
28 6E84E3B51F27A98B001EB88E /* HistoryViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */; }; 28 6E84E3B51F27A98B001EB88E /* HistoryViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */; };
29 6E84E3B61F27A98B001EB88E /* HistoryViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */; }; 29 6E84E3B61F27A98B001EB88E /* HistoryViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */; };
30 6E84E3BA1F27A9A0001EB88E /* RankingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */; }; 30 6E84E3BA1F27A9A0001EB88E /* RankingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */; };
31 6E84E3BB1F27A9A0001EB88E /* RankingViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */; }; 31 6E84E3BB1F27A9A0001EB88E /* RankingViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */; };
32 6E84E3BF1F27A9B1001EB88E /* SNSViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */; }; 32 6E84E3BF1F27A9B1001EB88E /* SNSViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */; };
33 6E84E3C01F27A9B1001EB88E /* SNSViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */; }; 33 6E84E3C01F27A9B1001EB88E /* SNSViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */; };
34 6E84E3C51F27ACAE001EB88E /* MapViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3C31F27ACAE001EB88E /* MapViewController.m */; }; 34 6E84E3C51F27ACAE001EB88E /* MapViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3C31F27ACAE001EB88E /* MapViewController.m */; };
35 6E84E3C61F27ACAE001EB88E /* MapViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */; }; 35 6E84E3C61F27ACAE001EB88E /* MapViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */; };
36 6E8DA0F71F2BAC3400CCE941 /* TodayViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */; }; 36 6E8DA0F71F2BAC3400CCE941 /* TodayViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */; };
37 6E8DA0F81F2BAC3500CCE941 /* TodayViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */; }; 37 6E8DA0F81F2BAC3500CCE941 /* TodayViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */; };
38 6EA4AF311F40BB7A00F52CFE /* StepObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EA4AF2C1F40BB7A00F52CFE /* StepObject.m */; };
39 6EA4AF321F40BB7A00F52CFE /* TargetInfor.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EA4AF2E1F40BB7A00F52CFE /* TargetInfor.m */; };
40 6EA4AF331F40BB7A00F52CFE /* TopObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EA4AF301F40BB7A00F52CFE /* TopObject.m */; };
38 6ECC40711F2A5FEB00AAEB97 /* NSDate+helper.m in Sources */ = {isa = PBXBuildFile; fileRef = 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */; }; 41 6ECC40711F2A5FEB00AAEB97 /* NSDate+helper.m in Sources */ = {isa = PBXBuildFile; fileRef = 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */; };
39 6EDC8BEE1F2C2FB800765ACC /* Utilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EDC8BED1F2C2FB800765ACC /* Utilities.m */; }; 42 6EDC8BEE1F2C2FB800765ACC /* Utilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EDC8BED1F2C2FB800765ACC /* Utilities.m */; };
40 6EDC8BF41F2C68D700765ACC /* CMMotionActivityExtra.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */; }; 43 6EDC8BF41F2C68D700765ACC /* CMMotionActivityExtra.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */; };
41 6EF1630A1F29069300DA306C /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6EF163091F29069300DA306C /* Localizable.strings */; }; 44 6EF1630A1F29069300DA306C /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6EF163091F29069300DA306C /* Localizable.strings */; };
42 9CA8AEEA1F31BB4600C5FC74 /* ConfirmForgetPassViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */; }; 45 9CA8AEEA1F31BB4600C5FC74 /* ConfirmForgetPassViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */; };
43 9CA8AEEB1F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */; }; 46 9CA8AEEB1F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */; };
44 9CBDA0FA1F2ECE2C0055DED1 /* BaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */; }; 47 9CBDA0FA1F2ECE2C0055DED1 /* BaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */; };
45 9CBDA0FF1F2F03810055DED1 /* RegisterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */; }; 48 9CBDA0FF1F2F03810055DED1 /* RegisterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */; };
46 9CBDA1001F2F03810055DED1 /* RegisterViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */; }; 49 9CBDA1001F2F03810055DED1 /* RegisterViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */; };
47 E933E66B1F3E04A6002926F5 /* SearchGroupViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E6691F3E04A6002926F5 /* SearchGroupViewController.m */; }; 50 E933E66B1F3E04A6002926F5 /* SearchGroupViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E6691F3E04A6002926F5 /* SearchGroupViewController.m */; };
48 E933E66C1F3E04A6002926F5 /* SearchGroupViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = E933E66A1F3E04A6002926F5 /* SearchGroupViewController.xib */; }; 51 E933E66C1F3E04A6002926F5 /* SearchGroupViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = E933E66A1F3E04A6002926F5 /* SearchGroupViewController.xib */; };
49 E933E6701F3E09B6002926F5 /* SearchGroupTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E66E1F3E09B6002926F5 /* SearchGroupTableViewCell.m */; }; 52 E933E6701F3E09B6002926F5 /* SearchGroupTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E66E1F3E09B6002926F5 /* SearchGroupTableViewCell.m */; };
50 E933E6711F3E09B6002926F5 /* SearchGroupTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E933E66F1F3E09B6002926F5 /* SearchGroupTableViewCell.xib */; }; 53 E933E6711F3E09B6002926F5 /* SearchGroupTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E933E66F1F3E09B6002926F5 /* SearchGroupTableViewCell.xib */; };
51 E933E6741F3E0E4E002926F5 /* GroupObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E6731F3E0E4E002926F5 /* GroupObject.m */; }; 54 E933E6741F3E0E4E002926F5 /* GroupObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E6731F3E0E4E002926F5 /* GroupObject.m */; };
52 E933E6791F40513C002926F5 /* GroupDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E6771F40513C002926F5 /* GroupDetailViewController.m */; }; 55 E933E6791F40513C002926F5 /* GroupDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E6771F40513C002926F5 /* GroupDetailViewController.m */; };
53 E933E67A1F40513C002926F5 /* GroupDetailViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = E933E6781F40513C002926F5 /* GroupDetailViewController.xib */; }; 56 E933E67A1F40513C002926F5 /* GroupDetailViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = E933E6781F40513C002926F5 /* GroupDetailViewController.xib */; };
54 E9373E471F3596940059355A /* AutoTransLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E461F3596940059355A /* AutoTransLabel.m */; }; 57 E9373E471F3596940059355A /* AutoTransLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E461F3596940059355A /* AutoTransLabel.m */; };
55 E9373E4A1F35AA180059355A /* HistoryObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E491F35AA180059355A /* HistoryObject.m */; }; 58 E9373E4A1F35AA180059355A /* HistoryObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E491F35AA180059355A /* HistoryObject.m */; };
56 E9373E4D1F361A230059355A /* HistoryGraphObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E4C1F361A230059355A /* HistoryGraphObject.m */; }; 59 E9373E4D1F361A230059355A /* HistoryGraphObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E4C1F361A230059355A /* HistoryGraphObject.m */; };
57 E9682E2E1F39675A00FE05A2 /* RankingTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */; }; 60 E9682E2E1F39675A00FE05A2 /* RankingTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */; };
58 E9682E2F1F39675A00FE05A2 /* RankingTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */; }; 61 E9682E2F1F39675A00FE05A2 /* RankingTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */; };
59 E968550A1F3C444900317CEF /* AutoTransButton.m in Sources */ = {isa = PBXBuildFile; fileRef = E96855091F3C444900317CEF /* AutoTransButton.m */; }; 62 E968550A1F3C444900317CEF /* AutoTransButton.m in Sources */ = {isa = PBXBuildFile; fileRef = E96855091F3C444900317CEF /* AutoTransButton.m */; };
60 E96855111F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */; }; 63 E96855111F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */; };
61 E96855121F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */; }; 64 E96855121F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */; };
62 E997E0261F3AB66500709FB1 /* Social.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E997E0251F3AB66500709FB1 /* Social.framework */; }; 65 E997E0261F3AB66500709FB1 /* Social.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E997E0251F3AB66500709FB1 /* Social.framework */; };
63 E99E13AB1F336F3600C78787 /* CollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = E99E13AA1F336F3600C78787 /* CollectionView.m */; }; 66 E99E13AB1F336F3600C78787 /* CollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = E99E13AA1F336F3600C78787 /* CollectionView.m */; };
64 E99E13AD1F336F4500C78787 /* CollectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = E99E13AC1F336F4500C78787 /* CollectionView.xib */; }; 67 E99E13AD1F336F4500C78787 /* CollectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = E99E13AC1F336F4500C78787 /* CollectionView.xib */; };
65 E99E13B11F33720600C78787 /* LabelCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */; }; 68 E99E13B11F33720600C78787 /* LabelCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */; };
66 E99E13B21F33720600C78787 /* LabelCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */; }; 69 E99E13B21F33720600C78787 /* LabelCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */; };
67 E9D909211F3D559D004CF99F /* TweetObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9D909201F3D559D004CF99F /* TweetObject.m */; }; 70 E9D909211F3D559D004CF99F /* TweetObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9D909201F3D559D004CF99F /* TweetObject.m */; };
68 E9D909241F3D6E8C004CF99F /* BaseTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E9D909231F3D6E8C004CF99F /* BaseTableViewController.m */; }; 71 E9D909241F3D6E8C004CF99F /* BaseTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E9D909231F3D6E8C004CF99F /* BaseTableViewController.m */; };
69 E9F73DCC1F338A0F004A3A6F /* HistoryListTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */; }; 72 E9F73DCC1F338A0F004A3A6F /* HistoryListTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */; };
70 E9F73DCD1F338A0F004A3A6F /* HistoryListTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */; }; 73 E9F73DCD1F338A0F004A3A6F /* HistoryListTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */; };
71 /* End PBXBuildFile section */ 74 /* End PBXBuildFile section */
72 75
73 /* Begin PBXContainerItemProxy section */ 76 /* Begin PBXContainerItemProxy section */
74 6E84E38B1F27A703001EB88E /* PBXContainerItemProxy */ = { 77 6E84E38B1F27A703001EB88E /* PBXContainerItemProxy */ = {
75 isa = PBXContainerItemProxy; 78 isa = PBXContainerItemProxy;
76 containerPortal = 6E84E3691F27A700001EB88E /* Project object */; 79 containerPortal = 6E84E3691F27A700001EB88E /* Project object */;
77 proxyType = 1; 80 proxyType = 1;
78 remoteGlobalIDString = 6E84E3701F27A700001EB88E; 81 remoteGlobalIDString = 6E84E3701F27A700001EB88E;
79 remoteInfo = LifeLog; 82 remoteInfo = LifeLog;
80 }; 83 };
81 6E84E3961F27A703001EB88E /* PBXContainerItemProxy */ = { 84 6E84E3961F27A703001EB88E /* PBXContainerItemProxy */ = {
82 isa = PBXContainerItemProxy; 85 isa = PBXContainerItemProxy;
83 containerPortal = 6E84E3691F27A700001EB88E /* Project object */; 86 containerPortal = 6E84E3691F27A700001EB88E /* Project object */;
84 proxyType = 1; 87 proxyType = 1;
85 remoteGlobalIDString = 6E84E3701F27A700001EB88E; 88 remoteGlobalIDString = 6E84E3701F27A700001EB88E;
86 remoteInfo = LifeLog; 89 remoteInfo = LifeLog;
87 }; 90 };
88 /* End PBXContainerItemProxy section */ 91 /* End PBXContainerItemProxy section */
89 92
90 /* Begin PBXFileReference section */ 93 /* Begin PBXFileReference section */
91 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LifeLog.debug.xcconfig"; path = "Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog.debug.xcconfig"; sourceTree = "<group>"; }; 94 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LifeLog.debug.xcconfig"; path = "Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog.debug.xcconfig"; sourceTree = "<group>"; };
92 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LifeLog.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 95 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LifeLog.framework; sourceTree = BUILT_PRODUCTS_DIR; };
93 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LifeLog.release.xcconfig"; path = "Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog.release.xcconfig"; sourceTree = "<group>"; }; 96 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LifeLog.release.xcconfig"; path = "Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog.release.xcconfig"; sourceTree = "<group>"; };
94 6E18CED01F2E39DB0029891F /* LoginViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoginViewController.h; sourceTree = "<group>"; }; 97 6E18CED01F2E39DB0029891F /* LoginViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoginViewController.h; sourceTree = "<group>"; };
95 6E18CED11F2E39DB0029891F /* LoginViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LoginViewController.m; sourceTree = "<group>"; }; 98 6E18CED11F2E39DB0029891F /* LoginViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LoginViewController.m; sourceTree = "<group>"; };
96 6E18CED21F2E39DB0029891F /* LoginViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LoginViewController.xib; sourceTree = "<group>"; }; 99 6E18CED21F2E39DB0029891F /* LoginViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LoginViewController.xib; sourceTree = "<group>"; };
97 6E18CED61F2E3C840029891F /* ServerAPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServerAPI.h; sourceTree = "<group>"; }; 100 6E18CED61F2E3C840029891F /* ServerAPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServerAPI.h; sourceTree = "<group>"; };
98 6E18CED71F2E3C840029891F /* ServerAPI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ServerAPI.m; sourceTree = "<group>"; }; 101 6E18CED71F2E3C840029891F /* ServerAPI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ServerAPI.m; sourceTree = "<group>"; };
99 6E18CEDA1F2E40F50029891F /* User.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = User.h; sourceTree = "<group>"; }; 102 6E18CEDA1F2E40F50029891F /* User.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = User.h; sourceTree = "<group>"; };
100 6E18CEDB1F2E40F50029891F /* User.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = User.m; sourceTree = "<group>"; }; 103 6E18CEDB1F2E40F50029891F /* User.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = User.m; sourceTree = "<group>"; };
101 6E18CEDD1F2E46570029891F /* Entities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Entities.h; sourceTree = "<group>"; }; 104 6E18CEDD1F2E46570029891F /* Entities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Entities.h; sourceTree = "<group>"; };
102 6E48AF0B1F2F9D3200C1D184 /* CustomTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomTextField.h; sourceTree = "<group>"; }; 105 6E48AF0B1F2F9D3200C1D184 /* CustomTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomTextField.h; sourceTree = "<group>"; };
103 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomTextField.m; sourceTree = "<group>"; }; 106 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomTextField.m; sourceTree = "<group>"; };
104 6E7F933A1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingCollectionView.h; sourceTree = "<group>"; }; 107 6E7F933A1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingCollectionView.h; sourceTree = "<group>"; };
105 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingCollectionView.m; sourceTree = "<group>"; }; 108 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingCollectionView.m; sourceTree = "<group>"; };
106 6E7F933C1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingScrollView.h; sourceTree = "<group>"; }; 109 6E7F933C1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingScrollView.h; sourceTree = "<group>"; };
107 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingScrollView.m; sourceTree = "<group>"; }; 110 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingScrollView.m; sourceTree = "<group>"; };
108 6E7F933E1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingTableView.h; sourceTree = "<group>"; }; 111 6E7F933E1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingTableView.h; sourceTree = "<group>"; };
109 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingTableView.m; sourceTree = "<group>"; }; 112 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingTableView.m; sourceTree = "<group>"; };
110 6E7F93401F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIScrollView+TPKeyboardAvoidingAdditions.h"; sourceTree = "<group>"; }; 113 6E7F93401F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIScrollView+TPKeyboardAvoidingAdditions.h"; sourceTree = "<group>"; };
111 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIScrollView+TPKeyboardAvoidingAdditions.m"; sourceTree = "<group>"; }; 114 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIScrollView+TPKeyboardAvoidingAdditions.m"; sourceTree = "<group>"; };
112 6E84E3711F27A700001EB88E /* LifeLog.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LifeLog.app; sourceTree = BUILT_PRODUCTS_DIR; }; 115 6E84E3711F27A700001EB88E /* LifeLog.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LifeLog.app; sourceTree = BUILT_PRODUCTS_DIR; };
113 6E84E3751F27A701001EB88E /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; }; 116 6E84E3751F27A701001EB88E /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
114 6E84E3771F27A701001EB88E /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; }; 117 6E84E3771F27A701001EB88E /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
115 6E84E3781F27A701001EB88E /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; }; 118 6E84E3781F27A701001EB88E /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
116 6E84E3801F27A701001EB88E /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; 119 6E84E3801F27A701001EB88E /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
117 6E84E3831F27A701001EB88E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; }; 120 6E84E3831F27A701001EB88E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
118 6E84E3851F27A701001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 121 6E84E3851F27A701001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
119 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LifeLogTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 122 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LifeLogTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
120 6E84E38E1F27A703001EB88E /* LifeLogTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LifeLogTests.m; sourceTree = "<group>"; }; 123 6E84E38E1F27A703001EB88E /* LifeLogTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LifeLogTests.m; sourceTree = "<group>"; };
121 6E84E3901F27A703001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 124 6E84E3901F27A703001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
122 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LifeLogUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 125 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LifeLogUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
123 6E84E3991F27A703001EB88E /* LifeLogUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LifeLogUITests.m; sourceTree = "<group>"; }; 126 6E84E3991F27A703001EB88E /* LifeLogUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LifeLogUITests.m; sourceTree = "<group>"; };
124 6E84E39B1F27A703001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 127 6E84E39B1F27A703001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
125 6E84E3AD1F27A975001EB88E /* HomeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HomeViewController.h; sourceTree = "<group>"; }; 128 6E84E3AD1F27A975001EB88E /* HomeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HomeViewController.h; sourceTree = "<group>"; };
126 6E84E3AE1F27A975001EB88E /* HomeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HomeViewController.m; sourceTree = "<group>"; }; 129 6E84E3AE1F27A975001EB88E /* HomeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HomeViewController.m; sourceTree = "<group>"; };
127 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HomeViewController.xib; sourceTree = "<group>"; }; 130 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HomeViewController.xib; sourceTree = "<group>"; };
128 6E84E3B21F27A98B001EB88E /* HistoryViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryViewController.h; sourceTree = "<group>"; }; 131 6E84E3B21F27A98B001EB88E /* HistoryViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryViewController.h; sourceTree = "<group>"; };
129 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryViewController.m; sourceTree = "<group>"; }; 132 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryViewController.m; sourceTree = "<group>"; };
130 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HistoryViewController.xib; sourceTree = "<group>"; }; 133 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HistoryViewController.xib; sourceTree = "<group>"; };
131 6E84E3B71F27A9A0001EB88E /* RankingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RankingViewController.h; sourceTree = "<group>"; }; 134 6E84E3B71F27A9A0001EB88E /* RankingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RankingViewController.h; sourceTree = "<group>"; };
132 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RankingViewController.m; sourceTree = "<group>"; }; 135 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RankingViewController.m; sourceTree = "<group>"; };
133 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RankingViewController.xib; sourceTree = "<group>"; }; 136 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RankingViewController.xib; sourceTree = "<group>"; };
134 6E84E3BC1F27A9B1001EB88E /* SNSViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SNSViewController.h; sourceTree = "<group>"; }; 137 6E84E3BC1F27A9B1001EB88E /* SNSViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SNSViewController.h; sourceTree = "<group>"; };
135 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SNSViewController.m; sourceTree = "<group>"; }; 138 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SNSViewController.m; sourceTree = "<group>"; };
136 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SNSViewController.xib; sourceTree = "<group>"; }; 139 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SNSViewController.xib; sourceTree = "<group>"; };
137 6E84E3C21F27ACAE001EB88E /* MapViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MapViewController.h; sourceTree = "<group>"; }; 140 6E84E3C21F27ACAE001EB88E /* MapViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MapViewController.h; sourceTree = "<group>"; };
138 6E84E3C31F27ACAE001EB88E /* MapViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MapViewController.m; sourceTree = "<group>"; }; 141 6E84E3C31F27ACAE001EB88E /* MapViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MapViewController.m; sourceTree = "<group>"; };
139 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MapViewController.xib; sourceTree = "<group>"; }; 142 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MapViewController.xib; sourceTree = "<group>"; };
140 6E8DA0F41F2BAC3400CCE941 /* TodayViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TodayViewController.h; sourceTree = "<group>"; }; 143 6E8DA0F41F2BAC3400CCE941 /* TodayViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TodayViewController.h; sourceTree = "<group>"; };
141 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TodayViewController.m; sourceTree = "<group>"; }; 144 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TodayViewController.m; sourceTree = "<group>"; };
142 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TodayViewController.xib; sourceTree = "<group>"; }; 145 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TodayViewController.xib; sourceTree = "<group>"; };
146 6EA4AF2B1F40BB7A00F52CFE /* StepObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StepObject.h; sourceTree = "<group>"; };
147 6EA4AF2C1F40BB7A00F52CFE /* StepObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StepObject.m; sourceTree = "<group>"; };
148 6EA4AF2D1F40BB7A00F52CFE /* TargetInfor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TargetInfor.h; sourceTree = "<group>"; };
149 6EA4AF2E1F40BB7A00F52CFE /* TargetInfor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TargetInfor.m; sourceTree = "<group>"; };
150 6EA4AF2F1F40BB7A00F52CFE /* TopObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TopObject.h; sourceTree = "<group>"; };
151 6EA4AF301F40BB7A00F52CFE /* TopObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TopObject.m; sourceTree = "<group>"; };
143 6ECC406F1F2A5FEB00AAEB97 /* NSDate+helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDate+helper.h"; sourceTree = "<group>"; }; 152 6ECC406F1F2A5FEB00AAEB97 /* NSDate+helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDate+helper.h"; sourceTree = "<group>"; };
144 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDate+helper.m"; sourceTree = "<group>"; }; 153 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDate+helper.m"; sourceTree = "<group>"; };
145 6EDC8BEC1F2C2FB800765ACC /* Utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Utilities.h; sourceTree = "<group>"; }; 154 6EDC8BEC1F2C2FB800765ACC /* Utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Utilities.h; sourceTree = "<group>"; };
146 6EDC8BED1F2C2FB800765ACC /* Utilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Utilities.m; sourceTree = "<group>"; }; 155 6EDC8BED1F2C2FB800765ACC /* Utilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Utilities.m; sourceTree = "<group>"; };
147 6EDC8BF21F2C68D700765ACC /* CMMotionActivityExtra.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CMMotionActivityExtra.h; sourceTree = "<group>"; }; 156 6EDC8BF21F2C68D700765ACC /* CMMotionActivityExtra.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CMMotionActivityExtra.h; sourceTree = "<group>"; };
148 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CMMotionActivityExtra.m; sourceTree = "<group>"; }; 157 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CMMotionActivityExtra.m; sourceTree = "<group>"; };
149 6EF163091F29069300DA306C /* Localizable.strings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; path = Localizable.strings; sourceTree = "<group>"; }; 158 6EF163091F29069300DA306C /* Localizable.strings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; path = Localizable.strings; sourceTree = "<group>"; };
150 9CA8AEE71F31BB4600C5FC74 /* ConfirmForgetPassViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfirmForgetPassViewController.h; sourceTree = "<group>"; }; 159 9CA8AEE71F31BB4600C5FC74 /* ConfirmForgetPassViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfirmForgetPassViewController.h; sourceTree = "<group>"; };
151 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ConfirmForgetPassViewController.m; sourceTree = "<group>"; }; 160 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ConfirmForgetPassViewController.m; sourceTree = "<group>"; };
152 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ConfirmForgetPassViewController.xib; sourceTree = "<group>"; }; 161 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ConfirmForgetPassViewController.xib; sourceTree = "<group>"; };
153 9CBDA0F81F2ECE2C0055DED1 /* BaseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseViewController.h; sourceTree = "<group>"; }; 162 9CBDA0F81F2ECE2C0055DED1 /* BaseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseViewController.h; sourceTree = "<group>"; };
154 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BaseViewController.m; sourceTree = "<group>"; }; 163 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BaseViewController.m; sourceTree = "<group>"; };
155 9CBDA0FC1F2F03810055DED1 /* RegisterViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegisterViewController.h; sourceTree = "<group>"; }; 164 9CBDA0FC1F2F03810055DED1 /* RegisterViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegisterViewController.h; sourceTree = "<group>"; };
156 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RegisterViewController.m; sourceTree = "<group>"; }; 165 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RegisterViewController.m; sourceTree = "<group>"; };
157 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RegisterViewController.xib; sourceTree = "<group>"; }; 166 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RegisterViewController.xib; sourceTree = "<group>"; };
158 E933E6681F3E04A6002926F5 /* SearchGroupViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SearchGroupViewController.h; sourceTree = "<group>"; }; 167 E933E6681F3E04A6002926F5 /* SearchGroupViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SearchGroupViewController.h; sourceTree = "<group>"; };
159 E933E6691F3E04A6002926F5 /* SearchGroupViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SearchGroupViewController.m; sourceTree = "<group>"; }; 168 E933E6691F3E04A6002926F5 /* SearchGroupViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SearchGroupViewController.m; sourceTree = "<group>"; };
160 E933E66A1F3E04A6002926F5 /* SearchGroupViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SearchGroupViewController.xib; sourceTree = "<group>"; }; 169 E933E66A1F3E04A6002926F5 /* SearchGroupViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SearchGroupViewController.xib; sourceTree = "<group>"; };
161 E933E66D1F3E09B6002926F5 /* SearchGroupTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SearchGroupTableViewCell.h; sourceTree = "<group>"; }; 170 E933E66D1F3E09B6002926F5 /* SearchGroupTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SearchGroupTableViewCell.h; sourceTree = "<group>"; };
162 E933E66E1F3E09B6002926F5 /* SearchGroupTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SearchGroupTableViewCell.m; sourceTree = "<group>"; }; 171 E933E66E1F3E09B6002926F5 /* SearchGroupTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SearchGroupTableViewCell.m; sourceTree = "<group>"; };
163 E933E66F1F3E09B6002926F5 /* SearchGroupTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SearchGroupTableViewCell.xib; sourceTree = "<group>"; }; 172 E933E66F1F3E09B6002926F5 /* SearchGroupTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SearchGroupTableViewCell.xib; sourceTree = "<group>"; };
164 E933E6721F3E0E4E002926F5 /* GroupObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GroupObject.h; sourceTree = "<group>"; }; 173 E933E6721F3E0E4E002926F5 /* GroupObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GroupObject.h; sourceTree = "<group>"; };
165 E933E6731F3E0E4E002926F5 /* GroupObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GroupObject.m; sourceTree = "<group>"; }; 174 E933E6731F3E0E4E002926F5 /* GroupObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GroupObject.m; sourceTree = "<group>"; };
166 E933E6761F40513C002926F5 /* GroupDetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GroupDetailViewController.h; sourceTree = "<group>"; }; 175 E933E6761F40513C002926F5 /* GroupDetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GroupDetailViewController.h; sourceTree = "<group>"; };
167 E933E6771F40513C002926F5 /* GroupDetailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GroupDetailViewController.m; sourceTree = "<group>"; }; 176 E933E6771F40513C002926F5 /* GroupDetailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GroupDetailViewController.m; sourceTree = "<group>"; };
168 E933E6781F40513C002926F5 /* GroupDetailViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = GroupDetailViewController.xib; sourceTree = "<group>"; }; 177 E933E6781F40513C002926F5 /* GroupDetailViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = GroupDetailViewController.xib; sourceTree = "<group>"; };
169 E9373E451F3596940059355A /* AutoTransLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoTransLabel.h; sourceTree = "<group>"; }; 178 E9373E451F3596940059355A /* AutoTransLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoTransLabel.h; sourceTree = "<group>"; };
170 E9373E461F3596940059355A /* AutoTransLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutoTransLabel.m; sourceTree = "<group>"; }; 179 E9373E461F3596940059355A /* AutoTransLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutoTransLabel.m; sourceTree = "<group>"; };
171 E9373E481F35AA180059355A /* HistoryObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryObject.h; sourceTree = "<group>"; }; 180 E9373E481F35AA180059355A /* HistoryObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryObject.h; sourceTree = "<group>"; };
172 E9373E491F35AA180059355A /* HistoryObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryObject.m; sourceTree = "<group>"; }; 181 E9373E491F35AA180059355A /* HistoryObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryObject.m; sourceTree = "<group>"; };
173 E9373E4B1F361A230059355A /* HistoryGraphObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryGraphObject.h; sourceTree = "<group>"; }; 182 E9373E4B1F361A230059355A /* HistoryGraphObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryGraphObject.h; sourceTree = "<group>"; };
174 E9373E4C1F361A230059355A /* HistoryGraphObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryGraphObject.m; sourceTree = "<group>"; }; 183 E9373E4C1F361A230059355A /* HistoryGraphObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryGraphObject.m; sourceTree = "<group>"; };
175 E9682E2B1F39675A00FE05A2 /* RankingTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RankingTableViewCell.h; sourceTree = "<group>"; }; 184 E9682E2B1F39675A00FE05A2 /* RankingTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RankingTableViewCell.h; sourceTree = "<group>"; };
176 E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RankingTableViewCell.m; sourceTree = "<group>"; }; 185 E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RankingTableViewCell.m; sourceTree = "<group>"; };
177 E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RankingTableViewCell.xib; sourceTree = "<group>"; }; 186 E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RankingTableViewCell.xib; sourceTree = "<group>"; };
178 E96855081F3C444900317CEF /* AutoTransButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoTransButton.h; sourceTree = "<group>"; }; 187 E96855081F3C444900317CEF /* AutoTransButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoTransButton.h; sourceTree = "<group>"; };
179 E96855091F3C444900317CEF /* AutoTransButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutoTransButton.m; sourceTree = "<group>"; }; 188 E96855091F3C444900317CEF /* AutoTransButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutoTransButton.m; sourceTree = "<group>"; };
180 E968550E1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SNSRecentTopicTableViewCell.h; sourceTree = "<group>"; }; 189 E968550E1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SNSRecentTopicTableViewCell.h; sourceTree = "<group>"; };
181 E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SNSRecentTopicTableViewCell.m; sourceTree = "<group>"; }; 190 E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SNSRecentTopicTableViewCell.m; sourceTree = "<group>"; };
182 E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SNSRecentTopicTableViewCell.xib; sourceTree = "<group>"; }; 191 E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SNSRecentTopicTableViewCell.xib; sourceTree = "<group>"; };
183 E997E0251F3AB66500709FB1 /* Social.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Social.framework; path = System/Library/Frameworks/Social.framework; sourceTree = SDKROOT; }; 192 E997E0251F3AB66500709FB1 /* Social.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Social.framework; path = System/Library/Frameworks/Social.framework; sourceTree = SDKROOT; };
184 E99E13A91F336F3600C78787 /* CollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CollectionView.h; sourceTree = "<group>"; }; 193 E99E13A91F336F3600C78787 /* CollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CollectionView.h; sourceTree = "<group>"; };
185 E99E13AA1F336F3600C78787 /* CollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CollectionView.m; sourceTree = "<group>"; }; 194 E99E13AA1F336F3600C78787 /* CollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CollectionView.m; sourceTree = "<group>"; };
186 E99E13AC1F336F4500C78787 /* CollectionView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CollectionView.xib; sourceTree = "<group>"; }; 195 E99E13AC1F336F4500C78787 /* CollectionView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CollectionView.xib; sourceTree = "<group>"; };
187 E99E13AE1F33720600C78787 /* LabelCollectionViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LabelCollectionViewCell.h; sourceTree = "<group>"; }; 196 E99E13AE1F33720600C78787 /* LabelCollectionViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LabelCollectionViewCell.h; sourceTree = "<group>"; };
188 E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LabelCollectionViewCell.m; sourceTree = "<group>"; }; 197 E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LabelCollectionViewCell.m; sourceTree = "<group>"; };
189 E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LabelCollectionViewCell.xib; sourceTree = "<group>"; }; 198 E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LabelCollectionViewCell.xib; sourceTree = "<group>"; };
190 E9D9091F1F3D559D004CF99F /* TweetObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TweetObject.h; sourceTree = "<group>"; }; 199 E9D9091F1F3D559D004CF99F /* TweetObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TweetObject.h; sourceTree = "<group>"; };
191 E9D909201F3D559D004CF99F /* TweetObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TweetObject.m; sourceTree = "<group>"; }; 200 E9D909201F3D559D004CF99F /* TweetObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TweetObject.m; sourceTree = "<group>"; };
192 E9D909221F3D6E8C004CF99F /* BaseTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseTableViewController.h; sourceTree = "<group>"; }; 201 E9D909221F3D6E8C004CF99F /* BaseTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseTableViewController.h; sourceTree = "<group>"; };
193 E9D909231F3D6E8C004CF99F /* BaseTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BaseTableViewController.m; sourceTree = "<group>"; }; 202 E9D909231F3D6E8C004CF99F /* BaseTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BaseTableViewController.m; sourceTree = "<group>"; };
194 E9F73DC91F338A0F004A3A6F /* HistoryListTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryListTableViewCell.h; sourceTree = "<group>"; }; 203 E9F73DC91F338A0F004A3A6F /* HistoryListTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryListTableViewCell.h; sourceTree = "<group>"; };
195 E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryListTableViewCell.m; sourceTree = "<group>"; }; 204 E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryListTableViewCell.m; sourceTree = "<group>"; };
196 E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HistoryListTableViewCell.xib; sourceTree = "<group>"; }; 205 E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HistoryListTableViewCell.xib; sourceTree = "<group>"; };
197 /* End PBXFileReference section */ 206 /* End PBXFileReference section */
198 207
199 /* Begin PBXFrameworksBuildPhase section */ 208 /* Begin PBXFrameworksBuildPhase section */
200 6E84E36E1F27A700001EB88E /* Frameworks */ = { 209 6E84E36E1F27A700001EB88E /* Frameworks */ = {
201 isa = PBXFrameworksBuildPhase; 210 isa = PBXFrameworksBuildPhase;
202 buildActionMask = 2147483647; 211 buildActionMask = 2147483647;
203 files = ( 212 files = (
204 E997E0261F3AB66500709FB1 /* Social.framework in Frameworks */, 213 E997E0261F3AB66500709FB1 /* Social.framework in Frameworks */,
205 011799F0F2B47D80472673CE /* Pods_LifeLog.framework in Frameworks */, 214 011799F0F2B47D80472673CE /* Pods_LifeLog.framework in Frameworks */,
206 ); 215 );
207 runOnlyForDeploymentPostprocessing = 0; 216 runOnlyForDeploymentPostprocessing = 0;
208 }; 217 };
209 6E84E3871F27A703001EB88E /* Frameworks */ = { 218 6E84E3871F27A703001EB88E /* Frameworks */ = {
210 isa = PBXFrameworksBuildPhase; 219 isa = PBXFrameworksBuildPhase;
211 buildActionMask = 2147483647; 220 buildActionMask = 2147483647;
212 files = ( 221 files = (
213 ); 222 );
214 runOnlyForDeploymentPostprocessing = 0; 223 runOnlyForDeploymentPostprocessing = 0;
215 }; 224 };
216 6E84E3921F27A703001EB88E /* Frameworks */ = { 225 6E84E3921F27A703001EB88E /* Frameworks */ = {
217 isa = PBXFrameworksBuildPhase; 226 isa = PBXFrameworksBuildPhase;
218 buildActionMask = 2147483647; 227 buildActionMask = 2147483647;
219 files = ( 228 files = (
220 ); 229 );
221 runOnlyForDeploymentPostprocessing = 0; 230 runOnlyForDeploymentPostprocessing = 0;
222 }; 231 };
223 /* End PBXFrameworksBuildPhase section */ 232 /* End PBXFrameworksBuildPhase section */
224 233
225 /* Begin PBXGroup section */ 234 /* Begin PBXGroup section */
226 020C1721B642EF36F31E1BB4 /* Frameworks */ = { 235 020C1721B642EF36F31E1BB4 /* Frameworks */ = {
227 isa = PBXGroup; 236 isa = PBXGroup;
228 children = ( 237 children = (
229 E997E0251F3AB66500709FB1 /* Social.framework */, 238 E997E0251F3AB66500709FB1 /* Social.framework */,
230 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */, 239 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */,
231 ); 240 );
232 name = Frameworks; 241 name = Frameworks;
233 sourceTree = "<group>"; 242 sourceTree = "<group>";
234 }; 243 };
235 6E18CECF1F2E398C0029891F /* Login */ = { 244 6E18CECF1F2E398C0029891F /* Login */ = {
236 isa = PBXGroup; 245 isa = PBXGroup;
237 children = ( 246 children = (
238 9CA8AEE61F31BB1200C5FC74 /* ConfirmForgetPass */, 247 9CA8AEE61F31BB1200C5FC74 /* ConfirmForgetPass */,
239 6E18CED01F2E39DB0029891F /* LoginViewController.h */, 248 6E18CED01F2E39DB0029891F /* LoginViewController.h */,
240 6E18CED11F2E39DB0029891F /* LoginViewController.m */, 249 6E18CED11F2E39DB0029891F /* LoginViewController.m */,
241 6E18CED21F2E39DB0029891F /* LoginViewController.xib */, 250 6E18CED21F2E39DB0029891F /* LoginViewController.xib */,
242 ); 251 );
243 name = Login; 252 name = Login;
244 sourceTree = "<group>"; 253 sourceTree = "<group>";
245 }; 254 };
246 6E18CED51F2E3C0E0029891F /* ServerAPI */ = { 255 6E18CED51F2E3C0E0029891F /* ServerAPI */ = {
247 isa = PBXGroup; 256 isa = PBXGroup;
248 children = ( 257 children = (
249 6E18CED61F2E3C840029891F /* ServerAPI.h */, 258 6E18CED61F2E3C840029891F /* ServerAPI.h */,
250 6E18CED71F2E3C840029891F /* ServerAPI.m */, 259 6E18CED71F2E3C840029891F /* ServerAPI.m */,
251 ); 260 );
252 name = ServerAPI; 261 name = ServerAPI;
253 sourceTree = "<group>"; 262 sourceTree = "<group>";
254 }; 263 };
255 6E18CED91F2E40AE0029891F /* Model */ = { 264 6E18CED91F2E40AE0029891F /* Model */ = {
256 isa = PBXGroup; 265 isa = PBXGroup;
257 children = ( 266 children = (
267 6E18CEDD1F2E46570029891F /* Entities.h */,
268 6EA4AF2B1F40BB7A00F52CFE /* StepObject.h */,
269 6EA4AF2C1F40BB7A00F52CFE /* StepObject.m */,
270 6EA4AF2D1F40BB7A00F52CFE /* TargetInfor.h */,
271 6EA4AF2E1F40BB7A00F52CFE /* TargetInfor.m */,
272 6EA4AF2F1F40BB7A00F52CFE /* TopObject.h */,
273 6EA4AF301F40BB7A00F52CFE /* TopObject.m */,
258 6E18CEDA1F2E40F50029891F /* User.h */, 274 6E18CEDA1F2E40F50029891F /* User.h */,
259 6E18CEDB1F2E40F50029891F /* User.m */, 275 6E18CEDB1F2E40F50029891F /* User.m */,
260 6E18CEDD1F2E46570029891F /* Entities.h */,
261 E9373E481F35AA180059355A /* HistoryObject.h */, 276 E9373E481F35AA180059355A /* HistoryObject.h */,
262 E9373E491F35AA180059355A /* HistoryObject.m */, 277 E9373E491F35AA180059355A /* HistoryObject.m */,
263 E9373E4B1F361A230059355A /* HistoryGraphObject.h */, 278 E9373E4B1F361A230059355A /* HistoryGraphObject.h */,
264 E9373E4C1F361A230059355A /* HistoryGraphObject.m */, 279 E9373E4C1F361A230059355A /* HistoryGraphObject.m */,
265 E9D9091F1F3D559D004CF99F /* TweetObject.h */, 280 E9D9091F1F3D559D004CF99F /* TweetObject.h */,
266 E9D909201F3D559D004CF99F /* TweetObject.m */, 281 E9D909201F3D559D004CF99F /* TweetObject.m */,
267 E933E6721F3E0E4E002926F5 /* GroupObject.h */, 282 E933E6721F3E0E4E002926F5 /* GroupObject.h */,
268 E933E6731F3E0E4E002926F5 /* GroupObject.m */, 283 E933E6731F3E0E4E002926F5 /* GroupObject.m */,
269 ); 284 );
270 name = Model; 285 name = Model;
271 sourceTree = "<group>"; 286 sourceTree = "<group>";
272 }; 287 };
273 6E7F93391F35870F00EFBC71 /* TPKeyboardAvoiding */ = { 288 6E7F93391F35870F00EFBC71 /* TPKeyboardAvoiding */ = {
274 isa = PBXGroup; 289 isa = PBXGroup;
275 children = ( 290 children = (
276 6E7F933A1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.h */, 291 6E7F933A1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.h */,
277 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */, 292 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */,
278 6E7F933C1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.h */, 293 6E7F933C1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.h */,
279 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */, 294 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */,
280 6E7F933E1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.h */, 295 6E7F933E1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.h */,
281 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */, 296 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */,
282 6E7F93401F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.h */, 297 6E7F93401F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.h */,
283 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */, 298 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */,
284 ); 299 );
285 name = TPKeyboardAvoiding; 300 name = TPKeyboardAvoiding;
286 sourceTree = "<group>"; 301 sourceTree = "<group>";
287 }; 302 };
288 6E84E3681F27A700001EB88E = { 303 6E84E3681F27A700001EB88E = {
289 isa = PBXGroup; 304 isa = PBXGroup;
290 children = ( 305 children = (
291 6E84E3731F27A700001EB88E /* LifeLog */, 306 6E84E3731F27A700001EB88E /* LifeLog */,
292 6E84E38D1F27A703001EB88E /* LifeLogTests */, 307 6E84E38D1F27A703001EB88E /* LifeLogTests */,
293 6E84E3981F27A703001EB88E /* LifeLogUITests */, 308 6E84E3981F27A703001EB88E /* LifeLogUITests */,
294 DE8269E957EA47CD771BAB33 /* Pods */, 309 DE8269E957EA47CD771BAB33 /* Pods */,
295 020C1721B642EF36F31E1BB4 /* Frameworks */, 310 020C1721B642EF36F31E1BB4 /* Frameworks */,
296 ); 311 );
297 sourceTree = "<group>"; 312 sourceTree = "<group>";
298 }; 313 };
299 6E84E3721F27A700001EB88E /* Products */ = { 314 6E84E3721F27A700001EB88E /* Products */ = {
300 isa = PBXGroup; 315 isa = PBXGroup;
301 children = ( 316 children = (
302 6E84E3711F27A700001EB88E /* LifeLog.app */, 317 6E84E3711F27A700001EB88E /* LifeLog.app */,
303 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */, 318 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */,
304 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */, 319 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */,
305 ); 320 );
306 name = Products; 321 name = Products;
307 sourceTree = "<group>"; 322 sourceTree = "<group>";
308 }; 323 };
309 6E84E3731F27A700001EB88E /* LifeLog */ = { 324 6E84E3731F27A700001EB88E /* LifeLog */ = {
310 isa = PBXGroup; 325 isa = PBXGroup;
311 children = ( 326 children = (
312 6E18CED91F2E40AE0029891F /* Model */, 327 6E18CED91F2E40AE0029891F /* Model */,
313 6E18CED51F2E3C0E0029891F /* ServerAPI */, 328 6E18CED51F2E3C0E0029891F /* ServerAPI */,
314 6EDC8BEB1F2C2F3300765ACC /* Common */, 329 6EDC8BEB1F2C2F3300765ACC /* Common */,
315 6ECC406D1F2A5FA500AAEB97 /* Library */, 330 6ECC406D1F2A5FA500AAEB97 /* Library */,
316 E99E13A71F336F0C00C78787 /* CustomView */, 331 E99E13A71F336F0C00C78787 /* CustomView */,
317 6E84E3A81F27A8A9001EB88E /* ViewControllers */, 332 6E84E3A81F27A8A9001EB88E /* ViewControllers */,
318 6E84E3A71F27A887001EB88E /* AppDelegate */, 333 6E84E3A71F27A887001EB88E /* AppDelegate */,
319 6E84E3801F27A701001EB88E /* Assets.xcassets */, 334 6E84E3801F27A701001EB88E /* Assets.xcassets */,
320 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */, 335 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */,
321 6E84E3851F27A701001EB88E /* Info.plist */, 336 6E84E3851F27A701001EB88E /* Info.plist */,
322 6E84E3741F27A701001EB88E /* Supporting Files */, 337 6E84E3741F27A701001EB88E /* Supporting Files */,
323 ); 338 );
324 path = LifeLog; 339 path = LifeLog;
325 sourceTree = "<group>"; 340 sourceTree = "<group>";
326 }; 341 };
327 6E84E3741F27A701001EB88E /* Supporting Files */ = { 342 6E84E3741F27A701001EB88E /* Supporting Files */ = {
328 isa = PBXGroup; 343 isa = PBXGroup;
329 children = ( 344 children = (
330 6E84E3751F27A701001EB88E /* main.m */, 345 6E84E3751F27A701001EB88E /* main.m */,
331 6EF163091F29069300DA306C /* Localizable.strings */, 346 6EF163091F29069300DA306C /* Localizable.strings */,
332 ); 347 );
333 name = "Supporting Files"; 348 name = "Supporting Files";
334 sourceTree = "<group>"; 349 sourceTree = "<group>";
335 }; 350 };
336 6E84E38D1F27A703001EB88E /* LifeLogTests */ = { 351 6E84E38D1F27A703001EB88E /* LifeLogTests */ = {
337 isa = PBXGroup; 352 isa = PBXGroup;
338 children = ( 353 children = (
339 6E84E38E1F27A703001EB88E /* LifeLogTests.m */, 354 6E84E38E1F27A703001EB88E /* LifeLogTests.m */,
340 6E84E3901F27A703001EB88E /* Info.plist */, 355 6E84E3901F27A703001EB88E /* Info.plist */,
341 ); 356 );
342 path = LifeLogTests; 357 path = LifeLogTests;
343 sourceTree = "<group>"; 358 sourceTree = "<group>";
344 }; 359 };
345 6E84E3981F27A703001EB88E /* LifeLogUITests */ = { 360 6E84E3981F27A703001EB88E /* LifeLogUITests */ = {
346 isa = PBXGroup; 361 isa = PBXGroup;
347 children = ( 362 children = (
348 6E84E3991F27A703001EB88E /* LifeLogUITests.m */, 363 6E84E3991F27A703001EB88E /* LifeLogUITests.m */,
349 6E84E39B1F27A703001EB88E /* Info.plist */, 364 6E84E39B1F27A703001EB88E /* Info.plist */,
350 ); 365 );
351 path = LifeLogUITests; 366 path = LifeLogUITests;
352 sourceTree = "<group>"; 367 sourceTree = "<group>";
353 }; 368 };
354 6E84E3A71F27A887001EB88E /* AppDelegate */ = { 369 6E84E3A71F27A887001EB88E /* AppDelegate */ = {
355 isa = PBXGroup; 370 isa = PBXGroup;
356 children = ( 371 children = (
357 6E84E3771F27A701001EB88E /* AppDelegate.h */, 372 6E84E3771F27A701001EB88E /* AppDelegate.h */,
358 6E84E3781F27A701001EB88E /* AppDelegate.m */, 373 6E84E3781F27A701001EB88E /* AppDelegate.m */,
359 ); 374 );
360 name = AppDelegate; 375 name = AppDelegate;
361 sourceTree = "<group>"; 376 sourceTree = "<group>";
362 }; 377 };
363 6E84E3A81F27A8A9001EB88E /* ViewControllers */ = { 378 6E84E3A81F27A8A9001EB88E /* ViewControllers */ = {
364 isa = PBXGroup; 379 isa = PBXGroup;
365 children = ( 380 children = (
366 9CBDA0F71F2ECDFD0055DED1 /* BaseViewController */, 381 9CBDA0F71F2ECDFD0055DED1 /* BaseViewController */,
367 9CBDA0FB1F2F03490055DED1 /* Register */, 382 9CBDA0FB1F2F03490055DED1 /* Register */,
368 6E18CECF1F2E398C0029891F /* Login */, 383 6E18CECF1F2E398C0029891F /* Login */,
369 6E84E3AC1F27A954001EB88E /* SNS */, 384 6E84E3AC1F27A954001EB88E /* SNS */,
370 6E84E3C11F27AC89001EB88E /* Map */, 385 6E84E3C11F27AC89001EB88E /* Map */,
371 6E84E3AB1F27A946001EB88E /* Ranking */, 386 6E84E3AB1F27A946001EB88E /* Ranking */,
372 6E84E3AA1F27A924001EB88E /* History */, 387 6E84E3AA1F27A924001EB88E /* History */,
373 6E84E3A91F27A915001EB88E /* Home */, 388 6E84E3A91F27A915001EB88E /* Home */,
374 ); 389 );
375 name = ViewControllers; 390 name = ViewControllers;
376 sourceTree = "<group>"; 391 sourceTree = "<group>";
377 }; 392 };
378 6E84E3A91F27A915001EB88E /* Home */ = { 393 6E84E3A91F27A915001EB88E /* Home */ = {
379 isa = PBXGroup; 394 isa = PBXGroup;
380 children = ( 395 children = (
381 6E8DA0F31F2BAC0800CCE941 /* Today */, 396 6E8DA0F31F2BAC0800CCE941 /* Today */,
382 6E84E3AD1F27A975001EB88E /* HomeViewController.h */, 397 6E84E3AD1F27A975001EB88E /* HomeViewController.h */,
383 6E84E3AE1F27A975001EB88E /* HomeViewController.m */, 398 6E84E3AE1F27A975001EB88E /* HomeViewController.m */,
384 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */, 399 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */,
385 ); 400 );
386 name = Home; 401 name = Home;
387 sourceTree = "<group>"; 402 sourceTree = "<group>";
388 }; 403 };
389 6E84E3AA1F27A924001EB88E /* History */ = { 404 6E84E3AA1F27A924001EB88E /* History */ = {
390 isa = PBXGroup; 405 isa = PBXGroup;
391 children = ( 406 children = (
392 6E84E3B21F27A98B001EB88E /* HistoryViewController.h */, 407 6E84E3B21F27A98B001EB88E /* HistoryViewController.h */,
393 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */, 408 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */,
394 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */, 409 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */,
395 E9F73DC91F338A0F004A3A6F /* HistoryListTableViewCell.h */, 410 E9F73DC91F338A0F004A3A6F /* HistoryListTableViewCell.h */,
396 E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */, 411 E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */,
397 E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */, 412 E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */,
398 ); 413 );
399 name = History; 414 name = History;
400 sourceTree = "<group>"; 415 sourceTree = "<group>";
401 }; 416 };
402 6E84E3AB1F27A946001EB88E /* Ranking */ = { 417 6E84E3AB1F27A946001EB88E /* Ranking */ = {
403 isa = PBXGroup; 418 isa = PBXGroup;
404 children = ( 419 children = (
405 6E84E3B71F27A9A0001EB88E /* RankingViewController.h */, 420 6E84E3B71F27A9A0001EB88E /* RankingViewController.h */,
406 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */, 421 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */,
407 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */, 422 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */,
408 E9682E2B1F39675A00FE05A2 /* RankingTableViewCell.h */, 423 E9682E2B1F39675A00FE05A2 /* RankingTableViewCell.h */,
409 E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */, 424 E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */,
410 E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */, 425 E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */,
411 ); 426 );
412 name = Ranking; 427 name = Ranking;
413 sourceTree = "<group>"; 428 sourceTree = "<group>";
414 }; 429 };
415 6E84E3AC1F27A954001EB88E /* SNS */ = { 430 6E84E3AC1F27A954001EB88E /* SNS */ = {
416 isa = PBXGroup; 431 isa = PBXGroup;
417 children = ( 432 children = (
418 E933E6751F4050E6002926F5 /* GrouDetail */, 433 E933E6751F4050E6002926F5 /* GrouDetail */,
419 E933E6671F3E0479002926F5 /* SeachGroup */, 434 E933E6671F3E0479002926F5 /* SeachGroup */,
420 6E84E3BC1F27A9B1001EB88E /* SNSViewController.h */, 435 6E84E3BC1F27A9B1001EB88E /* SNSViewController.h */,
421 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */, 436 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */,
422 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */, 437 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */,
423 E968550E1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.h */, 438 E968550E1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.h */,
424 E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */, 439 E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */,
425 E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */, 440 E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */,
426 ); 441 );
427 name = SNS; 442 name = SNS;
428 sourceTree = "<group>"; 443 sourceTree = "<group>";
429 }; 444 };
430 6E84E3C11F27AC89001EB88E /* Map */ = { 445 6E84E3C11F27AC89001EB88E /* Map */ = {
431 isa = PBXGroup; 446 isa = PBXGroup;
432 children = ( 447 children = (
433 6E84E3C21F27ACAE001EB88E /* MapViewController.h */, 448 6E84E3C21F27ACAE001EB88E /* MapViewController.h */,
434 6E84E3C31F27ACAE001EB88E /* MapViewController.m */, 449 6E84E3C31F27ACAE001EB88E /* MapViewController.m */,
435 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */, 450 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */,
436 ); 451 );
437 name = Map; 452 name = Map;
438 sourceTree = "<group>"; 453 sourceTree = "<group>";
439 }; 454 };
440 6E8DA0F31F2BAC0800CCE941 /* Today */ = { 455 6E8DA0F31F2BAC0800CCE941 /* Today */ = {
441 isa = PBXGroup; 456 isa = PBXGroup;
442 children = ( 457 children = (
443 6E8DA0F41F2BAC3400CCE941 /* TodayViewController.h */, 458 6E8DA0F41F2BAC3400CCE941 /* TodayViewController.h */,
444 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */, 459 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */,
445 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */, 460 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */,
446 ); 461 );
447 name = Today; 462 name = Today;
448 sourceTree = "<group>"; 463 sourceTree = "<group>";
449 }; 464 };
450 6ECC406D1F2A5FA500AAEB97 /* Library */ = { 465 6ECC406D1F2A5FA500AAEB97 /* Library */ = {
451 isa = PBXGroup; 466 isa = PBXGroup;
452 children = ( 467 children = (
453 6E7F93391F35870F00EFBC71 /* TPKeyboardAvoiding */, 468 6E7F93391F35870F00EFBC71 /* TPKeyboardAvoiding */,
454 6ECC406E1F2A5FB200AAEB97 /* Category */, 469 6ECC406E1F2A5FB200AAEB97 /* Category */,
455 ); 470 );
456 name = Library; 471 name = Library;
457 sourceTree = "<group>"; 472 sourceTree = "<group>";
458 }; 473 };
459 6ECC406E1F2A5FB200AAEB97 /* Category */ = { 474 6ECC406E1F2A5FB200AAEB97 /* Category */ = {
460 isa = PBXGroup; 475 isa = PBXGroup;
461 children = ( 476 children = (
462 6ECC406F1F2A5FEB00AAEB97 /* NSDate+helper.h */, 477 6ECC406F1F2A5FEB00AAEB97 /* NSDate+helper.h */,
463 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */, 478 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */,
464 ); 479 );
465 name = Category; 480 name = Category;
466 sourceTree = "<group>"; 481 sourceTree = "<group>";
467 }; 482 };
468 6EDC8BEB1F2C2F3300765ACC /* Common */ = { 483 6EDC8BEB1F2C2F3300765ACC /* Common */ = {
469 isa = PBXGroup; 484 isa = PBXGroup;
470 children = ( 485 children = (
471 6EDC8BEC1F2C2FB800765ACC /* Utilities.h */, 486 6EDC8BEC1F2C2FB800765ACC /* Utilities.h */,
472 6EDC8BED1F2C2FB800765ACC /* Utilities.m */, 487 6EDC8BED1F2C2FB800765ACC /* Utilities.m */,
473 6EDC8BF21F2C68D700765ACC /* CMMotionActivityExtra.h */, 488 6EDC8BF21F2C68D700765ACC /* CMMotionActivityExtra.h */,
474 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */, 489 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */,
475 ); 490 );
476 name = Common; 491 name = Common;
477 sourceTree = "<group>"; 492 sourceTree = "<group>";
478 }; 493 };
479 9CA8AEE61F31BB1200C5FC74 /* ConfirmForgetPass */ = { 494 9CA8AEE61F31BB1200C5FC74 /* ConfirmForgetPass */ = {
480 isa = PBXGroup; 495 isa = PBXGroup;
481 children = ( 496 children = (
482 9CA8AEE71F31BB4600C5FC74 /* ConfirmForgetPassViewController.h */, 497 9CA8AEE71F31BB4600C5FC74 /* ConfirmForgetPassViewController.h */,
483 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */, 498 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */,
484 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */, 499 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */,
485 ); 500 );
486 name = ConfirmForgetPass; 501 name = ConfirmForgetPass;
487 sourceTree = "<group>"; 502 sourceTree = "<group>";
488 }; 503 };
489 9CBDA0F71F2ECDFD0055DED1 /* BaseViewController */ = { 504 9CBDA0F71F2ECDFD0055DED1 /* BaseViewController */ = {
490 isa = PBXGroup; 505 isa = PBXGroup;
491 children = ( 506 children = (
492 9CBDA0F81F2ECE2C0055DED1 /* BaseViewController.h */, 507 9CBDA0F81F2ECE2C0055DED1 /* BaseViewController.h */,
493 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */, 508 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */,
494 6E48AF0B1F2F9D3200C1D184 /* CustomTextField.h */, 509 6E48AF0B1F2F9D3200C1D184 /* CustomTextField.h */,
495 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */, 510 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */,
496 E9D909221F3D6E8C004CF99F /* BaseTableViewController.h */, 511 E9D909221F3D6E8C004CF99F /* BaseTableViewController.h */,
497 E9D909231F3D6E8C004CF99F /* BaseTableViewController.m */, 512 E9D909231F3D6E8C004CF99F /* BaseTableViewController.m */,
498 ); 513 );
499 name = BaseViewController; 514 name = BaseViewController;
500 sourceTree = "<group>"; 515 sourceTree = "<group>";
501 }; 516 };
502 9CBDA0FB1F2F03490055DED1 /* Register */ = { 517 9CBDA0FB1F2F03490055DED1 /* Register */ = {
503 isa = PBXGroup; 518 isa = PBXGroup;
504 children = ( 519 children = (
505 9CBDA0FC1F2F03810055DED1 /* RegisterViewController.h */, 520 9CBDA0FC1F2F03810055DED1 /* RegisterViewController.h */,
506 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */, 521 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */,
507 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */, 522 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */,
508 ); 523 );
509 name = Register; 524 name = Register;
510 sourceTree = "<group>"; 525 sourceTree = "<group>";
511 }; 526 };
512 DE8269E957EA47CD771BAB33 /* Pods */ = { 527 DE8269E957EA47CD771BAB33 /* Pods */ = {
513 isa = PBXGroup; 528 isa = PBXGroup;
514 children = ( 529 children = (
515 6E84E3721F27A700001EB88E /* Products */, 530 6E84E3721F27A700001EB88E /* Products */,
516 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */, 531 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */,
517 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */, 532 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */,
518 ); 533 );
519 name = Pods; 534 name = Pods;
520 sourceTree = "<group>"; 535 sourceTree = "<group>";
521 }; 536 };
522 E933E6671F3E0479002926F5 /* SeachGroup */ = { 537 E933E6671F3E0479002926F5 /* SeachGroup */ = {
523 isa = PBXGroup; 538 isa = PBXGroup;
524 children = ( 539 children = (
525 E933E6681F3E04A6002926F5 /* SearchGroupViewController.h */, 540 E933E6681F3E04A6002926F5 /* SearchGroupViewController.h */,
526 E933E6691F3E04A6002926F5 /* SearchGroupViewController.m */, 541 E933E6691F3E04A6002926F5 /* SearchGroupViewController.m */,
527 E933E66A1F3E04A6002926F5 /* SearchGroupViewController.xib */, 542 E933E66A1F3E04A6002926F5 /* SearchGroupViewController.xib */,
528 E933E66D1F3E09B6002926F5 /* SearchGroupTableViewCell.h */, 543 E933E66D1F3E09B6002926F5 /* SearchGroupTableViewCell.h */,
529 E933E66E1F3E09B6002926F5 /* SearchGroupTableViewCell.m */, 544 E933E66E1F3E09B6002926F5 /* SearchGroupTableViewCell.m */,
530 E933E66F1F3E09B6002926F5 /* SearchGroupTableViewCell.xib */, 545 E933E66F1F3E09B6002926F5 /* SearchGroupTableViewCell.xib */,
531 ); 546 );
532 name = SeachGroup; 547 name = SeachGroup;
533 sourceTree = "<group>"; 548 sourceTree = "<group>";
534 }; 549 };
535 E933E6751F4050E6002926F5 /* GrouDetail */ = { 550 E933E6751F4050E6002926F5 /* GrouDetail */ = {
536 isa = PBXGroup; 551 isa = PBXGroup;
537 children = ( 552 children = (
538 E933E6761F40513C002926F5 /* GroupDetailViewController.h */, 553 E933E6761F40513C002926F5 /* GroupDetailViewController.h */,
539 E933E6771F40513C002926F5 /* GroupDetailViewController.m */, 554 E933E6771F40513C002926F5 /* GroupDetailViewController.m */,
540 E933E6781F40513C002926F5 /* GroupDetailViewController.xib */, 555 E933E6781F40513C002926F5 /* GroupDetailViewController.xib */,
541 ); 556 );
542 name = GrouDetail; 557 name = GrouDetail;
543 sourceTree = "<group>"; 558 sourceTree = "<group>";
544 }; 559 };
545 E9373E441F35966D0059355A /* AutoTranslateView */ = { 560 E9373E441F35966D0059355A /* AutoTranslateView */ = {
546 isa = PBXGroup; 561 isa = PBXGroup;
547 children = ( 562 children = (
548 E9373E451F3596940059355A /* AutoTransLabel.h */, 563 E9373E451F3596940059355A /* AutoTransLabel.h */,
549 E9373E461F3596940059355A /* AutoTransLabel.m */, 564 E9373E461F3596940059355A /* AutoTransLabel.m */,
550 E96855081F3C444900317CEF /* AutoTransButton.h */, 565 E96855081F3C444900317CEF /* AutoTransButton.h */,
551 E96855091F3C444900317CEF /* AutoTransButton.m */, 566 E96855091F3C444900317CEF /* AutoTransButton.m */,
552 ); 567 );
553 name = AutoTranslateView; 568 name = AutoTranslateView;
554 sourceTree = "<group>"; 569 sourceTree = "<group>";
555 }; 570 };
556 E99E13A71F336F0C00C78787 /* CustomView */ = { 571 E99E13A71F336F0C00C78787 /* CustomView */ = {
557 isa = PBXGroup; 572 isa = PBXGroup;
558 children = ( 573 children = (
559 E9373E441F35966D0059355A /* AutoTranslateView */, 574 E9373E441F35966D0059355A /* AutoTranslateView */,
560 E99E13A81F336F1700C78787 /* CollectionView */, 575 E99E13A81F336F1700C78787 /* CollectionView */,
561 ); 576 );
562 name = CustomView; 577 name = CustomView;
563 sourceTree = "<group>"; 578 sourceTree = "<group>";
564 }; 579 };
565 E99E13A81F336F1700C78787 /* CollectionView */ = { 580 E99E13A81F336F1700C78787 /* CollectionView */ = {
566 isa = PBXGroup; 581 isa = PBXGroup;
567 children = ( 582 children = (
568 E99E13AE1F33720600C78787 /* LabelCollectionViewCell.h */, 583 E99E13AE1F33720600C78787 /* LabelCollectionViewCell.h */,
569 E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */, 584 E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */,
570 E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */, 585 E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */,
571 E99E13A91F336F3600C78787 /* CollectionView.h */, 586 E99E13A91F336F3600C78787 /* CollectionView.h */,
572 E99E13AA1F336F3600C78787 /* CollectionView.m */, 587 E99E13AA1F336F3600C78787 /* CollectionView.m */,
573 E99E13AC1F336F4500C78787 /* CollectionView.xib */, 588 E99E13AC1F336F4500C78787 /* CollectionView.xib */,
574 ); 589 );
575 name = CollectionView; 590 name = CollectionView;
576 sourceTree = "<group>"; 591 sourceTree = "<group>";
577 }; 592 };
578 /* End PBXGroup section */ 593 /* End PBXGroup section */
579 594
580 /* Begin PBXNativeTarget section */ 595 /* Begin PBXNativeTarget section */
581 6E84E3701F27A700001EB88E /* LifeLog */ = { 596 6E84E3701F27A700001EB88E /* LifeLog */ = {
582 isa = PBXNativeTarget; 597 isa = PBXNativeTarget;
583 buildConfigurationList = 6E84E39E1F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLog" */; 598 buildConfigurationList = 6E84E39E1F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLog" */;
584 buildPhases = ( 599 buildPhases = (
585 2BB22CAEC0728AA1E086BCE3 /* [CP] Check Pods Manifest.lock */, 600 2BB22CAEC0728AA1E086BCE3 /* [CP] Check Pods Manifest.lock */,
586 6E84E36D1F27A700001EB88E /* Sources */, 601 6E84E36D1F27A700001EB88E /* Sources */,
587 6E84E36E1F27A700001EB88E /* Frameworks */, 602 6E84E36E1F27A700001EB88E /* Frameworks */,
588 6E84E36F1F27A700001EB88E /* Resources */, 603 6E84E36F1F27A700001EB88E /* Resources */,
589 22F89B11794CEB4E265996AC /* [CP] Embed Pods Frameworks */, 604 22F89B11794CEB4E265996AC /* [CP] Embed Pods Frameworks */,
590 96653BDB2C24A87C2866C897 /* [CP] Copy Pods Resources */, 605 96653BDB2C24A87C2866C897 /* [CP] Copy Pods Resources */,
591 ); 606 );
592 buildRules = ( 607 buildRules = (
593 ); 608 );
594 dependencies = ( 609 dependencies = (
595 ); 610 );
596 name = LifeLog; 611 name = LifeLog;
597 productName = LifeLog; 612 productName = LifeLog;
598 productReference = 6E84E3711F27A700001EB88E /* LifeLog.app */; 613 productReference = 6E84E3711F27A700001EB88E /* LifeLog.app */;
599 productType = "com.apple.product-type.application"; 614 productType = "com.apple.product-type.application";
600 }; 615 };
601 6E84E3891F27A703001EB88E /* LifeLogTests */ = { 616 6E84E3891F27A703001EB88E /* LifeLogTests */ = {
602 isa = PBXNativeTarget; 617 isa = PBXNativeTarget;
603 buildConfigurationList = 6E84E3A11F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogTests" */; 618 buildConfigurationList = 6E84E3A11F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogTests" */;
604 buildPhases = ( 619 buildPhases = (
605 6E84E3861F27A703001EB88E /* Sources */, 620 6E84E3861F27A703001EB88E /* Sources */,
606 6E84E3871F27A703001EB88E /* Frameworks */, 621 6E84E3871F27A703001EB88E /* Frameworks */,
607 6E84E3881F27A703001EB88E /* Resources */, 622 6E84E3881F27A703001EB88E /* Resources */,
608 ); 623 );
609 buildRules = ( 624 buildRules = (
610 ); 625 );
611 dependencies = ( 626 dependencies = (
612 6E84E38C1F27A703001EB88E /* PBXTargetDependency */, 627 6E84E38C1F27A703001EB88E /* PBXTargetDependency */,
613 ); 628 );
614 name = LifeLogTests; 629 name = LifeLogTests;
615 productName = LifeLogTests; 630 productName = LifeLogTests;
616 productReference = 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */; 631 productReference = 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */;
617 productType = "com.apple.product-type.bundle.unit-test"; 632 productType = "com.apple.product-type.bundle.unit-test";
618 }; 633 };
619 6E84E3941F27A703001EB88E /* LifeLogUITests */ = { 634 6E84E3941F27A703001EB88E /* LifeLogUITests */ = {
620 isa = PBXNativeTarget; 635 isa = PBXNativeTarget;
621 buildConfigurationList = 6E84E3A41F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogUITests" */; 636 buildConfigurationList = 6E84E3A41F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogUITests" */;
622 buildPhases = ( 637 buildPhases = (
623 6E84E3911F27A703001EB88E /* Sources */, 638 6E84E3911F27A703001EB88E /* Sources */,
624 6E84E3921F27A703001EB88E /* Frameworks */, 639 6E84E3921F27A703001EB88E /* Frameworks */,
625 6E84E3931F27A703001EB88E /* Resources */, 640 6E84E3931F27A703001EB88E /* Resources */,
626 ); 641 );
627 buildRules = ( 642 buildRules = (
628 ); 643 );
629 dependencies = ( 644 dependencies = (
630 6E84E3971F27A703001EB88E /* PBXTargetDependency */, 645 6E84E3971F27A703001EB88E /* PBXTargetDependency */,
631 ); 646 );
632 name = LifeLogUITests; 647 name = LifeLogUITests;
633 productName = LifeLogUITests; 648 productName = LifeLogUITests;
634 productReference = 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */; 649 productReference = 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */;
635 productType = "com.apple.product-type.bundle.ui-testing"; 650 productType = "com.apple.product-type.bundle.ui-testing";
636 }; 651 };
637 /* End PBXNativeTarget section */ 652 /* End PBXNativeTarget section */
638 653
639 /* Begin PBXProject section */ 654 /* Begin PBXProject section */
640 6E84E3691F27A700001EB88E /* Project object */ = { 655 6E84E3691F27A700001EB88E /* Project object */ = {
641 isa = PBXProject; 656 isa = PBXProject;
642 attributes = { 657 attributes = {
643 LastUpgradeCheck = 0830; 658 LastUpgradeCheck = 0830;
644 ORGANIZATIONNAME = PhongNV; 659 ORGANIZATIONNAME = PhongNV;
645 TargetAttributes = { 660 TargetAttributes = {
646 6E84E3701F27A700001EB88E = { 661 6E84E3701F27A700001EB88E = {
647 CreatedOnToolsVersion = 8.3.3; 662 CreatedOnToolsVersion = 8.3.3;
648 DevelopmentTeam = UXU4V3VUN4; 663 DevelopmentTeam = UXU4V3VUN4;
649 ProvisioningStyle = Automatic; 664 ProvisioningStyle = Automatic;
650 }; 665 };
651 6E84E3891F27A703001EB88E = { 666 6E84E3891F27A703001EB88E = {
652 CreatedOnToolsVersion = 8.3.3; 667 CreatedOnToolsVersion = 8.3.3;
653 ProvisioningStyle = Automatic; 668 ProvisioningStyle = Automatic;
654 TestTargetID = 6E84E3701F27A700001EB88E; 669 TestTargetID = 6E84E3701F27A700001EB88E;
655 }; 670 };
656 6E84E3941F27A703001EB88E = { 671 6E84E3941F27A703001EB88E = {
657 CreatedOnToolsVersion = 8.3.3; 672 CreatedOnToolsVersion = 8.3.3;
658 ProvisioningStyle = Automatic; 673 ProvisioningStyle = Automatic;
659 TestTargetID = 6E84E3701F27A700001EB88E; 674 TestTargetID = 6E84E3701F27A700001EB88E;
660 }; 675 };
661 }; 676 };
662 }; 677 };
663 buildConfigurationList = 6E84E36C1F27A700001EB88E /* Build configuration list for PBXProject "LifeLog" */; 678 buildConfigurationList = 6E84E36C1F27A700001EB88E /* Build configuration list for PBXProject "LifeLog" */;
664 compatibilityVersion = "Xcode 3.2"; 679 compatibilityVersion = "Xcode 3.2";
665 developmentRegion = English; 680 developmentRegion = English;
666 hasScannedForEncodings = 0; 681 hasScannedForEncodings = 0;
667 knownRegions = ( 682 knownRegions = (
668 en, 683 en,
669 Base, 684 Base,
670 ); 685 );
671 mainGroup = 6E84E3681F27A700001EB88E; 686 mainGroup = 6E84E3681F27A700001EB88E;
672 productRefGroup = 6E84E3721F27A700001EB88E /* Products */; 687 productRefGroup = 6E84E3721F27A700001EB88E /* Products */;
673 projectDirPath = ""; 688 projectDirPath = "";
674 projectRoot = ""; 689 projectRoot = "";
675 targets = ( 690 targets = (
676 6E84E3701F27A700001EB88E /* LifeLog */, 691 6E84E3701F27A700001EB88E /* LifeLog */,
677 6E84E3891F27A703001EB88E /* LifeLogTests */, 692 6E84E3891F27A703001EB88E /* LifeLogTests */,
678 6E84E3941F27A703001EB88E /* LifeLogUITests */, 693 6E84E3941F27A703001EB88E /* LifeLogUITests */,
679 ); 694 );
680 }; 695 };
681 /* End PBXProject section */ 696 /* End PBXProject section */
682 697
683 /* Begin PBXResourcesBuildPhase section */ 698 /* Begin PBXResourcesBuildPhase section */
684 6E84E36F1F27A700001EB88E /* Resources */ = { 699 6E84E36F1F27A700001EB88E /* Resources */ = {
685 isa = PBXResourcesBuildPhase; 700 isa = PBXResourcesBuildPhase;
686 buildActionMask = 2147483647; 701 buildActionMask = 2147483647;
687 files = ( 702 files = (
688 9CBDA1001F2F03810055DED1 /* RegisterViewController.xib in Resources */, 703 9CBDA1001F2F03810055DED1 /* RegisterViewController.xib in Resources */,
689 6E18CED41F2E39DB0029891F /* LoginViewController.xib in Resources */, 704 6E18CED41F2E39DB0029891F /* LoginViewController.xib in Resources */,
690 E99E13AD1F336F4500C78787 /* CollectionView.xib in Resources */, 705 E99E13AD1F336F4500C78787 /* CollectionView.xib in Resources */,
691 6E84E3BB1F27A9A0001EB88E /* RankingViewController.xib in Resources */, 706 6E84E3BB1F27A9A0001EB88E /* RankingViewController.xib in Resources */,
692 9CA8AEEB1F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib in Resources */, 707 9CA8AEEB1F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib in Resources */,
693 6E84E3C01F27A9B1001EB88E /* SNSViewController.xib in Resources */, 708 6E84E3C01F27A9B1001EB88E /* SNSViewController.xib in Resources */,
694 E9682E2F1F39675A00FE05A2 /* RankingTableViewCell.xib in Resources */, 709 E9682E2F1F39675A00FE05A2 /* RankingTableViewCell.xib in Resources */,
695 E933E6711F3E09B6002926F5 /* SearchGroupTableViewCell.xib in Resources */, 710 E933E6711F3E09B6002926F5 /* SearchGroupTableViewCell.xib in Resources */,
696 6E8DA0F81F2BAC3500CCE941 /* TodayViewController.xib in Resources */, 711 6E8DA0F81F2BAC3500CCE941 /* TodayViewController.xib in Resources */,
697 6E84E3841F27A701001EB88E /* LaunchScreen.storyboard in Resources */, 712 6E84E3841F27A701001EB88E /* LaunchScreen.storyboard in Resources */,
698 6E84E3811F27A701001EB88E /* Assets.xcassets in Resources */, 713 6E84E3811F27A701001EB88E /* Assets.xcassets in Resources */,
699 6E84E3C61F27ACAE001EB88E /* MapViewController.xib in Resources */, 714 6E84E3C61F27ACAE001EB88E /* MapViewController.xib in Resources */,
700 6EF1630A1F29069300DA306C /* Localizable.strings in Resources */, 715 6EF1630A1F29069300DA306C /* Localizable.strings in Resources */,
701 6E84E3B11F27A975001EB88E /* HomeViewController.xib in Resources */, 716 6E84E3B11F27A975001EB88E /* HomeViewController.xib in Resources */,
702 6E84E3B61F27A98B001EB88E /* HistoryViewController.xib in Resources */, 717 6E84E3B61F27A98B001EB88E /* HistoryViewController.xib in Resources */,
703 E933E66C1F3E04A6002926F5 /* SearchGroupViewController.xib in Resources */, 718 E933E66C1F3E04A6002926F5 /* SearchGroupViewController.xib in Resources */,
704 E96855121F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib in Resources */, 719 E96855121F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib in Resources */,
705 E933E67A1F40513C002926F5 /* GroupDetailViewController.xib in Resources */, 720 E933E67A1F40513C002926F5 /* GroupDetailViewController.xib in Resources */,
706 E99E13B21F33720600C78787 /* LabelCollectionViewCell.xib in Resources */, 721 E99E13B21F33720600C78787 /* LabelCollectionViewCell.xib in Resources */,
707 E9F73DCD1F338A0F004A3A6F /* HistoryListTableViewCell.xib in Resources */, 722 E9F73DCD1F338A0F004A3A6F /* HistoryListTableViewCell.xib in Resources */,
708 ); 723 );
709 runOnlyForDeploymentPostprocessing = 0; 724 runOnlyForDeploymentPostprocessing = 0;
710 }; 725 };
711 6E84E3881F27A703001EB88E /* Resources */ = { 726 6E84E3881F27A703001EB88E /* Resources */ = {
712 isa = PBXResourcesBuildPhase; 727 isa = PBXResourcesBuildPhase;
713 buildActionMask = 2147483647; 728 buildActionMask = 2147483647;
714 files = ( 729 files = (
715 ); 730 );
716 runOnlyForDeploymentPostprocessing = 0; 731 runOnlyForDeploymentPostprocessing = 0;
717 }; 732 };
718 6E84E3931F27A703001EB88E /* Resources */ = { 733 6E84E3931F27A703001EB88E /* Resources */ = {
719 isa = PBXResourcesBuildPhase; 734 isa = PBXResourcesBuildPhase;
720 buildActionMask = 2147483647; 735 buildActionMask = 2147483647;
721 files = ( 736 files = (
722 ); 737 );
723 runOnlyForDeploymentPostprocessing = 0; 738 runOnlyForDeploymentPostprocessing = 0;
724 }; 739 };
725 /* End PBXResourcesBuildPhase section */ 740 /* End PBXResourcesBuildPhase section */
726 741
727 /* Begin PBXShellScriptBuildPhase section */ 742 /* Begin PBXShellScriptBuildPhase section */
728 22F89B11794CEB4E265996AC /* [CP] Embed Pods Frameworks */ = { 743 22F89B11794CEB4E265996AC /* [CP] Embed Pods Frameworks */ = {
729 isa = PBXShellScriptBuildPhase; 744 isa = PBXShellScriptBuildPhase;
730 buildActionMask = 2147483647; 745 buildActionMask = 2147483647;
731 files = ( 746 files = (
732 ); 747 );
733 inputPaths = ( 748 inputPaths = (
734 ); 749 );
735 name = "[CP] Embed Pods Frameworks"; 750 name = "[CP] Embed Pods Frameworks";
736 outputPaths = ( 751 outputPaths = (
737 ); 752 );
738 runOnlyForDeploymentPostprocessing = 0; 753 runOnlyForDeploymentPostprocessing = 0;
739 shellPath = /bin/sh; 754 shellPath = /bin/sh;
740 shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog-frameworks.sh\"\n"; 755 shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog-frameworks.sh\"\n";
741 showEnvVarsInLog = 0; 756 showEnvVarsInLog = 0;
742 }; 757 };
743 2BB22CAEC0728AA1E086BCE3 /* [CP] Check Pods Manifest.lock */ = { 758 2BB22CAEC0728AA1E086BCE3 /* [CP] Check Pods Manifest.lock */ = {
744 isa = PBXShellScriptBuildPhase; 759 isa = PBXShellScriptBuildPhase;
745 buildActionMask = 2147483647; 760 buildActionMask = 2147483647;
746 files = ( 761 files = (
747 ); 762 );
748 inputPaths = ( 763 inputPaths = (
749 ); 764 );
750 name = "[CP] Check Pods Manifest.lock"; 765 name = "[CP] Check Pods Manifest.lock";
751 outputPaths = ( 766 outputPaths = (
752 ); 767 );
753 runOnlyForDeploymentPostprocessing = 0; 768 runOnlyForDeploymentPostprocessing = 0;
754 shellPath = /bin/sh; 769 shellPath = /bin/sh;
755 shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; 770 shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
756 showEnvVarsInLog = 0; 771 showEnvVarsInLog = 0;
757 }; 772 };
758 96653BDB2C24A87C2866C897 /* [CP] Copy Pods Resources */ = { 773 96653BDB2C24A87C2866C897 /* [CP] Copy Pods Resources */ = {
759 isa = PBXShellScriptBuildPhase; 774 isa = PBXShellScriptBuildPhase;
760 buildActionMask = 2147483647; 775 buildActionMask = 2147483647;
761 files = ( 776 files = (
762 ); 777 );
763 inputPaths = ( 778 inputPaths = (
764 ); 779 );
765 name = "[CP] Copy Pods Resources"; 780 name = "[CP] Copy Pods Resources";
766 outputPaths = ( 781 outputPaths = (
767 ); 782 );
768 runOnlyForDeploymentPostprocessing = 0; 783 runOnlyForDeploymentPostprocessing = 0;
769 shellPath = /bin/sh; 784 shellPath = /bin/sh;
770 shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog-resources.sh\"\n"; 785 shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog-resources.sh\"\n";
771 showEnvVarsInLog = 0; 786 showEnvVarsInLog = 0;
772 }; 787 };
773 /* End PBXShellScriptBuildPhase section */ 788 /* End PBXShellScriptBuildPhase section */
774 789
775 /* Begin PBXSourcesBuildPhase section */ 790 /* Begin PBXSourcesBuildPhase section */
776 6E84E36D1F27A700001EB88E /* Sources */ = { 791 6E84E36D1F27A700001EB88E /* Sources */ = {
777 isa = PBXSourcesBuildPhase; 792 isa = PBXSourcesBuildPhase;
778 buildActionMask = 2147483647; 793 buildActionMask = 2147483647;
779 files = ( 794 files = (
780 6E18CED81F2E3C840029891F /* ServerAPI.m in Sources */, 795 6E18CED81F2E3C840029891F /* ServerAPI.m in Sources */,
781 6E7F93431F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m in Sources */, 796 6E7F93431F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m in Sources */,
782 6E7F93421F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m in Sources */, 797 6E7F93421F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m in Sources */,
783 E968550A1F3C444900317CEF /* AutoTransButton.m in Sources */, 798 E968550A1F3C444900317CEF /* AutoTransButton.m in Sources */,
799 6EA4AF321F40BB7A00F52CFE /* TargetInfor.m in Sources */,
784 E933E6741F3E0E4E002926F5 /* GroupObject.m in Sources */, 800 E933E6741F3E0E4E002926F5 /* GroupObject.m in Sources */,
785 9CBDA0FA1F2ECE2C0055DED1 /* BaseViewController.m in Sources */, 801 9CBDA0FA1F2ECE2C0055DED1 /* BaseViewController.m in Sources */,
786 6E8DA0F71F2BAC3400CCE941 /* TodayViewController.m in Sources */, 802 6E8DA0F71F2BAC3400CCE941 /* TodayViewController.m in Sources */,
787 6E7F93451F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m in Sources */, 803 6E7F93451F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m in Sources */,
788 E9682E2E1F39675A00FE05A2 /* RankingTableViewCell.m in Sources */, 804 E9682E2E1F39675A00FE05A2 /* RankingTableViewCell.m in Sources */,
789 E9D909211F3D559D004CF99F /* TweetObject.m in Sources */, 805 E9D909211F3D559D004CF99F /* TweetObject.m in Sources */,
790 6E48AF0D1F2F9D3300C1D184 /* CustomTextField.m in Sources */, 806 6E48AF0D1F2F9D3300C1D184 /* CustomTextField.m in Sources */,
791 E99E13AB1F336F3600C78787 /* CollectionView.m in Sources */, 807 E99E13AB1F336F3600C78787 /* CollectionView.m in Sources */,
792 6E84E3B01F27A975001EB88E /* HomeViewController.m in Sources */, 808 6E84E3B01F27A975001EB88E /* HomeViewController.m in Sources */,
793 E9373E471F3596940059355A /* AutoTransLabel.m in Sources */, 809 E9373E471F3596940059355A /* AutoTransLabel.m in Sources */,
794 6E84E3791F27A701001EB88E /* AppDelegate.m in Sources */, 810 6E84E3791F27A701001EB88E /* AppDelegate.m in Sources */,
795 6E84E3BA1F27A9A0001EB88E /* RankingViewController.m in Sources */, 811 6E84E3BA1F27A9A0001EB88E /* RankingViewController.m in Sources */,
796 6E7F93441F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m in Sources */, 812 6E7F93441F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m in Sources */,
797 E9F73DCC1F338A0F004A3A6F /* HistoryListTableViewCell.m in Sources */, 813 E9F73DCC1F338A0F004A3A6F /* HistoryListTableViewCell.m in Sources */,
798 6EDC8BF41F2C68D700765ACC /* CMMotionActivityExtra.m in Sources */, 814 6EDC8BF41F2C68D700765ACC /* CMMotionActivityExtra.m in Sources */,
799 E933E6791F40513C002926F5 /* GroupDetailViewController.m in Sources */, 815 E933E6791F40513C002926F5 /* GroupDetailViewController.m in Sources */,
816 6EA4AF311F40BB7A00F52CFE /* StepObject.m in Sources */,
800 9CBDA0FF1F2F03810055DED1 /* RegisterViewController.m in Sources */, 817 9CBDA0FF1F2F03810055DED1 /* RegisterViewController.m in Sources */,
801 E9373E4A1F35AA180059355A /* HistoryObject.m in Sources */, 818 E9373E4A1F35AA180059355A /* HistoryObject.m in Sources */,
802 9CA8AEEA1F31BB4600C5FC74 /* ConfirmForgetPassViewController.m in Sources */, 819 9CA8AEEA1F31BB4600C5FC74 /* ConfirmForgetPassViewController.m in Sources */,
803 E99E13B11F33720600C78787 /* LabelCollectionViewCell.m in Sources */, 820 E99E13B11F33720600C78787 /* LabelCollectionViewCell.m in Sources */,
804 6EDC8BEE1F2C2FB800765ACC /* Utilities.m in Sources */, 821 6EDC8BEE1F2C2FB800765ACC /* Utilities.m in Sources */,
805 E96855111F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m in Sources */, 822 E96855111F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m in Sources */,
806 6E84E3C51F27ACAE001EB88E /* MapViewController.m in Sources */, 823 6E84E3C51F27ACAE001EB88E /* MapViewController.m in Sources */,
807 6E18CEDC1F2E40F50029891F /* User.m in Sources */, 824 6E18CEDC1F2E40F50029891F /* User.m in Sources */,
808 6ECC40711F2A5FEB00AAEB97 /* NSDate+helper.m in Sources */, 825 6ECC40711F2A5FEB00AAEB97 /* NSDate+helper.m in Sources */,
809 6E18CED31F2E39DB0029891F /* LoginViewController.m in Sources */, 826 6E18CED31F2E39DB0029891F /* LoginViewController.m in Sources */,
827 6EA4AF331F40BB7A00F52CFE /* TopObject.m in Sources */,
810 E9D909241F3D6E8C004CF99F /* BaseTableViewController.m in Sources */, 828 E9D909241F3D6E8C004CF99F /* BaseTableViewController.m in Sources */,
811 6E84E3761F27A701001EB88E /* main.m in Sources */, 829 6E84E3761F27A701001EB88E /* main.m in Sources */,
812 E933E6701F3E09B6002926F5 /* SearchGroupTableViewCell.m in Sources */, 830 E933E6701F3E09B6002926F5 /* SearchGroupTableViewCell.m in Sources */,
813 6E84E3B51F27A98B001EB88E /* HistoryViewController.m in Sources */, 831 6E84E3B51F27A98B001EB88E /* HistoryViewController.m in Sources */,
814 E9373E4D1F361A230059355A /* HistoryGraphObject.m in Sources */, 832 E9373E4D1F361A230059355A /* HistoryGraphObject.m in Sources */,
815 E933E66B1F3E04A6002926F5 /* SearchGroupViewController.m in Sources */, 833 E933E66B1F3E04A6002926F5 /* SearchGroupViewController.m in Sources */,
816 6E84E3BF1F27A9B1001EB88E /* SNSViewController.m in Sources */, 834 6E84E3BF1F27A9B1001EB88E /* SNSViewController.m in Sources */,
817 ); 835 );
818 runOnlyForDeploymentPostprocessing = 0; 836 runOnlyForDeploymentPostprocessing = 0;
819 }; 837 };
820 6E84E3861F27A703001EB88E /* Sources */ = { 838 6E84E3861F27A703001EB88E /* Sources */ = {
821 isa = PBXSourcesBuildPhase; 839 isa = PBXSourcesBuildPhase;
822 buildActionMask = 2147483647; 840 buildActionMask = 2147483647;
823 files = ( 841 files = (
824 6E84E38F1F27A703001EB88E /* LifeLogTests.m in Sources */, 842 6E84E38F1F27A703001EB88E /* LifeLogTests.m in Sources */,
825 ); 843 );
826 runOnlyForDeploymentPostprocessing = 0; 844 runOnlyForDeploymentPostprocessing = 0;
827 }; 845 };
828 6E84E3911F27A703001EB88E /* Sources */ = { 846 6E84E3911F27A703001EB88E /* Sources */ = {
829 isa = PBXSourcesBuildPhase; 847 isa = PBXSourcesBuildPhase;
830 buildActionMask = 2147483647; 848 buildActionMask = 2147483647;
831 files = ( 849 files = (
832 6E84E39A1F27A703001EB88E /* LifeLogUITests.m in Sources */, 850 6E84E39A1F27A703001EB88E /* LifeLogUITests.m in Sources */,
833 ); 851 );
834 runOnlyForDeploymentPostprocessing = 0; 852 runOnlyForDeploymentPostprocessing = 0;
835 }; 853 };
836 /* End PBXSourcesBuildPhase section */ 854 /* End PBXSourcesBuildPhase section */
837 855
838 /* Begin PBXTargetDependency section */ 856 /* Begin PBXTargetDependency section */
839 6E84E38C1F27A703001EB88E /* PBXTargetDependency */ = { 857 6E84E38C1F27A703001EB88E /* PBXTargetDependency */ = {
840 isa = PBXTargetDependency; 858 isa = PBXTargetDependency;
841 target = 6E84E3701F27A700001EB88E /* LifeLog */; 859 target = 6E84E3701F27A700001EB88E /* LifeLog */;
842 targetProxy = 6E84E38B1F27A703001EB88E /* PBXContainerItemProxy */; 860 targetProxy = 6E84E38B1F27A703001EB88E /* PBXContainerItemProxy */;
843 }; 861 };
844 6E84E3971F27A703001EB88E /* PBXTargetDependency */ = { 862 6E84E3971F27A703001EB88E /* PBXTargetDependency */ = {
845 isa = PBXTargetDependency; 863 isa = PBXTargetDependency;
846 target = 6E84E3701F27A700001EB88E /* LifeLog */; 864 target = 6E84E3701F27A700001EB88E /* LifeLog */;
847 targetProxy = 6E84E3961F27A703001EB88E /* PBXContainerItemProxy */; 865 targetProxy = 6E84E3961F27A703001EB88E /* PBXContainerItemProxy */;
848 }; 866 };
849 /* End PBXTargetDependency section */ 867 /* End PBXTargetDependency section */
850 868
851 /* Begin PBXVariantGroup section */ 869 /* Begin PBXVariantGroup section */
852 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */ = { 870 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */ = {
853 isa = PBXVariantGroup; 871 isa = PBXVariantGroup;
854 children = ( 872 children = (
855 6E84E3831F27A701001EB88E /* Base */, 873 6E84E3831F27A701001EB88E /* Base */,
856 ); 874 );
857 name = LaunchScreen.storyboard; 875 name = LaunchScreen.storyboard;
858 sourceTree = "<group>"; 876 sourceTree = "<group>";
859 }; 877 };
860 /* End PBXVariantGroup section */ 878 /* End PBXVariantGroup section */
861 879
862 /* Begin XCBuildConfiguration section */ 880 /* Begin XCBuildConfiguration section */
863 6E84E39C1F27A703001EB88E /* Debug */ = { 881 6E84E39C1F27A703001EB88E /* Debug */ = {
864 isa = XCBuildConfiguration; 882 isa = XCBuildConfiguration;
865 buildSettings = { 883 buildSettings = {
866 ALWAYS_SEARCH_USER_PATHS = NO; 884 ALWAYS_SEARCH_USER_PATHS = NO;
867 CLANG_ANALYZER_NONNULL = YES; 885 CLANG_ANALYZER_NONNULL = YES;
868 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 886 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
869 CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 887 CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
870 CLANG_CXX_LIBRARY = "libc++"; 888 CLANG_CXX_LIBRARY = "libc++";
871 CLANG_ENABLE_MODULES = YES; 889 CLANG_ENABLE_MODULES = YES;
872 CLANG_ENABLE_OBJC_ARC = YES; 890 CLANG_ENABLE_OBJC_ARC = YES;
873 CLANG_WARN_BOOL_CONVERSION = YES; 891 CLANG_WARN_BOOL_CONVERSION = YES;
874 CLANG_WARN_CONSTANT_CONVERSION = YES; 892 CLANG_WARN_CONSTANT_CONVERSION = YES;
875 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 893 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
876 CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 894 CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
877 CLANG_WARN_EMPTY_BODY = YES; 895 CLANG_WARN_EMPTY_BODY = YES;
878 CLANG_WARN_ENUM_CONVERSION = YES; 896 CLANG_WARN_ENUM_CONVERSION = YES;
879 CLANG_WARN_INFINITE_RECURSION = YES; 897 CLANG_WARN_INFINITE_RECURSION = YES;
880 CLANG_WARN_INT_CONVERSION = YES; 898 CLANG_WARN_INT_CONVERSION = YES;
881 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 899 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
882 CLANG_WARN_SUSPICIOUS_MOVE = YES; 900 CLANG_WARN_SUSPICIOUS_MOVE = YES;
883 CLANG_WARN_UNREACHABLE_CODE = YES; 901 CLANG_WARN_UNREACHABLE_CODE = YES;
884 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 902 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
885 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 903 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
886 COPY_PHASE_STRIP = NO; 904 COPY_PHASE_STRIP = NO;
887 DEBUG_INFORMATION_FORMAT = dwarf; 905 DEBUG_INFORMATION_FORMAT = dwarf;
888 ENABLE_STRICT_OBJC_MSGSEND = YES; 906 ENABLE_STRICT_OBJC_MSGSEND = YES;
889 ENABLE_TESTABILITY = YES; 907 ENABLE_TESTABILITY = YES;
890 GCC_C_LANGUAGE_STANDARD = gnu99; 908 GCC_C_LANGUAGE_STANDARD = gnu99;
891 GCC_DYNAMIC_NO_PIC = NO; 909 GCC_DYNAMIC_NO_PIC = NO;
892 GCC_NO_COMMON_BLOCKS = YES; 910 GCC_NO_COMMON_BLOCKS = YES;
893 GCC_OPTIMIZATION_LEVEL = 0; 911 GCC_OPTIMIZATION_LEVEL = 0;
894 GCC_PREPROCESSOR_DEFINITIONS = ( 912 GCC_PREPROCESSOR_DEFINITIONS = (
895 "DEBUG=1", 913 "DEBUG=1",
896 "$(inherited)", 914 "$(inherited)",
897 ); 915 );
898 GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 916 GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
899 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 917 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
900 GCC_WARN_UNDECLARED_SELECTOR = YES; 918 GCC_WARN_UNDECLARED_SELECTOR = YES;
901 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 919 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
902 GCC_WARN_UNUSED_FUNCTION = YES; 920 GCC_WARN_UNUSED_FUNCTION = YES;
903 GCC_WARN_UNUSED_VARIABLE = YES; 921 GCC_WARN_UNUSED_VARIABLE = YES;
904 IPHONEOS_DEPLOYMENT_TARGET = 10.3; 922 IPHONEOS_DEPLOYMENT_TARGET = 10.3;
905 MTL_ENABLE_DEBUG_INFO = YES; 923 MTL_ENABLE_DEBUG_INFO = YES;
906 ONLY_ACTIVE_ARCH = YES; 924 ONLY_ACTIVE_ARCH = YES;
907 SDKROOT = iphoneos; 925 SDKROOT = iphoneos;
908 TARGETED_DEVICE_FAMILY = "1,2"; 926 TARGETED_DEVICE_FAMILY = "1,2";
909 }; 927 };
910 name = Debug; 928 name = Debug;
911 }; 929 };
912 6E84E39D1F27A703001EB88E /* Release */ = { 930 6E84E39D1F27A703001EB88E /* Release */ = {
913 isa = XCBuildConfiguration; 931 isa = XCBuildConfiguration;
914 buildSettings = { 932 buildSettings = {
915 ALWAYS_SEARCH_USER_PATHS = NO; 933 ALWAYS_SEARCH_USER_PATHS = NO;
916 CLANG_ANALYZER_NONNULL = YES; 934 CLANG_ANALYZER_NONNULL = YES;
917 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 935 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
918 CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 936 CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
919 CLANG_CXX_LIBRARY = "libc++"; 937 CLANG_CXX_LIBRARY = "libc++";
920 CLANG_ENABLE_MODULES = YES; 938 CLANG_ENABLE_MODULES = YES;
921 CLANG_ENABLE_OBJC_ARC = YES; 939 CLANG_ENABLE_OBJC_ARC = YES;
922 CLANG_WARN_BOOL_CONVERSION = YES; 940 CLANG_WARN_BOOL_CONVERSION = YES;
923 CLANG_WARN_CONSTANT_CONVERSION = YES; 941 CLANG_WARN_CONSTANT_CONVERSION = YES;
924 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 942 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
925 CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 943 CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
926 CLANG_WARN_EMPTY_BODY = YES; 944 CLANG_WARN_EMPTY_BODY = YES;
927 CLANG_WARN_ENUM_CONVERSION = YES; 945 CLANG_WARN_ENUM_CONVERSION = YES;
928 CLANG_WARN_INFINITE_RECURSION = YES; 946 CLANG_WARN_INFINITE_RECURSION = YES;
929 CLANG_WARN_INT_CONVERSION = YES; 947 CLANG_WARN_INT_CONVERSION = YES;
930 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 948 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
931 CLANG_WARN_SUSPICIOUS_MOVE = YES; 949 CLANG_WARN_SUSPICIOUS_MOVE = YES;
932 CLANG_WARN_UNREACHABLE_CODE = YES; 950 CLANG_WARN_UNREACHABLE_CODE = YES;
933 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 951 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
934 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 952 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
935 COPY_PHASE_STRIP = NO; 953 COPY_PHASE_STRIP = NO;
936 DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 954 DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
937 ENABLE_NS_ASSERTIONS = NO; 955 ENABLE_NS_ASSERTIONS = NO;
938 ENABLE_STRICT_OBJC_MSGSEND = YES; 956 ENABLE_STRICT_OBJC_MSGSEND = YES;
939 GCC_C_LANGUAGE_STANDARD = gnu99; 957 GCC_C_LANGUAGE_STANDARD = gnu99;
940 GCC_NO_COMMON_BLOCKS = YES; 958 GCC_NO_COMMON_BLOCKS = YES;
941 GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 959 GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
942 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 960 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
943 GCC_WARN_UNDECLARED_SELECTOR = YES; 961 GCC_WARN_UNDECLARED_SELECTOR = YES;
944 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 962 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
945 GCC_WARN_UNUSED_FUNCTION = YES; 963 GCC_WARN_UNUSED_FUNCTION = YES;
946 GCC_WARN_UNUSED_VARIABLE = YES; 964 GCC_WARN_UNUSED_VARIABLE = YES;
947 IPHONEOS_DEPLOYMENT_TARGET = 10.3; 965 IPHONEOS_DEPLOYMENT_TARGET = 10.3;
948 MTL_ENABLE_DEBUG_INFO = NO; 966 MTL_ENABLE_DEBUG_INFO = NO;
949 SDKROOT = iphoneos; 967 SDKROOT = iphoneos;
950 TARGETED_DEVICE_FAMILY = "1,2"; 968 TARGETED_DEVICE_FAMILY = "1,2";
951 VALIDATE_PRODUCT = YES; 969 VALIDATE_PRODUCT = YES;
952 }; 970 };
953 name = Release; 971 name = Release;
954 }; 972 };
955 6E84E39F1F27A703001EB88E /* Debug */ = { 973 6E84E39F1F27A703001EB88E /* Debug */ = {
956 isa = XCBuildConfiguration; 974 isa = XCBuildConfiguration;
957 baseConfigurationReference = 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */; 975 baseConfigurationReference = 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */;
958 buildSettings = { 976 buildSettings = {
959 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 977 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
960 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 978 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
961 DEVELOPMENT_TEAM = ""; 979 DEVELOPMENT_TEAM = "";
962 INFOPLIST_FILE = LifeLog/Info.plist; 980 INFOPLIST_FILE = LifeLog/Info.plist;
963 IPHONEOS_DEPLOYMENT_TARGET = 9.0; 981 IPHONEOS_DEPLOYMENT_TARGET = 9.0;
964 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 982 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
965 OTHER_LDFLAGS = ( 983 OTHER_LDFLAGS = (
966 "$(inherited)", 984 "$(inherited)",
967 "-framework", 985 "-framework",
968 "\"CircleProgressBar\"", 986 "\"CircleProgressBar\"",
969 "-all_load", 987 "-all_load",
970 "-ObjC", 988 "-ObjC",
971 ); 989 );
972 PRODUCT_BUNDLE_IDENTIFIER = mobileworld.jp.lifelog; 990 PRODUCT_BUNDLE_IDENTIFIER = mobileworld.jp.lifelog;
973 PRODUCT_NAME = "$(TARGET_NAME)"; 991 PRODUCT_NAME = "$(TARGET_NAME)";
974 PROVISIONING_PROFILE = ""; 992 PROVISIONING_PROFILE = "";
975 PROVISIONING_PROFILE_SPECIFIER = ""; 993 PROVISIONING_PROFILE_SPECIFIER = "";
976 }; 994 };
977 name = Debug; 995 name = Debug;
978 }; 996 };
979 6E84E3A01F27A703001EB88E /* Release */ = { 997 6E84E3A01F27A703001EB88E /* Release */ = {
980 isa = XCBuildConfiguration; 998 isa = XCBuildConfiguration;
981 baseConfigurationReference = 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */; 999 baseConfigurationReference = 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */;
982 buildSettings = { 1000 buildSettings = {
983 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 1001 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
984 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 1002 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
985 DEVELOPMENT_TEAM = ""; 1003 DEVELOPMENT_TEAM = "";
986 INFOPLIST_FILE = LifeLog/Info.plist; 1004 INFOPLIST_FILE = LifeLog/Info.plist;
987 IPHONEOS_DEPLOYMENT_TARGET = 9.0; 1005 IPHONEOS_DEPLOYMENT_TARGET = 9.0;
988 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 1006 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
989 OTHER_LDFLAGS = ( 1007 OTHER_LDFLAGS = (
990 "$(inherited)", 1008 "$(inherited)",
991 "-framework", 1009 "-framework",
992 "\"CircleProgressBar\"", 1010 "\"CircleProgressBar\"",
993 "-all_load", 1011 "-all_load",
994 "-ObjC", 1012 "-ObjC",
995 ); 1013 );
996 PRODUCT_BUNDLE_IDENTIFIER = mobileworld.jp.lifelog; 1014 PRODUCT_BUNDLE_IDENTIFIER = mobileworld.jp.lifelog;
997 PRODUCT_NAME = "$(TARGET_NAME)"; 1015 PRODUCT_NAME = "$(TARGET_NAME)";
998 PROVISIONING_PROFILE = ""; 1016 PROVISIONING_PROFILE = "";
999 PROVISIONING_PROFILE_SPECIFIER = ""; 1017 PROVISIONING_PROFILE_SPECIFIER = "";
1000 }; 1018 };
1001 name = Release; 1019 name = Release;
1002 }; 1020 };
1003 6E84E3A21F27A703001EB88E /* Debug */ = { 1021 6E84E3A21F27A703001EB88E /* Debug */ = {
1004 isa = XCBuildConfiguration; 1022 isa = XCBuildConfiguration;
1005 buildSettings = { 1023 buildSettings = {
1006 BUNDLE_LOADER = "$(TEST_HOST)"; 1024 BUNDLE_LOADER = "$(TEST_HOST)";
1007 INFOPLIST_FILE = LifeLogTests/Info.plist; 1025 INFOPLIST_FILE = LifeLogTests/Info.plist;
1008 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 1026 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1009 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogTests; 1027 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogTests;
1010 PRODUCT_NAME = "$(TARGET_NAME)"; 1028 PRODUCT_NAME = "$(TARGET_NAME)";
1011 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LifeLog.app/LifeLog"; 1029 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LifeLog.app/LifeLog";
1012 }; 1030 };
1013 name = Debug; 1031 name = Debug;
1014 }; 1032 };
1015 6E84E3A31F27A703001EB88E /* Release */ = { 1033 6E84E3A31F27A703001EB88E /* Release */ = {
1016 isa = XCBuildConfiguration; 1034 isa = XCBuildConfiguration;
1017 buildSettings = { 1035 buildSettings = {
1018 BUNDLE_LOADER = "$(TEST_HOST)"; 1036 BUNDLE_LOADER = "$(TEST_HOST)";
1019 INFOPLIST_FILE = LifeLogTests/Info.plist; 1037 INFOPLIST_FILE = LifeLogTests/Info.plist;
1020 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 1038 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1021 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogTests; 1039 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogTests;
1022 PRODUCT_NAME = "$(TARGET_NAME)"; 1040 PRODUCT_NAME = "$(TARGET_NAME)";
1023 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LifeLog.app/LifeLog"; 1041 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LifeLog.app/LifeLog";
1024 }; 1042 };
1025 name = Release; 1043 name = Release;
1026 }; 1044 };
1027 6E84E3A51F27A703001EB88E /* Debug */ = { 1045 6E84E3A51F27A703001EB88E /* Debug */ = {
1028 isa = XCBuildConfiguration; 1046 isa = XCBuildConfiguration;
1029 buildSettings = { 1047 buildSettings = {
1030 INFOPLIST_FILE = LifeLogUITests/Info.plist; 1048 INFOPLIST_FILE = LifeLogUITests/Info.plist;
1031 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 1049 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1032 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogUITests; 1050 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogUITests;
1033 PRODUCT_NAME = "$(TARGET_NAME)"; 1051 PRODUCT_NAME = "$(TARGET_NAME)";
1034 TEST_TARGET_NAME = LifeLog; 1052 TEST_TARGET_NAME = LifeLog;
1035 }; 1053 };
1036 name = Debug; 1054 name = Debug;
1037 }; 1055 };
1038 6E84E3A61F27A703001EB88E /* Release */ = { 1056 6E84E3A61F27A703001EB88E /* Release */ = {
1039 isa = XCBuildConfiguration; 1057 isa = XCBuildConfiguration;
1040 buildSettings = { 1058 buildSettings = {
1041 INFOPLIST_FILE = LifeLogUITests/Info.plist; 1059 INFOPLIST_FILE = LifeLogUITests/Info.plist;
1042 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 1060 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1043 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogUITests; 1061 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogUITests;
1044 PRODUCT_NAME = "$(TARGET_NAME)"; 1062 PRODUCT_NAME = "$(TARGET_NAME)";
1045 TEST_TARGET_NAME = LifeLog; 1063 TEST_TARGET_NAME = LifeLog;
1046 }; 1064 };
1047 name = Release; 1065 name = Release;
1048 }; 1066 };
1049 /* End XCBuildConfiguration section */ 1067 /* End XCBuildConfiguration section */
1050 1068
1051 /* Begin XCConfigurationList section */ 1069 /* Begin XCConfigurationList section */
1052 6E84E36C1F27A700001EB88E /* Build configuration list for PBXProject "LifeLog" */ = { 1070 6E84E36C1F27A700001EB88E /* Build configuration list for PBXProject "LifeLog" */ = {
1053 isa = XCConfigurationList; 1071 isa = XCConfigurationList;
1054 buildConfigurations = ( 1072 buildConfigurations = (
1055 6E84E39C1F27A703001EB88E /* Debug */, 1073 6E84E39C1F27A703001EB88E /* Debug */,
1056 6E84E39D1F27A703001EB88E /* Release */, 1074 6E84E39D1F27A703001EB88E /* Release */,
1057 ); 1075 );
1058 defaultConfigurationIsVisible = 0; 1076 defaultConfigurationIsVisible = 0;
1059 defaultConfigurationName = Release; 1077 defaultConfigurationName = Release;
1060 }; 1078 };
1061 6E84E39E1F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLog" */ = { 1079 6E84E39E1F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLog" */ = {
1062 isa = XCConfigurationList; 1080 isa = XCConfigurationList;
1063 buildConfigurations = ( 1081 buildConfigurations = (
1064 6E84E39F1F27A703001EB88E /* Debug */, 1082 6E84E39F1F27A703001EB88E /* Debug */,
1065 6E84E3A01F27A703001EB88E /* Release */, 1083 6E84E3A01F27A703001EB88E /* Release */,
1066 ); 1084 );
1067 defaultConfigurationIsVisible = 0; 1085 defaultConfigurationIsVisible = 0;
1068 defaultConfigurationName = Release; 1086 defaultConfigurationName = Release;
1069 }; 1087 };
1070 6E84E3A11F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogTests" */ = { 1088 6E84E3A11F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogTests" */ = {
1071 isa = XCConfigurationList; 1089 isa = XCConfigurationList;
1072 buildConfigurations = ( 1090 buildConfigurations = (
1073 6E84E3A21F27A703001EB88E /* Debug */, 1091 6E84E3A21F27A703001EB88E /* Debug */,
1074 6E84E3A31F27A703001EB88E /* Release */, 1092 6E84E3A31F27A703001EB88E /* Release */,
1075 ); 1093 );
1076 defaultConfigurationIsVisible = 0; 1094 defaultConfigurationIsVisible = 0;
1077 defaultConfigurationName = Release; 1095 defaultConfigurationName = Release;
1078 }; 1096 };
1079 6E84E3A41F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogUITests" */ = { 1097 6E84E3A41F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogUITests" */ = {
1080 isa = XCConfigurationList; 1098 isa = XCConfigurationList;
1081 buildConfigurations = ( 1099 buildConfigurations = (
1082 6E84E3A51F27A703001EB88E /* Debug */, 1100 6E84E3A51F27A703001EB88E /* Debug */,
1083 6E84E3A61F27A703001EB88E /* Release */, 1101 6E84E3A61F27A703001EB88E /* Release */,
1084 ); 1102 );
1085 defaultConfigurationIsVisible = 0; 1103 defaultConfigurationIsVisible = 0;
1086 defaultConfigurationName = Release; 1104 defaultConfigurationName = Release;
1087 }; 1105 };
1088 /* End XCConfigurationList section */ 1106 /* End XCConfigurationList section */
1089 }; 1107 };
1090 rootObject = 6E84E3691F27A700001EB88E /* Project object */; 1108 rootObject = 6E84E3691F27A700001EB88E /* Project object */;
1091 } 1109 }
LifeLog/LifeLog/AppDelegate.m
1 // 1 //
2 // AppDelegate.m 2 // AppDelegate.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 "AppDelegate.h" 9 #import "AppDelegate.h"
10 #import "LoginViewController.h" 10 #import "LoginViewController.h"
11 #import "HomeViewController.h" 11 #import "HomeViewController.h"
12 #import "HistoryViewController.h" 12 #import "HistoryViewController.h"
13 #import "RankingViewController.h" 13 #import "RankingViewController.h"
14 #import "MapViewController.h" 14 #import "MapViewController.h"
15 #import "SNSViewController.h" 15 #import "SNSViewController.h"
16 #import "ServerAPI.h" 16 #import "ServerAPI.h"
17 #import "Utilities.h"
17 18
18 @interface AppDelegate () 19 @interface AppDelegate ()
19 20
20 @end 21 @end
21 22
22 @implementation AppDelegate 23 @implementation AppDelegate
23 24
24 + (AppDelegate *)sharedAppDelegate { 25 + (AppDelegate *)sharedAppDelegate {
25 return (AppDelegate *)[UIApplication sharedApplication].delegate; 26 return (AppDelegate *)[UIApplication sharedApplication].delegate;
26 } 27 }
27 28
28 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 29 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
29 // Override point for customization after application launch. 30 // Override point for customization after application launch.
30 self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; 31 self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
31 32
32 NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:kUser]; 33 NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:kUser];
33 User *user = (User *)[NSKeyedUnarchiver unarchiveObjectWithData:data]; 34 User *user = (User *)[NSKeyedUnarchiver unarchiveObjectWithData:data];
34 if (user == nil) { 35 if (user == nil) {
35 LoginViewController *loginVC = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil]; 36 LoginViewController *loginVC = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
36 UINavigationController *navigation = [[UINavigationController alloc] initWithRootViewController:loginVC]; 37 UINavigationController *navigation = [[UINavigationController alloc] initWithRootViewController:loginVC];
37 self.window.rootViewController = navigation; 38 self.window.rootViewController = navigation;
38 [self.window makeKeyAndVisible]; 39 [self.window makeKeyAndVisible];
39 } 40 }
40 else { 41 else {
41 [self gotoMainMenu]; 42 [self gotoMainMenu];
42 } 43 }
43 44
45 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(gotoLogin) name:kNotificationToken object:nil];
44 return YES; 46 return YES;
45 } 47 }
46 48
49 - (void)gotoLogin {
50 [[NSUserDefaults standardUserDefaults] removeObjectForKey:kUser];
51 [[NSUserDefaults standardUserDefaults] removeObjectForKey:kToken];
52 [[NSUserDefaults standardUserDefaults] synchronize];
53 LoginViewController *loginVC = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
54 UINavigationController *navigation = [[UINavigationController alloc] initWithRootViewController:loginVC];
55 self.window.rootViewController = navigation;
56 [self.window makeKeyAndVisible];
57 [Utilities showErrorMessage:@"Token is invalid" withViewController:self.window.rootViewController];
58 }
47 59
48 - (void)applicationWillResignActive:(UIApplication *)application { 60 - (void)applicationWillResignActive:(UIApplication *)application {
49 // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 61 // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
50 // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. 62 // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
51 } 63 }
52 64
53 65
54 - (void)applicationDidEnterBackground:(UIApplication *)application { 66 - (void)applicationDidEnterBackground:(UIApplication *)application {
55 // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 67 // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
56 // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 68 // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
57 } 69 }
58 70
59 71
60 - (void)applicationWillEnterForeground:(UIApplication *)application { 72 - (void)applicationWillEnterForeground:(UIApplication *)application {
61 // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. 73 // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
62 } 74 }
63 75
64 76
65 - (void)applicationDidBecomeActive:(UIApplication *)application { 77 - (void)applicationDidBecomeActive:(UIApplication *)application {
66 // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 78 // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
67 } 79 }
68 80
69 81
70 - (void)applicationWillTerminate:(UIApplication *)application { 82 - (void)applicationWillTerminate:(UIApplication *)application {
71 // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 83 // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
72 } 84 }
73 85
74 - (void)gotoMainMenu 86 - (void)gotoMainMenu
75 { 87 {
76 UITabBarController *tabBarViewController = [[UITabBarController alloc] init]; 88 UITabBarController *tabBarViewController = [[UITabBarController alloc] init];
77 89
78 HomeViewController *homeVC = [[HomeViewController alloc] initWithNibName:@"HomeViewController" bundle:nil]; 90 HomeViewController *homeVC = [[HomeViewController alloc] initWithNibName:@"HomeViewController" bundle:nil];
79 UINavigationController *naviToday = [[UINavigationController alloc] initWithRootViewController:homeVC]; 91 UINavigationController *naviToday = [[UINavigationController alloc] initWithRootViewController:homeVC];
80 naviToday.tabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"lifelog.tapbar.today", @"") image:[UIImage imageNamed:@"tapbar_today"] tag:1]; 92 naviToday.tabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"lifelog.tapbar.today", @"") image:[UIImage imageNamed:@"tapbar_today"] tag:1];
81 naviToday.navigationBar.hidden = YES; 93 naviToday.navigationBar.hidden = YES;
82 94
83 HistoryViewController *historyVC = [[HistoryViewController alloc] initWithNibName:@"HistoryViewController" bundle:nil]; 95 HistoryViewController *historyVC = [[HistoryViewController alloc] initWithNibName:@"HistoryViewController" bundle:nil];
84 UINavigationController *naviHistory = [[UINavigationController alloc] initWithRootViewController:historyVC]; 96 UINavigationController *naviHistory = [[UINavigationController alloc] initWithRootViewController:historyVC];
85 naviHistory.tabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"lifelog.tapbar.history", @"") image:[UIImage imageNamed:@"tapbar_history"] tag:2]; 97 naviHistory.tabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"lifelog.tapbar.history", @"") image:[UIImage imageNamed:@"tapbar_history"] tag:2];
86 naviHistory.navigationBar.hidden = YES; 98 naviHistory.navigationBar.hidden = YES;
87 99
88 RankingViewController *rankingVC = [[RankingViewController alloc] initWithNibName:@"RankingViewController" bundle:nil]; 100 RankingViewController *rankingVC = [[RankingViewController alloc] initWithNibName:@"RankingViewController" bundle:nil];
89 UINavigationController *naviRanking = [[UINavigationController alloc] initWithRootViewController:rankingVC]; 101 UINavigationController *naviRanking = [[UINavigationController alloc] initWithRootViewController:rankingVC];
90 naviRanking.tabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"lifelog.tapbar.ranking", @"") image:[UIImage imageNamed:@"tapbar_ranking"] tag:3]; 102 naviRanking.tabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"lifelog.tapbar.ranking", @"") image:[UIImage imageNamed:@"tapbar_ranking"] tag:3];
91 naviRanking.navigationBar.hidden = YES; 103 naviRanking.navigationBar.hidden = YES;
92 104
93 MapViewController *mapVC = [[MapViewController alloc] initWithNibName:@"MapViewController" bundle:nil]; 105 MapViewController *mapVC = [[MapViewController alloc] initWithNibName:@"MapViewController" bundle:nil];
94 UINavigationController *naviMap = [[UINavigationController alloc] initWithRootViewController:mapVC]; 106 UINavigationController *naviMap = [[UINavigationController alloc] initWithRootViewController:mapVC];
95 naviMap.tabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"lifelog.tapbar.map", @"") image:[UIImage imageNamed:@"tapbar_map"] tag:4]; 107 naviMap.tabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"lifelog.tapbar.map", @"") image:[UIImage imageNamed:@"tapbar_map"] tag:4];
96 108
97 SNSViewController *snsVC = [[SNSViewController alloc] initWithNibName:@"SNSViewController" bundle:nil]; 109 SNSViewController *snsVC = [[SNSViewController alloc] initWithNibName:@"SNSViewController" bundle:nil];
98 UINavigationController *naviSNS = [[UINavigationController alloc] initWithRootViewController:snsVC]; 110 UINavigationController *naviSNS = [[UINavigationController alloc] initWithRootViewController:snsVC];
99 naviSNS.tabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"lifelog.tapbar.sns", @"") image:[UIImage imageNamed:@"tapbar_sns"] tag:5]; 111 naviSNS.tabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"lifelog.tapbar.sns", @"") image:[UIImage imageNamed:@"tapbar_sns"] tag:5];
100 naviSNS.navigationBar.hidden = YES; 112 naviSNS.navigationBar.hidden = YES;
101 113
102 tabBarViewController.viewControllers = [NSArray arrayWithObjects:naviToday, naviHistory, naviRanking, naviMap, naviSNS, nil]; 114 tabBarViewController.viewControllers = [NSArray arrayWithObjects:naviToday, naviHistory, naviRanking, naviMap, naviSNS, nil];
103 115
104 self.window.rootViewController = tabBarViewController; 116 self.window.rootViewController = tabBarViewController;
105 [self.window makeKeyAndVisible]; 117 [self.window makeKeyAndVisible];
106 } 118 }
107 119
108 @end 120 @end
109 121
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 "GroupObject.h"
15 #import "TweetObject.h" 15 #import "TweetObject.h"
16 #import "HistoryGraphObject.h" 16 #import "HistoryGraphObject.h"
17 #import "HistoryObject.h" 17 #import "HistoryObject.h"
18 #import "User.h" 18 #import "User.h"
19 #import "TopObject.h"
19 20
20 #endif /* Entities_h */ 21 #endif /* Entities_h */
21 22
LifeLog/LifeLog/HomeViewController.m
1 // 1 //
2 // HomeViewController.m 2 // HomeViewController.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 "HomeViewController.h" 9 #import "HomeViewController.h"
10 #import "NSDate+helper.h" 10 #import "NSDate+helper.h"
11 #import <CoreMotion/CoreMotion.h> 11 #import <CoreMotion/CoreMotion.h>
12 #import "CMMotionActivityExtra.h" 12 #import "CMMotionActivityExtra.h"
13 #import "TodayViewController.h" 13 #import "TodayViewController.h"
14 #import "Utilities.h" 14 #import "Utilities.h"
15 #import <MBProgressHUD/MBProgressHUD.h> 15 #import <MBProgressHUD/MBProgressHUD.h>
16 #import "ServerAPI.h" 16 #import "ServerAPI.h"
17 17
18 static NSInteger numberTotal = 10000; 18 static NSInteger numberTotal = 10000;
19 19
20 @interface HomeViewController () 20 @interface HomeViewController ()
21 { 21 {
22 MBProgressHUD *progressHud; 22 MBProgressHUD *progressHud;
23 } 23 }
24 @property (nonatomic, weak) IBOutlet UILabel *lblTitle; 24 @property (nonatomic, weak) IBOutlet UILabel *lblTitle;
25 @property (nonatomic, weak) IBOutlet UIImageView *avatar; 25 @property (nonatomic, weak) IBOutlet UIImageView *avatar;
26 @property (nonatomic, weak) IBOutlet UILabel *lblDateCurrent; 26 @property (nonatomic, weak) IBOutlet UILabel *lblDateCurrent;
27 @property (nonatomic, weak) IBOutlet UILabel *lblValueStep; 27 @property (nonatomic, weak) IBOutlet UILabel *lblValueStep;
28 @property (nonatomic, weak) IBOutlet UILabel *lblUnitStep; 28 @property (nonatomic, weak) IBOutlet UILabel *lblUnitStep;
29 @property (nonatomic, weak) IBOutlet UILabel *lblValueStepOther; 29 @property (nonatomic, weak) IBOutlet UILabel *lblValueStepOther;
30 @property (nonatomic, weak) IBOutlet UILabel *lblPercent; 30 @property (nonatomic, weak) IBOutlet UILabel *lblPercent;
31 @property (nonatomic, weak) IBOutlet UILabel *lblNotice; 31 @property (nonatomic, weak) IBOutlet UILabel *lblNotice;
32 @property (weak, nonatomic) IBOutlet UISegmentedControl *segmentHome; 32 @property (weak, nonatomic) IBOutlet UISegmentedControl *segmentHome;
33 33
34 @property (nonatomic, strong) CMPedometer *pedometer; 34 @property (nonatomic, strong) CMPedometer *pedometer;
35 @property (nonatomic, strong) CMMotionActivityManager *motionActivityManager; 35 @property (nonatomic, strong) CMMotionActivityManager *motionActivityManager;
36 @property (nonatomic, strong) NSOperationQueue *operationQueue; 36 @property (nonatomic, strong) NSOperationQueue *operationQueue;
37 @property (nonatomic, strong) NSTimer *timer; 37 @property (nonatomic, strong) NSTimer *timer;
38 @property (nonatomic, assign) NSInteger bike; 38 @property (nonatomic, assign) NSInteger bike;
39 @property (nonatomic, assign) NSInteger walking; 39 @property (nonatomic, assign) NSInteger walking;
40 @property (nonatomic, assign) NSInteger running; 40 @property (nonatomic, assign) NSInteger running;
41 @property (nonatomic, strong) NSDate *dateCurrent; 41 @property (nonatomic, strong) NSDate *dateCurrent;
42 42
43 //@property (nonatomic, assign) BOOL isRequesting; 43 //@property (nonatomic, assign) BOOL isRequesting;
44 @property (nonatomic, assign) int totalRequest; 44 @property (nonatomic, assign) int totalRequest;
45 @property (nonatomic, assign) int countComplete; 45 @property (nonatomic, assign) int countComplete;
46 46
47 @end 47 @end
48 48
49 @implementation HomeViewController 49 @implementation HomeViewController
50 50
51 - (void)viewDidLoad { 51 - (void)viewDidLoad {
52 [super viewDidLoad]; 52 [super viewDidLoad];
53 // Do any additional setup after loading the view from its nib. 53 // Do any additional setup after loading the view from its nib.
54 self.lblTitle.text = NSLocalizedString(@"lifelog.home.title", nil); 54 self.lblTitle.text = NSLocalizedString(@"lifelog.home.title", nil);
55 55
56 [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.topLayoutGuide attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.lblTitle attribute:NSLayoutAttributeTop multiplier:1 constant:0]]; 56 [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.topLayoutGuide attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.lblTitle attribute:NSLayoutAttributeTop multiplier:1 constant:0]];
57 57
58 self.avatar.backgroundColor = [UIColor whiteColor]; 58 self.avatar.backgroundColor = [UIColor whiteColor];
59 self.avatar.layer.borderWidth = 2.0f; 59 self.avatar.layer.borderWidth = 2.0f;
60 self.avatar.layer.borderColor = [[UIColor whiteColor] CGColor]; 60 self.avatar.layer.borderColor = [[UIColor whiteColor] CGColor];
61 self.avatar.layer.cornerRadius = self.avatar.frame.size.width/2.0f; 61 self.avatar.layer.cornerRadius = self.avatar.frame.size.width/2.0f;
62 self.avatar.layer.masksToBounds = YES; 62 self.avatar.layer.masksToBounds = YES;
63 NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:kUser]; 63 NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:kUser];
64 User *user = (User *)[NSKeyedUnarchiver unarchiveObjectWithData:data]; 64 User *user = (User *)[NSKeyedUnarchiver unarchiveObjectWithData:data];
65 if (user != nil) { 65 if (user != nil) {
66 NSString *linkImage = [NSString stringWithFormat:@"%@%@", kServerAddress, user.profile_image]; 66 NSString *linkImage = [NSString stringWithFormat:@"%@%@", kServerAddress, user.profile_image];
67 NSURL *urlImage = [NSURL URLWithString:linkImage]; 67 NSURL *urlImage = [NSURL URLWithString:linkImage];
68 NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration]; 68 NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];
69 sessionConfig.timeoutIntervalForRequest = 30.0; 69 sessionConfig.timeoutIntervalForRequest = 30.0;
70 sessionConfig.timeoutIntervalForResource = 60.0; 70 sessionConfig.timeoutIntervalForResource = 60.0;
71 sessionConfig.HTTPMaximumConnectionsPerHost = 20; 71 sessionConfig.HTTPMaximumConnectionsPerHost = 20;
72 sessionConfig.allowsCellularAccess = YES; 72 sessionConfig.allowsCellularAccess = YES;
73 HomeViewController __weak *weakSelf = self; 73 HomeViewController __weak *weakSelf = self;
74 NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfig]; 74 NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfig];
75 NSURLSessionDataTask *downloadPhotoTask = [session 75 NSURLSessionDataTask *downloadPhotoTask = [session
76 dataTaskWithURL:urlImage completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { 76 dataTaskWithURL:urlImage completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
77 if (weakSelf == nil) 77 if (weakSelf == nil)
78 { 78 {
79 return; 79 return;
80 } 80 }
81 if (error == nil) { 81 if (error == nil) {
82 UIImage *image = [[UIImage alloc] initWithData:data]; 82 UIImage *image = [[UIImage alloc] initWithData:data];
83 [[NSOperationQueue mainQueue] addOperationWithBlock:^{ 83 [[NSOperationQueue mainQueue] addOperationWithBlock:^{
84 weakSelf.avatar.image = image; 84 weakSelf.avatar.image = image;
85 }]; 85 }];
86 } 86 }
87 }]; 87 }];
88 [downloadPhotoTask resume]; 88 [downloadPhotoTask resume];
89 } 89 }
90 90
91 self.lblNotice.text = NSLocalizedString(@"lifelog.home.notice", nil); 91 self.lblNotice.text = NSLocalizedString(@"lifelog.home.notice", nil);
92 92
93 _dateCurrent = [NSDate date]; 93 _dateCurrent = [NSDate date];
94 self.lblDateCurrent.text = [NSString stringWithFormat:@"%ld%@%ld%@%ld%@", (long)[_dateCurrent getYear], NSLocalizedString(@"lifelog.common.year", nil), (long)[_dateCurrent getMonth], NSLocalizedString(@"lifelog.common.month", nil), (long)[_dateCurrent getDay], NSLocalizedString(@"lifelog.common.day", nil)]; 94 self.lblDateCurrent.text = [NSString stringWithFormat:@"%ld%@%ld%@%ld%@", (long)[_dateCurrent getYear], NSLocalizedString(@"lifelog.common.year", nil), (long)[_dateCurrent getMonth], NSLocalizedString(@"lifelog.common.month", nil), (long)[_dateCurrent getDay], NSLocalizedString(@"lifelog.common.day", nil)];
95 95
96 self.lblUnitStep.text = NSLocalizedString(@"lifelog.home.unit.step", nil); 96 self.lblUnitStep.text = NSLocalizedString(@"lifelog.home.unit.step", nil);
97 97
98 if ([CMPedometer isStepCountingAvailable]) { 98 if ([CMPedometer isStepCountingAvailable]) {
99 _pedometer = [[CMPedometer alloc] init]; 99 _pedometer = [[CMPedometer alloc] init];
100 } 100 }
101 if ([CMMotionActivityManager isActivityAvailable]) { 101 if ([CMMotionActivityManager isActivityAvailable]) {
102 _motionActivityManager = [[CMMotionActivityManager alloc] init]; 102 _motionActivityManager = [[CMMotionActivityManager alloc] init];
103 } 103 }
104 _operationQueue = [[NSOperationQueue alloc] init]; 104 _operationQueue = [[NSOperationQueue alloc] init];
105 _bike = 0; 105 _bike = 0;
106 _walking = 0; 106 _walking = 0;
107 _running = 0; 107 _running = 0;
108 _segmentHome.selectedSegmentIndex = 1; 108 _segmentHome.selectedSegmentIndex = 1;
109 // _isRequesting = NO; 109 // _isRequesting = NO;
110 _totalRequest = 0; 110 _totalRequest = 0;
111 _countComplete = 0; 111 _countComplete = 0;
112 112
113 progressHud = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; 113 progressHud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
114 progressHud.mode = MBProgressHUDModeIndeterminate; 114 progressHud.mode = MBProgressHUDModeIndeterminate;
115 progressHud.detailsLabel.text = NSLocalizedString(@"lifelog.home.progressHud.title", nil); 115 progressHud.detailsLabel.text = NSLocalizedString(@"lifelog.home.progressHud.title", nil);
116 } 116 }
117 117
118 - (void)viewWillAppear:(BOOL)animated { 118 - (void)viewWillAppear:(BOOL)animated {
119 [super viewWillAppear:animated]; 119 [super viewWillAppear:animated];
120 // _timer = [NSTimer scheduledTimerWithTimeInterval:1.5f target:self selector:@selector(countStep) userInfo:nil repeats:YES]; 120 // _timer = [NSTimer scheduledTimerWithTimeInterval:1.5f target:self selector:@selector(countStep) userInfo:nil repeats:YES];
121 // [_timer fire]; 121 // [_timer fire];
122 [self countStep]; 122 [self countStep];
123
124 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
125 [dateFormatter setDateFormat:@"yyyy-MM-dd"];
126 NSString *dateString = [dateFormatter stringFromDate:_dateCurrent];
127
128 HomeViewController __weak *weakSelf = self;
129 [[ServerAPI server] requestTopWithMode:(int)_segmentHome.selectedSegmentIndex andDate:dateString CompletionHandler:^(TopObject *topObject, NSError *error) {
130 if(weakSelf == nil) {
131 return ;
132 }
133 if (error == nil) {
134 NSLog(@"TopObject: %@", topObject);
135 }
136 else {
137 dispatch_async(dispatch_get_main_queue(), ^{
138 NSString *message = [error.userInfo objectForKey:@"message"];
139 [Utilities showErrorMessage:message withViewController:weakSelf];
140 });
141 }
142 }];
123 } 143 }
124 144
125 - (void)viewWillDisappear:(BOOL)animated { 145 - (void)viewWillDisappear:(BOOL)animated {
126 [super viewWillDisappear:animated]; 146 [super viewWillDisappear:animated];
127 //[_timer invalidate]; 147 //[_timer invalidate];
128 } 148 }
129 149
130 - (void)didReceiveMemoryWarning { 150 - (void)didReceiveMemoryWarning {
131 [super didReceiveMemoryWarning]; 151 [super didReceiveMemoryWarning];
132 // Dispose of any resources that can be recreated. 152 // Dispose of any resources that can be recreated.
133 } 153 }
134 154
135 #pragma mark - IBAction 155 #pragma mark - IBAction
136 - (IBAction)menuButtonTouchUpInside:(id)sender 156 - (IBAction)menuButtonTouchUpInside:(id)sender
137 { 157 {
138 158
139 } 159 }
140 160
141 - (IBAction)todayButtonTouchUpInside:(id)sender 161 - (IBAction)todayButtonTouchUpInside:(id)sender
142 { 162 {
143 TodayViewController *todayVC = [[TodayViewController alloc] initWithNibName:@"TodayViewController" bundle:nil]; 163 TodayViewController *todayVC = [[TodayViewController alloc] initWithNibName:@"TodayViewController" bundle:nil];
144 [self.navigationController pushViewController:todayVC animated:YES]; 164 [self.navigationController pushViewController:todayVC animated:YES];
145 } 165 }
146 166
147 - (IBAction)leftButtonTouchUpInside:(id)sender 167 - (IBAction)leftButtonTouchUpInside:(id)sender
148 { 168 {
149 self.dateCurrent = [self.dateCurrent dateByAddingTimeInterval:-(24*60*60)]; 169 self.dateCurrent = [self.dateCurrent dateByAddingTimeInterval:-(24*60*60)];
150 self.lblDateCurrent.text = [NSString stringWithFormat:@"%ld%@%ld%@%ld%@", (long)[_dateCurrent getYear], NSLocalizedString(@"lifelog.common.year", nil), (long)[_dateCurrent getMonth], NSLocalizedString(@"lifelog.common.month", nil), (long)[_dateCurrent getDay], NSLocalizedString(@"lifelog.common.day", nil)]; 170 self.lblDateCurrent.text = [NSString stringWithFormat:@"%ld%@%ld%@%ld%@", (long)[_dateCurrent getYear], NSLocalizedString(@"lifelog.common.year", nil), (long)[_dateCurrent getMonth], NSLocalizedString(@"lifelog.common.month", nil), (long)[_dateCurrent getDay], NSLocalizedString(@"lifelog.common.day", nil)];
151 [self countStep]; 171 [self countStep];
152 } 172 }
153 173
154 - (IBAction)rightButtonTouchUpInside:(id)sender 174 - (IBAction)rightButtonTouchUpInside:(id)sender
155 { 175 {
156 self.dateCurrent = [self.dateCurrent dateByAddingTimeInterval:24*60*60]; 176 self.dateCurrent = [self.dateCurrent dateByAddingTimeInterval:24*60*60];
157 self.lblDateCurrent.text = [NSString stringWithFormat:@"%ld%@%ld%@%ld%@", (long)[_dateCurrent getYear], NSLocalizedString(@"lifelog.common.year", nil), (long)[_dateCurrent getMonth], NSLocalizedString(@"lifelog.common.month", nil), (long)[_dateCurrent getDay], NSLocalizedString(@"lifelog.common.day", nil)]; 177 self.lblDateCurrent.text = [NSString stringWithFormat:@"%ld%@%ld%@%ld%@", (long)[_dateCurrent getYear], NSLocalizedString(@"lifelog.common.year", nil), (long)[_dateCurrent getMonth], NSLocalizedString(@"lifelog.common.month", nil), (long)[_dateCurrent getDay], NSLocalizedString(@"lifelog.common.day", nil)];
158 [self countStep]; 178 [self countStep];
159 } 179 }
160 180
161 - (IBAction)segmentValueChange:(id)sender { 181 - (IBAction)segmentValueChange:(id)sender {
162 [self updateStepUI]; 182 [self updateStepUI];
163 } 183 }
164 184
165 #pragma mark - Functions Private 185 #pragma mark - Functions Private
166 - (void)countStep 186 - (void)countStep
167 { 187 {
168 // if (self.isRequesting == YES) { 188 // if (self.isRequesting == YES) {
169 // return; 189 // return;
170 // } 190 // }
171 if ([CMMotionActivityManager isActivityAvailable]) { 191 if ([CMMotionActivityManager isActivityAvailable]) {
172 [progressHud showAnimated:YES]; 192 [progressHud showAnimated:YES];
173 [progressHud setHidden:NO]; 193 [progressHud setHidden:NO];
174 // self.isRequesting = YES; 194 // self.isRequesting = YES;
175 self.bike = 0; 195 self.bike = 0;
176 self.walking = 0; 196 self.walking = 0;
177 self.running = 0; 197 self.running = 0;
178 NSDate *startDate = [self.dateCurrent beginningAtMidnightOfDay]; 198 NSDate *startDate = [self.dateCurrent beginningAtMidnightOfDay];
179 NSDate *endDate = [startDate dateByAddingTimeInterval:(24*60*60 - 1)]; 199 NSDate *endDate = [startDate dateByAddingTimeInterval:(24*60*60 - 1)];
180 200
181 HomeViewController __weak *weakSelf = self; 201 HomeViewController __weak *weakSelf = self;
182 dispatch_queue_t myQueue = dispatch_queue_create("mobileworld.jp.lifelog", NULL); 202 dispatch_queue_t myQueue = dispatch_queue_create("mobileworld.jp.lifelog", NULL);
183 dispatch_async(myQueue, ^{ 203 dispatch_async(myQueue, ^{
184 if (weakSelf == nil) { 204 if (weakSelf == nil) {
185 return ; 205 return ;
186 } 206 }
187 207
188 [weakSelf.motionActivityManager queryActivityStartingFromDate:startDate toDate:endDate toQueue:_operationQueue withHandler:^(NSArray<CMMotionActivity *> * _Nullable activities, NSError * _Nullable error) { 208 [weakSelf.motionActivityManager queryActivityStartingFromDate:startDate toDate:endDate toQueue:_operationQueue withHandler:^(NSArray<CMMotionActivity *> * _Nullable activities, NSError * _Nullable error) {
189 if (error || activities.count <= 0) { 209 if (error || activities.count <= 0) {
190 weakSelf.totalRequest = 0; 210 weakSelf.totalRequest = 0;
191 weakSelf.countComplete = 0; 211 weakSelf.countComplete = 0;
192 dispatch_async(dispatch_get_main_queue(), ^{ 212 dispatch_async(dispatch_get_main_queue(), ^{
193 [weakSelf updateStepUI]; 213 [weakSelf updateStepUI];
194 }); 214 });
195 return ; 215 return ;
196 } 216 }
197 // set EndDate 217 // set EndDate
198 weakSelf.totalRequest = (int)activities.count; 218 weakSelf.totalRequest = (int)activities.count;
199 NSMutableArray *arrayActivities = [[NSMutableArray alloc] init]; 219 NSMutableArray *arrayActivities = [[NSMutableArray alloc] init];
200 for (int i = 0; i < activities.count; i++) { 220 for (int i = 0; i < activities.count; i++) {
201 CMMotionActivity *activity = [activities objectAtIndex:i]; 221 CMMotionActivity *activity = [activities objectAtIndex:i];
202 CMMotionActivityExtra *activityExtra = [[CMMotionActivityExtra alloc] init]; 222 CMMotionActivityExtra *activityExtra = [[CMMotionActivityExtra alloc] init];
203 activityExtra.activity = activity; 223 activityExtra.activity = activity;
204 if (i == activities.count - 1) { 224 if (i == activities.count - 1) {
205 activityExtra.endDate = endDate; 225 activityExtra.endDate = endDate;
206 } 226 }
207 else { 227 else {
208 CMMotionActivity *activityNext = [activities objectAtIndex:i+1]; 228 CMMotionActivity *activityNext = [activities objectAtIndex:i+1];
209 activityExtra.endDate = activityNext.startDate; 229 activityExtra.endDate = activityNext.startDate;
210 } 230 }
211 [arrayActivities addObject:activityExtra]; 231 [arrayActivities addObject:activityExtra];
212 } 232 }
213 233
214 for (CMMotionActivityExtra *activityExtra in arrayActivities) { 234 for (CMMotionActivityExtra *activityExtra in arrayActivities) {
215 // NSLog(@"%@", activityExtra.activity.startDate); 235 // NSLog(@"%@", activityExtra.activity.startDate);
216 [weakSelf.pedometer queryPedometerDataFromDate:activityExtra.activity.startDate toDate:activityExtra.endDate withHandler:^(CMPedometerData * _Nullable pedometerData, NSError * _Nullable error) { 236 [weakSelf.pedometer queryPedometerDataFromDate:activityExtra.activity.startDate toDate:activityExtra.endDate withHandler:^(CMPedometerData * _Nullable pedometerData, NSError * _Nullable error) {
217 NSInteger numberStep = [pedometerData.numberOfSteps integerValue]; 237 NSInteger numberStep = [pedometerData.numberOfSteps integerValue];
218 238
219 if (activityExtra.activity.cycling) { 239 if (activityExtra.activity.cycling) {
220 // self.bike 240 // self.bike
221 weakSelf.bike += numberStep; 241 weakSelf.bike += numberStep;
222 //NSLog(@"Step cycling"); 242 //NSLog(@"Step cycling");
223 } 243 }
224 else if (activityExtra.activity.walking) { 244 else if (activityExtra.activity.walking) {
225 // self.walking 245 // self.walking
226 weakSelf.walking += numberStep; 246 weakSelf.walking += numberStep;
227 //NSLog(@"Step walking"); 247 //NSLog(@"Step walking");
228 } 248 }
229 else if (activityExtra.activity.running) { 249 else if (activityExtra.activity.running) {
230 weakSelf.running += numberStep; 250 weakSelf.running += numberStep;
231 //NSLog(@"Step running"); 251 //NSLog(@"Step running");
232 } 252 }
233 else { 253 else {
234 // unknown 254 // unknown
235 //NSLog(@"Step unknown"); 255 //NSLog(@"Step unknown");
236 } 256 }
237 // NSLog(@"Number of step--> %ld", numberStep); 257 // NSLog(@"Number of step--> %ld", numberStep);
238 weakSelf.countComplete += 1; 258 weakSelf.countComplete += 1;
239 dispatch_async(dispatch_get_main_queue(), ^{ 259 dispatch_async(dispatch_get_main_queue(), ^{
240 [weakSelf updateStepUI]; 260 [weakSelf updateStepUI];
241 }); 261 });
242 }]; 262 }];
243 } 263 }
244 // NSLog(@"-----------------------------------------------------"); 264 // NSLog(@"-----------------------------------------------------");
245 }]; 265 }];
246 }); 266 });
247 } 267 }
248 else { 268 else {
249 [progressHud setHidden:YES]; 269 [progressHud setHidden:YES];
250 } 270 }
251 } 271 }
252 272
253 - (void)updateStepUI //:(NSInteger)numberStep 273 - (void)updateStepUI //:(NSInteger)numberStep
254 { 274 {
255 if (self.totalRequest == self.countComplete) { 275 if (self.totalRequest == self.countComplete) {
256 switch (self.segmentHome.selectedSegmentIndex) { 276 switch (self.segmentHome.selectedSegmentIndex) {
257 case 0: 277 case 0:
258 self.lblValueStep.text = [Utilities addCommaFromNumber:self.bike]; 278 self.lblValueStep.text = [Utilities addCommaFromNumber:self.bike];
259 self.lblValueStepOther.text = [NSString stringWithFormat:@"%@ %ld", NSLocalizedString(@"lifelog.today.remaining.other", nil), numberTotal - self.bike]; 279 self.lblValueStepOther.text = [NSString stringWithFormat:@"%@ %ld", NSLocalizedString(@"lifelog.today.remaining.other", nil), numberTotal - self.bike];
260 self.lblPercent.text = [NSString stringWithFormat:@"%@ %i%@", NSLocalizedString(@"lifelog.today.text.percent", nil), (int)(self.bike*100/numberTotal), NSLocalizedString(@"lifelog.today.percent", nil)]; 280 self.lblPercent.text = [NSString stringWithFormat:@"%@ %i%@", NSLocalizedString(@"lifelog.today.text.percent", nil), (int)(self.bike*100/numberTotal), NSLocalizedString(@"lifelog.today.percent", nil)];
261 break; 281 break;
262 282
263 case 1: 283 case 1:
264 self.lblValueStep.text = [Utilities addCommaFromNumber:self.walking]; 284 self.lblValueStep.text = [Utilities addCommaFromNumber:self.walking];
265 self.lblValueStepOther.text = [NSString stringWithFormat:@"%@ %ld", NSLocalizedString(@"lifelog.today.remaining.other", nil), numberTotal - self.walking]; 285 self.lblValueStepOther.text = [NSString stringWithFormat:@"%@ %ld", NSLocalizedString(@"lifelog.today.remaining.other", nil), numberTotal - self.walking];
266 self.lblPercent.text = [NSString stringWithFormat:@"%@ %i%@", NSLocalizedString(@"lifelog.today.text.percent", nil), (int)(self.walking*100/numberTotal), NSLocalizedString(@"lifelog.today.percent", nil)]; 286 self.lblPercent.text = [NSString stringWithFormat:@"%@ %i%@", NSLocalizedString(@"lifelog.today.text.percent", nil), (int)(self.walking*100/numberTotal), NSLocalizedString(@"lifelog.today.percent", nil)];
267 break; 287 break;
268 288
269 case 2: 289 case 2:
270 self.lblValueStep.text = [Utilities addCommaFromNumber:self.running]; 290 self.lblValueStep.text = [Utilities addCommaFromNumber:self.running];
271 self.lblValueStepOther.text = [NSString stringWithFormat:@"%@ %ld", NSLocalizedString(@"lifelog.today.remaining.other", nil), numberTotal - self.running]; 291 self.lblValueStepOther.text = [NSString stringWithFormat:@"%@ %ld", NSLocalizedString(@"lifelog.today.remaining.other", nil), numberTotal - self.running];
272 self.lblPercent.text = [NSString stringWithFormat:@"%@ %i%@", NSLocalizedString(@"lifelog.today.text.percent", nil), (int)(self.running*100/numberTotal), NSLocalizedString(@"lifelog.today.percent", nil)]; 292 self.lblPercent.text = [NSString stringWithFormat:@"%@ %i%@", NSLocalizedString(@"lifelog.today.text.percent", nil), (int)(self.running*100/numberTotal), NSLocalizedString(@"lifelog.today.percent", nil)];
273 break; 293 break;
274 294
275 default: 295 default:
276 break; 296 break;
277 } 297 }
278 // NSLog(@"Walking: %ld || Running: %ld || Bike: %ld", self.walking, self.running, self.bike); 298 // NSLog(@"Walking: %ld || Running: %ld || Bike: %ld", self.walking, self.running, self.bike);
279 // self.isRequesting = NO; 299 // self.isRequesting = NO;
280 self.countComplete = 0; 300 self.countComplete = 0;
281 self.totalRequest = 0; 301 self.totalRequest = 0;
282 [progressHud setHidden:YES]; 302 [progressHud setHidden:YES];
283 } 303 }
284 } 304 }
285 305
286 @end 306 @end
287 307
LifeLog/LifeLog/ServerAPI.h
1 // 1 //
2 // ServerAPI.h 2 // ServerAPI.h
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by Nguyen Van Phong on 7/30/17. 5 // Created by Nguyen Van Phong on 7/30/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import <Foundation/Foundation.h> 9 #import <Foundation/Foundation.h>
10 #import "Entities.h" 10 #import "Entities.h"
11 11
12 extern NSString *const kServerAddress; 12 extern NSString *const kServerAddress;
13 extern NSString *const kUser; 13 extern NSString *const kUser;
14 extern NSString *const kToken; 14 extern NSString *const kToken;
15 extern NSString *const kNotificationToken;
15 16
16 @interface ServerAPI : NSObject 17 @interface ServerAPI : NSObject
17 + (instancetype) server; 18 + (instancetype) server;
18 @property (nonatomic, assign) NSTimeInterval timeOutInterval; 19 @property (nonatomic, assign) NSTimeInterval timeOutInterval;
20
21 #pragma mark - Login and Register
19 - (void)loginWithEmail:(NSString *)email Password:(NSString *)password CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion; 22 - (void)loginWithEmail:(NSString *)email Password:(NSString *)password CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion;
20 - (void)registerUserWithParams:(NSDictionary *)params CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion; 23 - (void)registerUserWithParams:(NSDictionary *)params CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion;
21 - (void)uploadImage:(NSString *)token andImageData:(NSData *)data CompletionHandler:(void (^)(NSString *, NSError *)) completion; 24 - (void)uploadImage:(NSString *)token andImageData:(NSData *)data CompletionHandler:(void (^)(NSString *, NSError *)) completion;
22 - (void)forgetPass:(NSString *)email CompletionHandler:(void (^)(NSError *)) completion; 25 - (void)forgetPass:(NSString *)email CompletionHandler:(void (^)(NSError *)) completion;
23 - (void)confirmForgetPass:(NSString *)email withConfirm:(NSString *)confirm CompletionHandler:(void (^)(NSError *)) completion; 26 - (void)confirmForgetPass:(NSString *)email withConfirm:(NSString *)confirm CompletionHandler:(void (^)(NSError *)) completion;
27
28 #pragma mark - Home Screen Function
29 - (void)requestTopWithMode:(int)mode andDate:(NSString *)date CompletionHandler:(void (^)(TopObject *, NSError *)) completion;
24 30
25 #pragma mark - History Screen Function 31 #pragma mark - History Screen Function
26 - (void) requestHistory:(NSString *)token atDate:(NSDate *)date withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryObject *, NSError *)) completion; 32 - (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; 33 - (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; 34 - (void) requestHistoryList:(NSString *)token withType:(int)type andMode:(int) mode AtPage:(int) page CompletionHandler:(void (^)(NSArray *, NSError *)) completion;
29 35
30 #pragma mark - SNS Screen Function 36 #pragma mark - SNS Screen Function
31 /* 37 /*
32 Get tweet of group and get recent tweet is same API 38 Get tweet of group and get recent tweet is same API
33 If groupID equal -1, it will request recent tweet. Otherwise will request tweet of group 39 If groupID equal -1, it will request recent tweet. Otherwise will request tweet of group
34 */ 40 */
35 - (void) requestTweetsList:(NSString *)token groupID: (int) groupID withPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion; 41 - (void) requestTweetsList:(NSString *)token groupID: (int) groupID withPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion;
36 - (void) searchGroup:(NSString *)token withKey:(NSString *)key andPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion; 42 - (void) searchGroup:(NSString *)token withKey:(NSString *)key andPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion;
37 @end 43 @end
38 44
LifeLog/LifeLog/ServerAPI.m
1 // 1 //
2 // ServerAPI.m 2 // ServerAPI.m
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by Nguyen Van Phong on 7/30/17. 5 // Created by Nguyen Van Phong on 7/30/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import "ServerAPI.h" 9 #import "ServerAPI.h"
10 10
11 NSString *const kServerAddress = @"http://clover.timesfun.jp:9001/"; 11 NSString *const kServerAddress = @"http://clover.timesfun.jp:9001/";
12 NSString *const kUser = @"KEY_USER"; 12 NSString *const kUser = @"KEY_USER";
13 NSString *const kToken = @"KEY_TOKEN"; 13 NSString *const kToken = @"KEY_TOKEN";
14 NSString *const kNotificationToken = @"TOKEN_INVALID";
14 15
15 @implementation NSString (NSString_Extended) 16 @implementation NSString (NSString_Extended)
16 - (NSString *)urlencode { 17 - (NSString *)urlencode {
17 NSMutableString *output = [NSMutableString string]; 18 NSMutableString *output = [NSMutableString string];
18 const unsigned char *source = (const unsigned char *)[self UTF8String]; 19 const unsigned char *source = (const unsigned char *)[self UTF8String];
19 int sourceLen = (int)strlen((const char *)source); 20 int sourceLen = (int)strlen((const char *)source);
20 for (int i = 0; i < sourceLen; ++i) { 21 for (int i = 0; i < sourceLen; ++i) {
21 const unsigned char thisChar = source[i]; 22 const unsigned char thisChar = source[i];
22 if (thisChar == ' '){ 23 if (thisChar == ' '){
23 [output appendString:@"+"]; 24 [output appendString:@"+"];
24 } else if (thisChar == '.' || thisChar == '-' || thisChar == '_' || thisChar == '~' || 25 } else if (thisChar == '.' || thisChar == '-' || thisChar == '_' || thisChar == '~' ||
25 (thisChar >= 'a' && thisChar <= 'z') || 26 (thisChar >= 'a' && thisChar <= 'z') ||
26 (thisChar >= 'A' && thisChar <= 'Z') || 27 (thisChar >= 'A' && thisChar <= 'Z') ||
27 (thisChar >= '0' && thisChar <= '9')) { 28 (thisChar >= '0' && thisChar <= '9')) {
28 [output appendFormat:@"%c", thisChar]; 29 [output appendFormat:@"%c", thisChar];
29 } else { 30 } else {
30 [output appendFormat:@"%%%02X", thisChar]; 31 [output appendFormat:@"%%%02X", thisChar];
31 } 32 }
32 } 33 }
33 return output; 34 return output;
34 } 35 }
35 @end 36 @end
36 37
37 @implementation ServerAPI 38 @implementation ServerAPI
38 static ServerAPI *_server = nil; 39 static ServerAPI *_server = nil;
39 40
40 NSURLSessionDataTask * searchTask; 41 NSURLSessionDataTask * searchTask;
41 42
42 @synthesize timeOutInterval = _timeOutInterval; 43 @synthesize timeOutInterval = _timeOutInterval;
43 44
44 + (instancetype)server 45 + (instancetype)server
45 { 46 {
46 @synchronized(self) { 47 @synchronized(self) {
47 if (_server == nil) { 48 if (_server == nil) {
48 _server = [[ServerAPI alloc] init]; 49 _server = [[ServerAPI alloc] init];
49 } 50 }
50 } 51 }
51 return _server; 52 return _server;
52 } 53 }
53 54
54 - (instancetype)init 55 - (instancetype)init
55 { 56 {
56 self = [super init]; 57 self = [super init];
57 if (self != nil) { 58 if (self != nil) {
58 self.timeOutInterval = 150; 59 self.timeOutInterval = 150;
59 } 60 }
60 return self; 61 return self;
61 } 62 }
62 63
64 #pragma mark - Login and Register
63 // Login 65 // Login
64 - (void)loginWithEmail:(NSString *)email Password:(NSString *)password CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion 66 - (void)loginWithEmail:(NSString *)email Password:(NSString *)password CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion
65 { 67 {
66 [self _request:[kServerAddress stringByAppendingFormat: @"login"] method:@"POST" token:@"" paras:@{@"email":email, @"password": password} completion:^(NSData *data, NSError *error) { 68 [self _request:[kServerAddress stringByAppendingFormat: @"login"] method:@"POST" token:@"" paras:@{@"email":email, @"password": password} completion:^(NSData *data, NSError *error) {
67 69
68 if (completion == NULL) { 70 if (completion == NULL) {
69 return ; 71 return ;
70 } 72 }
71 73
72 if (error == nil) 74 if (error == nil)
73 { 75 {
74 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 76 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
75 77
76 int status = [dataResult[@"status"] intValue]; 78 int status = [dataResult[@"status"] intValue];
77 if (status == 1) { // status = 1 success 79 if (status == 1) { // status = 1 success
78 NSString *token = dataResult[@"result"][@"token"]; 80 NSString *token = dataResult[@"result"][@"token"];
79 NSDictionary *dictUser = dataResult[@"result"][@"user"]; 81 NSDictionary *dictUser = dataResult[@"result"][@"user"];
80 User *user = [[User alloc] init]; 82 User *user = [[User alloc] init];
81 user.user_id = [NSString stringWithFormat:@"%@",dictUser[@"id"]]; 83 user.user_id = [NSString stringWithFormat:@"%@",dictUser[@"id"]];
82 user.username = [NSString stringWithFormat:@"%@",dictUser[@"username"]]; 84 user.username = [NSString stringWithFormat:@"%@",dictUser[@"username"]];
83 user.full_name = [NSString stringWithFormat:@"%@",dictUser[@"full_name"]]; 85 user.full_name = [NSString stringWithFormat:@"%@",dictUser[@"full_name"]];
84 user.nickname = [NSString stringWithFormat:@"%@",dictUser[@"nickname"]]; 86 user.nickname = [NSString stringWithFormat:@"%@",dictUser[@"nickname"]];
85 user.email = [NSString stringWithFormat:@"%@",dictUser[@"email"]]; 87 user.email = [NSString stringWithFormat:@"%@",dictUser[@"email"]];
86 user.password = [NSString stringWithFormat:@"%@",dictUser[@"password"]]; 88 user.password = [NSString stringWithFormat:@"%@",dictUser[@"password"]];
87 user.birthday = [NSString stringWithFormat:@"%@",dictUser[@"birthday"]]; 89 user.birthday = [NSString stringWithFormat:@"%@",dictUser[@"birthday"]];
88 user.address = [NSString stringWithFormat:@"%@",dictUser[@"address"]]; 90 user.address = [NSString stringWithFormat:@"%@",dictUser[@"address"]];
89 user.gender = [[NSString stringWithFormat:@"%@",dictUser[@"gender"]] intValue]; 91 user.gender = [[NSString stringWithFormat:@"%@",dictUser[@"gender"]] intValue];
90 user.height = [[NSString stringWithFormat:@"%@",dictUser[@"height"]] floatValue]; 92 user.height = [[NSString stringWithFormat:@"%@",dictUser[@"height"]] floatValue];
91 user.weight = [[NSString stringWithFormat:@"%@",dictUser[@"weight"]] floatValue]; 93 user.weight = [[NSString stringWithFormat:@"%@",dictUser[@"weight"]] floatValue];
92 user.user_description = [NSString stringWithFormat:@"%@",dictUser[@"description"]]; 94 user.user_description = [NSString stringWithFormat:@"%@",dictUser[@"description"]];
93 user.created_at = [NSString stringWithFormat:@"%@",dictUser[@"created_at"]]; 95 user.created_at = [NSString stringWithFormat:@"%@",dictUser[@"created_at"]];
94 user.physical_activity = [NSString stringWithFormat:@"%@",dictUser[@"physical_activity"]]; 96 user.physical_activity = [NSString stringWithFormat:@"%@",dictUser[@"physical_activity"]];
95 user.profile_image = [NSString stringWithFormat:@"%@",dictUser[@"profile_image"]]; 97 user.profile_image = [NSString stringWithFormat:@"%@",dictUser[@"profile_image"]];
96 user.updated_at = [NSString stringWithFormat:@"%@",dictUser[@"updated_at"]]; 98 user.updated_at = [NSString stringWithFormat:@"%@",dictUser[@"updated_at"]];
97 user.delete_flag = [[NSString stringWithFormat:@"%@",dictUser[@"delete_flag"]] intValue]; 99 user.delete_flag = [[NSString stringWithFormat:@"%@",dictUser[@"delete_flag"]] intValue];
98 user.fat_rate = [[NSString stringWithFormat:@"%@",dictUser[@"fat_rate"]] intValue]; 100 user.fat_rate = [[NSString stringWithFormat:@"%@",dictUser[@"fat_rate"]] intValue];
99 user.profiles_share = [[NSString stringWithFormat:@"%@",dictUser[@"profiles_share"]] intValue]; 101 user.profiles_share = [[NSString stringWithFormat:@"%@",dictUser[@"profiles_share"]] intValue];
100 user.remember_me = [[NSString stringWithFormat:@"%@",dictUser[@"remember_me"]] intValue]; 102 user.remember_me = [[NSString stringWithFormat:@"%@",dictUser[@"remember_me"]] intValue];
101 user.sound_notifications_share = [[NSString stringWithFormat:@"%@",dictUser[@"sound_notifications_share"]] intValue]; 103 user.sound_notifications_share = [[NSString stringWithFormat:@"%@",dictUser[@"sound_notifications_share"]] intValue];
102 user.spend_calo_in_day = [[NSString stringWithFormat:@"%@",dictUser[@"spend_calo_in_day"]] intValue]; 104 user.spend_calo_in_day = [[NSString stringWithFormat:@"%@",dictUser[@"spend_calo_in_day"]] intValue];
103 user.target = [[NSString stringWithFormat:@"%@",dictUser[@"target"]] intValue]; 105 user.target = [[NSString stringWithFormat:@"%@",dictUser[@"target"]] intValue];
104 completion(user, token, nil); 106 completion(user, token, nil);
105 } 107 }
106 else { // status = 0 error 108 else { // status = 0 error
107 NSString *message = dataResult[@"message"]; 109 NSString *message = dataResult[@"message"];
108 if (message == nil) { 110 if (message == nil) {
109 message = @"Unknown error"; 111 message = @"Unknown error";
110 } 112 }
111 NSError *loginFaild = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 113 NSError *loginFaild = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
112 completion(nil, nil, loginFaild); 114 completion(nil, nil, loginFaild);
113 } 115 }
114 } 116 }
115 else 117 else
116 { 118 {
117 completion(nil, nil, error); 119 completion(nil, nil, error);
118 } 120 }
119 }]; 121 }];
120 } 122 }
121 123
122 // Register 124 // Register
123 - (void)registerUserWithParams:(NSDictionary *)params CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion { 125 - (void)registerUserWithParams:(NSDictionary *)params CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion {
124 [self _request:[kServerAddress stringByAppendingFormat: @"register"] method:@"POST" token:@"" paras:params completion:^(NSData *data, NSError *error) { 126 [self _request:[kServerAddress stringByAppendingFormat: @"register"] method:@"POST" token:@"" paras:params completion:^(NSData *data, NSError *error) {
125 127
126 if (completion == NULL) { 128 if (completion == NULL) {
127 return ; 129 return ;
128 } 130 }
129 131
130 if (error == nil) 132 if (error == nil)
131 { 133 {
132 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 134 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
133 135
134 int status = [dataResult[@"status"] intValue]; 136 int status = [dataResult[@"status"] intValue];
135 if (status == 1) { // status = 1 success 137 if (status == 1) { // status = 1 success
136 NSString *token = dataResult[@"result"][@"token"]; 138 NSString *token = dataResult[@"result"][@"token"];
137 NSDictionary *dictUser = dataResult[@"result"][@"user"]; 139 NSDictionary *dictUser = dataResult[@"result"][@"user"];
138 User *user = [[User alloc] init]; 140 User *user = [[User alloc] init];
139 user.user_id = [NSString stringWithFormat:@"%@",dictUser[@"id"]]; 141 user.user_id = [NSString stringWithFormat:@"%@",dictUser[@"id"]];
140 user.username = [NSString stringWithFormat:@"%@",dictUser[@"username"]]; 142 user.username = [NSString stringWithFormat:@"%@",dictUser[@"username"]];
141 user.full_name = [NSString stringWithFormat:@"%@",dictUser[@"full_name"]]; 143 user.full_name = [NSString stringWithFormat:@"%@",dictUser[@"full_name"]];
142 user.nickname = [NSString stringWithFormat:@"%@",dictUser[@"nickname"]]; 144 user.nickname = [NSString stringWithFormat:@"%@",dictUser[@"nickname"]];
143 user.email = [NSString stringWithFormat:@"%@",dictUser[@"email"]]; 145 user.email = [NSString stringWithFormat:@"%@",dictUser[@"email"]];
144 user.password = [NSString stringWithFormat:@"%@",dictUser[@"password"]]; 146 user.password = [NSString stringWithFormat:@"%@",dictUser[@"password"]];
145 user.birthday = [NSString stringWithFormat:@"%@",dictUser[@"birthday"]]; 147 user.birthday = [NSString stringWithFormat:@"%@",dictUser[@"birthday"]];
146 user.address = [NSString stringWithFormat:@"%@",dictUser[@"address"]]; 148 user.address = [NSString stringWithFormat:@"%@",dictUser[@"address"]];
147 user.gender = [[NSString stringWithFormat:@"%@",dictUser[@"gender"]] intValue]; 149 user.gender = [[NSString stringWithFormat:@"%@",dictUser[@"gender"]] intValue];
148 user.height = [[NSString stringWithFormat:@"%@",dictUser[@"height"]] floatValue]; 150 user.height = [[NSString stringWithFormat:@"%@",dictUser[@"height"]] floatValue];
149 user.weight = [[NSString stringWithFormat:@"%@",dictUser[@"weight"]] floatValue]; 151 user.weight = [[NSString stringWithFormat:@"%@",dictUser[@"weight"]] floatValue];
150 user.user_description = [NSString stringWithFormat:@"%@",dictUser[@"description"]]; 152 user.user_description = [NSString stringWithFormat:@"%@",dictUser[@"description"]];
151 user.created_at = [NSString stringWithFormat:@"%@",dictUser[@"created_at"]]; 153 user.created_at = [NSString stringWithFormat:@"%@",dictUser[@"created_at"]];
152 user.physical_activity = [NSString stringWithFormat:@"%@",dictUser[@"physical_activity"]]; 154 user.physical_activity = [NSString stringWithFormat:@"%@",dictUser[@"physical_activity"]];
153 user.profile_image = [NSString stringWithFormat:@"%@",dictUser[@"profile_image"]]; 155 user.profile_image = [NSString stringWithFormat:@"%@",dictUser[@"profile_image"]];
154 user.updated_at = [NSString stringWithFormat:@"%@",dictUser[@"updated_at"]]; 156 user.updated_at = [NSString stringWithFormat:@"%@",dictUser[@"updated_at"]];
155 user.delete_flag = [[NSString stringWithFormat:@"%@",dictUser[@"delete_flag"]] intValue]; 157 user.delete_flag = [[NSString stringWithFormat:@"%@",dictUser[@"delete_flag"]] intValue];
156 user.fat_rate = [[NSString stringWithFormat:@"%@",dictUser[@"fat_rate"]] intValue]; 158 user.fat_rate = [[NSString stringWithFormat:@"%@",dictUser[@"fat_rate"]] intValue];
157 user.profiles_share = [[NSString stringWithFormat:@"%@",dictUser[@"profiles_share"]] intValue]; 159 user.profiles_share = [[NSString stringWithFormat:@"%@",dictUser[@"profiles_share"]] intValue];
158 user.remember_me = [[NSString stringWithFormat:@"%@",dictUser[@"remember_me"]] intValue]; 160 user.remember_me = [[NSString stringWithFormat:@"%@",dictUser[@"remember_me"]] intValue];
159 user.sound_notifications_share = [[NSString stringWithFormat:@"%@",dictUser[@"sound_notifications_share"]] intValue]; 161 user.sound_notifications_share = [[NSString stringWithFormat:@"%@",dictUser[@"sound_notifications_share"]] intValue];
160 user.spend_calo_in_day = [[NSString stringWithFormat:@"%@",dictUser[@"spend_calo_in_day"]] intValue]; 162 user.spend_calo_in_day = [[NSString stringWithFormat:@"%@",dictUser[@"spend_calo_in_day"]] intValue];
161 user.target = [[NSString stringWithFormat:@"%@",dictUser[@"target"]] intValue]; 163 user.target = [[NSString stringWithFormat:@"%@",dictUser[@"target"]] intValue];
162 completion(user, token, nil); 164 completion(user, token, nil);
163 } 165 }
164 else { // status = 0 error 166 else { // status = 0 error
165 NSString *message = dataResult[@"message"]; 167 NSString *message = dataResult[@"message"];
166 if (message == nil) { 168 if (message == nil) {
167 message = @"Unknown error"; 169 message = @"Unknown error";
168 } 170 }
169 NSError *loginFaild = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 171 NSError *loginFaild = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
170 completion(nil, nil, loginFaild); 172 completion(nil, nil, loginFaild);
171 } 173 }
172 } 174 }
173 else 175 else
174 { 176 {
175 completion(nil, nil, error); 177 completion(nil, nil, error);
176 } 178 }
177 }]; 179 }];
178 } 180 }
179 181
180 - (void)forgetPass:(NSString *)email CompletionHandler:(void (^)(NSError *)) completion { 182 - (void)forgetPass:(NSString *)email CompletionHandler:(void (^)(NSError *)) completion {
181 [self _request:[kServerAddress stringByAppendingFormat: @"forgetPass"] method:@"POST" token:@"" paras:@{@"email":email} completion:^(NSData *data, NSError *error) { 183 [self _request:[kServerAddress stringByAppendingFormat: @"forgetPass"] method:@"POST" token:@"" paras:@{@"email":email} completion:^(NSData *data, NSError *error) {
182 184
183 if (completion == NULL) { 185 if (completion == NULL) {
184 return ; 186 return ;
185 } 187 }
186 188
187 if (error == nil) 189 if (error == nil)
188 { 190 {
189 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 191 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
190 192
191 int status = [dataResult[@"status"] intValue]; 193 int status = [dataResult[@"status"] intValue];
192 if (status == 1) { // status = 1 success 194 if (status == 1) { // status = 1 success
193 completion(nil); 195 completion(nil);
194 } 196 }
195 else { // status = 0 error 197 else { // status = 0 error
196 NSString *message = dataResult[@"message"]; 198 NSString *message = dataResult[@"message"];
197 if (message == nil) { 199 if (message == nil) {
198 message = @"Unknown error"; 200 message = @"Unknown error";
199 } 201 }
200 NSError *forgetPass = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 202 NSError *forgetPass = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
201 completion(forgetPass); 203 completion(forgetPass);
202 } 204 }
203 } 205 }
204 else 206 else
205 { 207 {
206 completion(error); 208 completion(error);
207 } 209 }
208 }]; 210 }];
209 } 211 }
210 - (void)confirmForgetPass:(NSString *)email withConfirm:(NSString *)confirm CompletionHandler:(void (^)(NSError *)) completion { 212 - (void)confirmForgetPass:(NSString *)email withConfirm:(NSString *)confirm CompletionHandler:(void (^)(NSError *)) completion {
211 [self _request:[kServerAddress stringByAppendingFormat: @"forgetPass/confirm"] method:@"POST" token:@"" paras:@{@"email":email, @"code_confirm": confirm} completion:^(NSData *data, NSError *error) { 213 [self _request:[kServerAddress stringByAppendingFormat: @"forgetPass/confirm"] method:@"POST" token:@"" paras:@{@"email":email, @"code_confirm": confirm} completion:^(NSData *data, NSError *error) {
212 214
213 if (completion == NULL) { 215 if (completion == NULL) {
214 return ; 216 return ;
215 } 217 }
216 218
217 if (error == nil) 219 if (error == nil)
218 { 220 {
219 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 221 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
220 222
221 int status = [dataResult[@"status"] intValue]; 223 int status = [dataResult[@"status"] intValue];
222 if (status == 1) { // status = 1 success 224 if (status == 1) { // status = 1 success
223 completion(nil); 225 completion(nil);
224 } 226 }
225 else { // status = 0 error 227 else { // status = 0 error
226 NSString *message = dataResult[@"message"]; 228 NSString *message = dataResult[@"message"];
227 NSError *confirmForgetPass = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 229 NSError *confirmForgetPass = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
228 completion(confirmForgetPass); 230 completion(confirmForgetPass);
229 } 231 }
230 } 232 }
231 else 233 else
232 { 234 {
233 completion(error); 235 completion(error);
234 } 236 }
235 }]; 237 }];
236 } 238 }
237 239
238 - (void)uploadImage:(NSString *)token andImageData:(NSData *)data CompletionHandler:(void (^)(NSString *, NSError *)) completion { 240 - (void)uploadImage:(NSString *)token andImageData:(NSData *)data CompletionHandler:(void (^)(NSString *, NSError *)) completion {
239 NSDictionary *dict = nil; 241 NSDictionary *dict = nil;
240 NSString *base64Encoded = [data base64EncodedStringWithOptions:0]; 242 NSString *base64Encoded = [data base64EncodedStringWithOptions:0];
241 if (token != nil) { 243 if (token != nil) {
242 dict = @{@"token":token, @"img": base64Encoded}; 244 dict = @{@"token":token, @"img": base64Encoded};
243 } 245 }
244 else { 246 else {
245 dict = @{@"img": base64Encoded}; 247 dict = @{@"img": base64Encoded};
246 } 248 }
247 [self _request:[kServerAddress stringByAppendingFormat: @"upload-image"] method:@"POST" token:token paras:dict completion:^(NSData *data, NSError *error) { 249 [self _request:[kServerAddress stringByAppendingFormat: @"upload-image"] method:@"POST" token:token paras:dict completion:^(NSData *data, NSError *error) {
248 250
249 if (completion == NULL) { 251 if (completion == NULL) {
250 return ; 252 return ;
251 } 253 }
252 254
253 if (error == nil) 255 if (error == nil)
254 { 256 {
255 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 257 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
256 NSString *image_profile = [NSString stringWithFormat:@"%@", dataResult[@"message"]]; 258 NSString *image_profile = [NSString stringWithFormat:@"%@", dataResult[@"message"]];
257 completion(image_profile, nil); 259 completion(image_profile, nil);
258 } 260 }
259 else 261 else
260 { 262 {
261 completion(nil, error); 263 completion(nil, error);
262 } 264 }
263 }]; 265 }];
264 } 266 }
265 267
266 -(NSString *) convertIntToString : (int) type { 268 -(NSString *) convertIntToString : (int) type {
267 switch (type) { 269 switch (type) {
268 case 1: 270 case 1:
269 return @"week"; 271 return @"week";
270 break; 272 break;
271 case 2: 273 case 2:
272 return @"oneMonth"; 274 return @"oneMonth";
273 break; 275 break;
274 case 3: 276 case 3:
275 return @"threeMonth"; 277 return @"threeMonth";
276 break; 278 break;
277 case 4: 279 case 4:
278 return @"sixMonth"; 280 return @"sixMonth";
279 break; 281 break;
280 default: 282 default:
281 return @"today"; 283 return @"today";
282 break; 284 break;
283 } 285 }
284 } 286 }
285 287
288 #pragma mark - Home Screen Function
289 - (void)requestTopWithMode:(int)mode andDate:(NSString *)date CompletionHandler:(void (^)(TopObject *, NSError *)) completion
290 {
291 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken];
292 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/top/%d/%@", mode, date];
293 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) {
294
295 if (completion == NULL) {
296 return ;
297 }
298
299 if (error == nil)
300 {
301 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
302 int status = [dataResult[@"status"] intValue];
303 if (status == 1) { // status = 1 success
304 if(dataResult[@"result"] != nil) {
305 NSDictionary * dictResult = dataResult[@"result"];
306 TopObject *topObject = [[TopObject alloc] init];
307 TargetInfor *targetInfor = [[TargetInfor alloc] initWithData:dictResult[@"targetInf"]];
308 topObject.targetInfor = targetInfor;
309 topObject.kcal = [[NSString stringWithFormat:@"%@", dictResult[@"kcal"]] intValue];
310 topObject.distance = [[NSString stringWithFormat:@"%@", dictResult[@"distance"]] floatValue];
311 topObject.time = [NSString stringWithFormat:@"%@", dictResult[@"time"]];
312 NSMutableArray *arrayStep = [[NSMutableArray alloc] init];
313 NSArray *array = dictResult[@"dataChart"];
314 for(NSDictionary *dict in array) {
315 StepObject *object = [[StepObject alloc] init];
316 if([dict objectForKey:@"numStep"] != nil) {
317 object.step = [dict[@"numStep"] intValue];
318 }
319 if([dict objectForKey:@"hour"] != nil) {
320 object.hour = [dict[@"hour"] intValue];
321 }
322 switch (mode) {
323 case 1:
324 object.typeStep = @"walking";
325 break;
326 case 2:
327 object.typeStep = @"running";
328 break;
329 case 3:
330 object.typeStep = @"bike";
331 break;
332 default:
333 break;
334 }
335 [arrayStep addObject:object];
336 }
337 topObject.dataChart = [[NSMutableArray alloc] initWithArray:arrayStep];
338 completion(topObject, nil);
339 }
340 else {
341 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}];
342 completion(nil, errorObject);
343 }
344 }
345 else {
346 NSString *message = dataResult[@"message"];
347 if (message == nil) {
348 message = @"Unknown error";
349 }
350 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
351 completion(nil, errorObject);
352 [self checkToken:message];
353 }
354 }
355 else
356 {
357 completion(nil, error);
358 }
359 }];
360 }
361
286 #pragma mark - History Screen Function 362 #pragma mark - History Screen Function
287 - (void) requestHistory:(NSString *)token atDate:(NSDate *)date withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryObject *, NSError *)) completion { 363 - (void) requestHistory:(NSString *)token atDate:(NSDate *)date withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryObject *, NSError *)) completion {
288 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/history/%@/%d", [self convertIntToString:type], mode]; 364 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/history/%@/%d", [self convertIntToString:type], mode];
289 NSLog(@"requestHistory link %@", url); 365 NSLog(@"requestHistory link %@", url);
290 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) { 366 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) {
291 367
292 if (completion == NULL) { 368 if (completion == NULL) {
293 return ; 369 return ;
294 } 370 }
295 371
296 if (error == nil) 372 if (error == nil)
297 { 373 {
298 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 374 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
299 NSLog(@"%@", dataResult); 375 NSLog(@"%@", dataResult);
300 int status = [dataResult[@"status"] intValue]; 376 int status = [dataResult[@"status"] intValue];
301 if (status == 1) { // status = 1 success 377 if (status == 1) { // status = 1 success
302 HistoryObject * object = [[HistoryObject alloc] initWithData:dataResult[@"result"]]; 378 HistoryObject * object = [[HistoryObject alloc] initWithData:dataResult[@"result"]];
303 completion(object, nil); 379 completion(object, nil);
304 } 380 }
305 else { 381 else {
306 NSString *message = dataResult[@"message"]; 382 NSString *message = dataResult[@"message"];
307 if (message == nil) { 383 if (message == nil) {
308 message = @"Unknown error"; 384 message = @"Unknown error";
309 } 385 }
310 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 386 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
311 completion(nil, errorObject); 387 completion(nil, errorObject);
388 [self checkToken:message];
312 } 389 }
313 } 390 }
314 else 391 else
315 { 392 {
316 completion(nil, error); 393 completion(nil, error);
317 } 394 }
318 }]; 395 }];
319 } 396 }
320 397
321 - (void) requestHistoryGraph:(NSString *)token withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryGraphObject *, NSError *)) completion { 398 - (void) requestHistoryGraph:(NSString *)token withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryGraphObject *, NSError *)) completion {
322 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/history/graph/%@/%d", [self convertIntToString:type], mode]; 399 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/history/graph/%@/%d", [self convertIntToString:type], mode];
323 NSLog(@"requestHistoryGraph link %@", url); 400 NSLog(@"requestHistoryGraph link %@", url);
324 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) { 401 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) {
325 402
326 if (completion == NULL) { 403 if (completion == NULL) {
327 return ; 404 return ;
328 } 405 }
329 406
330 if (error == nil) 407 if (error == nil)
331 { 408 {
332 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 409 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
333 NSLog(@"%@", dataResult); 410 NSLog(@"%@", dataResult);
334 int status = [dataResult[@"status"] intValue]; 411 int status = [dataResult[@"status"] intValue];
335 if (status == 1) { // status = 1 success 412 if (status == 1) { // status = 1 success
336 HistoryGraphObject * object = [[HistoryGraphObject alloc] initWithData:dataResult[@"result"]]; 413 HistoryGraphObject * object = [[HistoryGraphObject alloc] initWithData:dataResult[@"result"]];
337 completion(object, nil); 414 completion(object, nil);
338 } 415 }
339 else { 416 else {
340 NSString *message = dataResult[@"message"]; 417 NSString *message = dataResult[@"message"];
341 if (message == nil) { 418 if (message == nil) {
342 message = @"Unknown error"; 419 message = @"Unknown error";
343 } 420 }
344 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 421 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
345 completion(nil, errorObject); 422 completion(nil, errorObject);
423 [self checkToken:message];
346 } 424 }
347 } 425 }
348 else 426 else
349 { 427 {
350 completion(nil, error); 428 completion(nil, error);
351 } 429 }
352 }]; 430 }];
353 } 431 }
354 432
355 - (void) requestHistoryList:(NSString *)token withType:(int)type andMode:(int) mode AtPage:(int) page CompletionHandler:(void (^)(NSArray *, NSError *)) completion { 433 - (void) requestHistoryList:(NSString *)token withType:(int)type andMode:(int) mode AtPage:(int) page CompletionHandler:(void (^)(NSArray *, NSError *)) completion {
356 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/history/list/%@/%d?page=%d&record=50", [self convertIntToString:type], mode, page]; 434 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/history/list/%@/%d?page=%d&record=50", [self convertIntToString:type], mode, page];
357 NSLog(@"requestHistoryList link %@", url); 435 NSLog(@"requestHistoryList link %@", url);
358 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) { 436 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) {
359 437
360 if (completion == NULL) { 438 if (completion == NULL) {
361 return ; 439 return ;
362 } 440 }
363 441
364 if (error == nil) 442 if (error == nil)
365 { 443 {
366 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 444 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
367 NSLog(@"%@", dataResult); 445 NSLog(@"%@", dataResult);
368 int status = [dataResult[@"status"] intValue]; 446 int status = [dataResult[@"status"] intValue];
369 if (status == 1) { // status = 1 success 447 if (status == 1) { // status = 1 success
370 if(dataResult[@"result"] != nil) { 448 if(dataResult[@"result"] != nil) {
371 NSArray * array = dataResult[@"result"][@"data"]; 449 NSArray * array = dataResult[@"result"][@"data"];
372 NSMutableArray * arrayHistory = [[NSMutableArray alloc] init]; 450 NSMutableArray * arrayHistory = [[NSMutableArray alloc] init];
373 for(NSDictionary * dict in array) { 451 for(NSDictionary * dict in array) {
374 HistoryObject * object = [[HistoryObject alloc] initWithData:dict]; 452 HistoryObject * object = [[HistoryObject alloc] initWithData:dict];
375 [arrayHistory addObject:object]; 453 [arrayHistory addObject:object];
376 } 454 }
377 completion(arrayHistory, nil); 455 completion(arrayHistory, nil);
378 } 456 }
379 else { 457 else {
380 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}]; 458 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}];
381 completion(nil, errorObject); 459 completion(nil, errorObject);
382 } 460 }
383 } 461 }
384 else { 462 else {
385 NSString *message = dataResult[@"message"]; 463 NSString *message = dataResult[@"message"];
386 if (message == nil) { 464 if (message == nil) {
387 message = @"Unknown error"; 465 message = @"Unknown error";
388 } 466 }
389 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 467 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
390 completion(nil, errorObject); 468 completion(nil, errorObject);
469 [self checkToken:message];
391 } 470 }
392 } 471 }
393 else 472 else
394 { 473 {
395 completion(nil, error); 474 completion(nil, error);
396 } 475 }
397 }]; 476 }];
398 } 477 }
399 478
400 #pragma mark - SNS Screen Function 479 #pragma mark - SNS Screen Function
401 - (void) requestTweetsList:(NSString *)token groupID: (int) groupID withPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion { 480 - (void) requestTweetsList:(NSString *)token groupID: (int) groupID withPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion {
402 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/sns/%d", page]; 481 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/sns/%d", page];
403 if(groupID > -1) { 482 if(groupID > -1) {
404 url = [kServerAddress stringByAppendingFormat:@"api/tweet/list?group_id=%d&page=%d&record=10", groupID, page]; 483 url = [kServerAddress stringByAppendingFormat:@"api/tweet/list?group_id=%d&page=%d&record=10", groupID, page];
405 } 484 }
406 NSLog(@"requestTweetsList link %@", url); 485 NSLog(@"requestTweetsList link %@", url);
407 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) { 486 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) {
408 487
409 if (completion == NULL) { 488 if (completion == NULL) {
410 return ; 489 return ;
411 } 490 }
412 491
413 if (error == nil) 492 if (error == nil)
414 { 493 {
415 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 494 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
416 NSLog(@"%@", dataResult); 495 NSLog(@"%@", dataResult);
417 int status = [dataResult[@"status"] intValue]; 496 int status = [dataResult[@"status"] intValue];
418 if (status == 1) { // status = 1 success 497 if (status == 1) { // status = 1 success
419 if(dataResult[@"result"] != nil) { 498 if(dataResult[@"result"] != nil) {
420 NSArray * array = dataResult[@"result"]; 499 NSArray * array = dataResult[@"result"];
421 NSMutableArray * arrayTweets = [[NSMutableArray alloc] init]; 500 NSMutableArray * arrayTweets = [[NSMutableArray alloc] init];
422 for(NSDictionary * dict in array) { 501 for(NSDictionary * dict in array) {
423 TweetObject * object = [[TweetObject alloc] initWithData:dict]; 502 TweetObject * object = [[TweetObject alloc] initWithData:dict];
424 [arrayTweets addObject:object]; 503 [arrayTweets addObject:object];
425 } 504 }
426 completion(arrayTweets, nil); 505 completion(arrayTweets, nil);
427 } 506 }
428 else { 507 else {
429 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}]; 508 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}];
430 completion(nil, errorObject); 509 completion(nil, errorObject);
431 } 510 }
432 } 511 }
433 else { 512 else {
434 NSString *message = dataResult[@"message"]; 513 NSString *message = dataResult[@"message"];
435 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 514 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
436 completion(nil, errorObject); 515 completion(nil, errorObject);
516 [self checkToken:message];
437 } 517 }
438 } 518 }
439 else 519 else
440 { 520 {
441 completion(nil, error); 521 completion(nil, error);
442 } 522 }
443 }]; 523 }];
444 } 524 }
445 525
446 - (void) searchGroup:(NSString *)token withKey:(NSString *)key andPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion { 526 - (void) searchGroup:(NSString *)token withKey:(NSString *)key andPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion {
447 NSString *url = [kServerAddress stringByAppendingFormat:@"api/sns/group/search"]; 527 NSString *url = [kServerAddress stringByAppendingFormat:@"api/sns/group/search"];
448 NSLog(@"searchGroup link %@ page %d", url, page); 528 NSLog(@"searchGroup link %@ page %d", url, page);
449 if(searchTask != nil) { 529 if(searchTask != nil) {
450 [searchTask cancel]; 530 [searchTask cancel];
451 } 531 }
452 532
453 searchTask = [self _request:url method:@"POST" token:token paras:@{@"keyword":key, @"page": [NSNumber numberWithInt:page]} completion:^(NSData *data, NSError *error) { 533 searchTask = [self _request:url method:@"POST" token:token paras:@{@"keyword":key, @"page": [NSNumber numberWithInt:page]} completion:^(NSData *data, NSError *error) {
454 searchTask = nil; 534 searchTask = nil;
455 if (completion == NULL) { 535 if (completion == NULL) {
456 return ; 536 return ;
457 } 537 }
458 538
459 if (error == nil) 539 if (error == nil)
460 { 540 {
461 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 541 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
462 NSLog(@"%@", dataResult); 542 NSLog(@"%@", dataResult);
463 int status = [dataResult[@"status"] intValue]; 543 int status = [dataResult[@"status"] intValue];
464 if (status == 1) { // status = 1 success 544 if (status == 1) { // status = 1 success
465 if(dataResult[@"result"] != nil) { 545 if(dataResult[@"result"] != nil) {
466 NSArray * array = dataResult[@"result"]; 546 NSArray * array = dataResult[@"result"];
467 NSMutableArray * arrayTweets = [[NSMutableArray alloc] init]; 547 NSMutableArray * arrayTweets = [[NSMutableArray alloc] init];
468 for(NSDictionary * dict in array) { 548 for(NSDictionary * dict in array) {
469 GroupObject * object = [[GroupObject alloc] initWithData:dict]; 549 GroupObject * object = [[GroupObject alloc] initWithData:dict];
470 [arrayTweets addObject:object]; 550 [arrayTweets addObject:object];
471 } 551 }
472 completion(arrayTweets, nil); 552 completion(arrayTweets, nil);
473 } 553 }
474 else { 554 else {
475 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}]; 555 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}];
476 completion(nil, errorObject); 556 completion(nil, errorObject);
477 } 557 }
478 } 558 }
479 else { 559 else {
480 NSString *message = dataResult[@"message"]; 560 NSString *message = dataResult[@"message"];
481 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 561 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
482 completion(nil, errorObject); 562 completion(nil, errorObject);
483 } 563 }
484 } 564 }
485 else 565 else
486 { 566 {
487 completion(nil, error); 567 completion(nil, error);
488 } 568 }
489 }]; 569 }];
490 } 570 }
491 571
492 #pragma mark - Private Function 572 #pragma mark - Private Function
573 - (BOOL) checkToken:(NSString *)message {
574 if ([message isEqualToString:@"Token is invalid"]) {
575 [[NSNotificationCenter defaultCenter] postNotificationName:kNotificationToken object:nil];
576 return YES;
577 }
578 else {
579 return NO;
580 }
581 }
493 - (NSData *) _encodeDictionary: (NSDictionary *) dictionary 582 - (NSData *) _encodeDictionary: (NSDictionary *) dictionary
494 { 583 {
495 NSMutableArray *parts = [[NSMutableArray alloc] init]; 584 NSMutableArray *parts = [[NSMutableArray alloc] init];
496 for (id key in dictionary) 585 for (id key in dictionary)
497 { 586 {
498 NSString *encodedValue = [[dictionary[key] description] urlencode]; 587 NSString *encodedValue = [[dictionary[key] description] urlencode];
499 NSString *encodedKey = [[key description] urlencode];//[[key description] stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]; 588 NSString *encodedKey = [[key description] urlencode];//[[key description] stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
500 NSString *part = [NSString stringWithFormat: @"%@=%@", encodedKey, encodedValue]; 589 NSString *part = [NSString stringWithFormat: @"%@=%@", encodedKey, encodedValue];
501 [parts addObject:part]; 590 [parts addObject:part];
502 } 591 }
503 NSString *encodedDictionary = [parts componentsJoinedByString:@"&"]; 592 NSString *encodedDictionary = [parts componentsJoinedByString:@"&"];
504 return [encodedDictionary dataUsingEncoding: NSUTF8StringEncoding]; 593 return [encodedDictionary dataUsingEncoding: NSUTF8StringEncoding];
505 } 594 }
506 595
507 - (NSURLSessionDataTask *) _request:(NSString *)address method:(NSString *)method token:(NSString *) token paras:(NSDictionary *)paras completion:(void (^)(NSData *data, NSError *error))completion 596 - (NSURLSessionDataTask *) _request:(NSString *)address method:(NSString *)method token:(NSString *) token paras:(NSDictionary *)paras completion:(void (^)(NSData *data, NSError *error))completion
508 { 597 {
509 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: [NSURL URLWithString:address]]; 598 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: [NSURL URLWithString:address]];
510 request.HTTPMethod = method; 599 request.HTTPMethod = method;
511 [request setValue: @"application/json" forHTTPHeaderField: @"Accept"]; 600 [request setValue: @"application/json" forHTTPHeaderField: @"Accept"];
512 [request setValue: @"application/json" forHTTPHeaderField: @"Content-Type"]; 601 [request setValue: @"application/json" forHTTPHeaderField: @"Content-Type"];
513 if(token != nil && ![token isEqual: @""]) { 602 if(token != nil && ![token isEqual: @""]) {
514 [request setValue: token forHTTPHeaderField: @"token"]; 603 [request setValue: token forHTTPHeaderField: @"token"];
515 } 604 }
516 [request setTimeoutInterval:self.timeOutInterval]; 605 [request setTimeoutInterval:self.timeOutInterval];
517 606
518 if (paras != nil) 607 if (paras != nil)
519 { 608 {
520 NSData *encodedData = [self _encodeDictionary: paras]; 609 NSData *encodedData = [self _encodeDictionary: paras];
521 [request setValue: [NSString stringWithFormat: @"%lu", (unsigned long) encodedData.length] forHTTPHeaderField: @"Content-Length"]; 610 [request setValue: [NSString stringWithFormat: @"%lu", (unsigned long) encodedData.length] forHTTPHeaderField: @"Content-Length"];
522 [request setValue: @"application/x-www-form-urlencoded charset=utf-8" forHTTPHeaderField: @"Content-Type"]; 611 [request setValue: @"application/x-www-form-urlencoded charset=utf-8" forHTTPHeaderField: @"Content-Type"];
523 [request setHTTPBody: encodedData]; 612 [request setHTTPBody: encodedData];
524 } 613 }
525 614
526 NSURLSession *session = [NSURLSession sharedSession]; 615 NSURLSession *session = [NSURLSession sharedSession];
527 NSURLSessionDataTask *task = [session dataTaskWithRequest:request 616 NSURLSessionDataTask *task = [session dataTaskWithRequest:request
528 completionHandler: 617 completionHandler:
529 ^(NSData *data, NSURLResponse *response, NSError *error) { 618 ^(NSData *data, NSURLResponse *response, NSError *error) {
530 if (completion == NULL) { 619 if (completion == NULL) {
531 return ; 620 return ;
532 } 621 }
533 if (error == nil) 622 if (error == nil)
534 { 623 {
535 completion(data, nil); 624 completion(data, nil);
536 } 625 }
537 else 626 else
538 { 627 {
539 completion(nil, error); 628 completion(nil, error);
540 } 629 }
541 }]; 630 }];
542 [task resume]; 631 [task resume];
543 return task; 632 return task;
544 } 633 }
545 634
546 @end 635 @end
547 636
LifeLog/LifeLog/StepObject.h
File was created 1 //
2 // StepObject.h
3 // LifeLog
4 //
5 // Created by Nguyen Van Phong on 8/11/17.
6 // Copyright © 2017 PhongNV. All rights reserved.
7 //
8
9 #import <Foundation/Foundation.h>
10
11 @interface StepObject : NSObject
12 @property (nonatomic) int step;
13 @property (nonatomic, strong) NSString *typeStep;
14 @property (nonatomic) int hour;
15 @end
16
LifeLog/LifeLog/StepObject.m
File was created 1 //
2 // StepObject.m
3 // LifeLog
4 //
5 // Created by Nguyen Van Phong on 8/11/17.
6 // Copyright © 2017 PhongNV. All rights reserved.
7 //
8
9 #import "StepObject.h"
10
11 @implementation StepObject
12
13 @end
14
LifeLog/LifeLog/TargetInfor.h
File was created 1 //
2 // TargetInfor.h
3 // LifeLog
4 //
5 // Created by Nguyen Van Phong on 8/13/17.
6 // Copyright © 2017 PhongNV. All rights reserved.
7 //
8
9 #import <Foundation/Foundation.h>
10
11 @interface TargetInfor : NSObject
12 @property (nonatomic) int target_step;
13 @property (nonatomic) int num_step;
14 @property (nonatomic) int remaining_step;
15 @property (nonatomic) float complete_percent;
16 -(id) initWithData : (NSDictionary *) dict;
17 @end
18
LifeLog/LifeLog/TargetInfor.m
File was created 1 //
2 // TargetInfor.m
3 // LifeLog
4 //
5 // Created by Nguyen Van Phong on 8/13/17.
6 // Copyright © 2017 PhongNV. All rights reserved.
7 //
8
9 #import "TargetInfor.h"
10
11 @implementation TargetInfor
12 -(id) initWithData : (NSDictionary *) dict {
13 if([dict objectForKey:@"target_step"] != nil) {
14 self.target_step = [dict[@"target_step"] intValue];
15 }
16 if([dict objectForKey:@"num_step"] != nil) {
17 self.num_step = [dict[@"num_step"] intValue];
18 }
19 if([dict objectForKey:@"remaining_step"] != nil) {
20 self.remaining_step = [dict[@"remaining_step"] intValue];
21 }
22 if([dict objectForKey:@"complete_percent"] != nil) {
23 self.complete_percent = [dict[@"complete_percent"] floatValue];
24 }
25 return self;
26 }
27 @end
28
LifeLog/LifeLog/TopObject.h
File was created 1 //
2 // TopObject.h
3 // LifeLog
4 //
5 // Created by Nguyen Van Phong on 8/13/17.
6 // Copyright © 2017 PhongNV. All rights reserved.
7 //
8
9 #import <Foundation/Foundation.h>
10 #import "StepObject.h"
11 #import "TargetInfor.h"
12
13 @interface TopObject : NSObject
14 @property (nonatomic) int kcal;
15 @property (nonatomic) float distance;
16 @property (nonatomic, strong) NSString *time;
17 @property (nonatomic, strong) TargetInfor *targetInfor;
18 @property (nonatomic, strong) NSMutableArray *dataChart;
19 @end
20
LifeLog/LifeLog/TopObject.m
File was created 1 //
2 // TopObject.m
3 // LifeLog
4 //
5 // Created by Nguyen Van Phong on 8/13/17.
6 // Copyright © 2017 PhongNV. All rights reserved.
7 //
8
9 #import "TopObject.h"
10
11 @implementation TopObject
12
13 @end
14