Commit f4173d1653d2ff87b427eda6d01d5eca88236265

Authored by nvtu11790@gmail.com
1 parent c4525f8715

Add API for request history list and graph in today with selected type and mode

Showing 9 changed files with 253 additions and 39 deletions Inline Diff

LifeLog/LifeLog.xcodeproj/project.pbxproj
1 // !$*UTF8*$! 1 // !$*UTF8*$!
2 { 2 {
3 archiveVersion = 1; 3 archiveVersion = 1;
4 classes = { 4 classes = {
5 }; 5 };
6 objectVersion = 46; 6 objectVersion = 46;
7 objects = { 7 objects = {
8 8
9 /* Begin PBXBuildFile section */ 9 /* Begin PBXBuildFile section */
10 011799F0F2B47D80472673CE /* Pods_LifeLog.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */; }; 10 011799F0F2B47D80472673CE /* Pods_LifeLog.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */; };
11 6E18CED31F2E39DB0029891F /* LoginViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E18CED11F2E39DB0029891F /* LoginViewController.m */; }; 11 6E18CED31F2E39DB0029891F /* LoginViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E18CED11F2E39DB0029891F /* LoginViewController.m */; };
12 6E18CED41F2E39DB0029891F /* LoginViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E18CED21F2E39DB0029891F /* LoginViewController.xib */; }; 12 6E18CED41F2E39DB0029891F /* LoginViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E18CED21F2E39DB0029891F /* LoginViewController.xib */; };
13 6E18CED81F2E3C840029891F /* ServerAPI.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E18CED71F2E3C840029891F /* ServerAPI.m */; }; 13 6E18CED81F2E3C840029891F /* ServerAPI.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E18CED71F2E3C840029891F /* ServerAPI.m */; };
14 6E18CEDC1F2E40F50029891F /* User.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E18CEDB1F2E40F50029891F /* User.m */; }; 14 6E18CEDC1F2E40F50029891F /* User.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E18CEDB1F2E40F50029891F /* User.m */; };
15 6E48AF0D1F2F9D3300C1D184 /* CustomTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */; }; 15 6E48AF0D1F2F9D3300C1D184 /* CustomTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */; };
16 6E7F93421F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */; }; 16 6E7F93421F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */; };
17 6E7F93431F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */; }; 17 6E7F93431F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */; };
18 6E7F93441F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */; }; 18 6E7F93441F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */; };
19 6E7F93451F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */; }; 19 6E7F93451F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */; };
20 6E84E3761F27A701001EB88E /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3751F27A701001EB88E /* main.m */; }; 20 6E84E3761F27A701001EB88E /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3751F27A701001EB88E /* main.m */; };
21 6E84E3791F27A701001EB88E /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3781F27A701001EB88E /* AppDelegate.m */; }; 21 6E84E3791F27A701001EB88E /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3781F27A701001EB88E /* AppDelegate.m */; };
22 6E84E3811F27A701001EB88E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3801F27A701001EB88E /* Assets.xcassets */; }; 22 6E84E3811F27A701001EB88E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3801F27A701001EB88E /* Assets.xcassets */; };
23 6E84E3841F27A701001EB88E /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */; }; 23 6E84E3841F27A701001EB88E /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */; };
24 6E84E38F1F27A703001EB88E /* LifeLogTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E38E1F27A703001EB88E /* LifeLogTests.m */; }; 24 6E84E38F1F27A703001EB88E /* LifeLogTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E38E1F27A703001EB88E /* LifeLogTests.m */; };
25 6E84E39A1F27A703001EB88E /* LifeLogUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3991F27A703001EB88E /* LifeLogUITests.m */; }; 25 6E84E39A1F27A703001EB88E /* LifeLogUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3991F27A703001EB88E /* LifeLogUITests.m */; };
26 6E84E3B01F27A975001EB88E /* HomeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3AE1F27A975001EB88E /* HomeViewController.m */; }; 26 6E84E3B01F27A975001EB88E /* HomeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3AE1F27A975001EB88E /* HomeViewController.m */; };
27 6E84E3B11F27A975001EB88E /* HomeViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */; }; 27 6E84E3B11F27A975001EB88E /* HomeViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */; };
28 6E84E3B51F27A98B001EB88E /* HistoryViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */; }; 28 6E84E3B51F27A98B001EB88E /* HistoryViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */; };
29 6E84E3B61F27A98B001EB88E /* HistoryViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */; }; 29 6E84E3B61F27A98B001EB88E /* HistoryViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */; };
30 6E84E3BA1F27A9A0001EB88E /* RankingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */; }; 30 6E84E3BA1F27A9A0001EB88E /* RankingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */; };
31 6E84E3BB1F27A9A0001EB88E /* RankingViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */; }; 31 6E84E3BB1F27A9A0001EB88E /* RankingViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */; };
32 6E84E3BF1F27A9B1001EB88E /* SNSViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */; }; 32 6E84E3BF1F27A9B1001EB88E /* SNSViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */; };
33 6E84E3C01F27A9B1001EB88E /* SNSViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */; }; 33 6E84E3C01F27A9B1001EB88E /* SNSViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */; };
34 6E84E3C51F27ACAE001EB88E /* MapViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3C31F27ACAE001EB88E /* MapViewController.m */; }; 34 6E84E3C51F27ACAE001EB88E /* MapViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3C31F27ACAE001EB88E /* MapViewController.m */; };
35 6E84E3C61F27ACAE001EB88E /* MapViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */; }; 35 6E84E3C61F27ACAE001EB88E /* MapViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */; };
36 6E8DA0F71F2BAC3400CCE941 /* TodayViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */; }; 36 6E8DA0F71F2BAC3400CCE941 /* TodayViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */; };
37 6E8DA0F81F2BAC3500CCE941 /* TodayViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */; }; 37 6E8DA0F81F2BAC3500CCE941 /* TodayViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */; };
38 6ECC40711F2A5FEB00AAEB97 /* NSDate+helper.m in Sources */ = {isa = PBXBuildFile; fileRef = 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */; }; 38 6ECC40711F2A5FEB00AAEB97 /* NSDate+helper.m in Sources */ = {isa = PBXBuildFile; fileRef = 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */; };
39 6EDC8BEE1F2C2FB800765ACC /* Utilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EDC8BED1F2C2FB800765ACC /* Utilities.m */; }; 39 6EDC8BEE1F2C2FB800765ACC /* Utilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EDC8BED1F2C2FB800765ACC /* Utilities.m */; };
40 6EDC8BF41F2C68D700765ACC /* CMMotionActivityExtra.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */; }; 40 6EDC8BF41F2C68D700765ACC /* CMMotionActivityExtra.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */; };
41 6EF1630A1F29069300DA306C /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6EF163091F29069300DA306C /* Localizable.strings */; }; 41 6EF1630A1F29069300DA306C /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6EF163091F29069300DA306C /* Localizable.strings */; };
42 9CA8AEEA1F31BB4600C5FC74 /* ConfirmForgetPassViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */; }; 42 9CA8AEEA1F31BB4600C5FC74 /* ConfirmForgetPassViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */; };
43 9CA8AEEB1F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */; }; 43 9CA8AEEB1F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */; };
44 9CBDA0FA1F2ECE2C0055DED1 /* BaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */; }; 44 9CBDA0FA1F2ECE2C0055DED1 /* BaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */; };
45 9CBDA0FF1F2F03810055DED1 /* RegisterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */; }; 45 9CBDA0FF1F2F03810055DED1 /* RegisterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */; };
46 9CBDA1001F2F03810055DED1 /* RegisterViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */; }; 46 9CBDA1001F2F03810055DED1 /* RegisterViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */; };
47 E9373E471F3596940059355A /* AutoTransLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E461F3596940059355A /* AutoTransLabel.m */; }; 47 E9373E471F3596940059355A /* AutoTransLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E461F3596940059355A /* AutoTransLabel.m */; };
48 E9373E4A1F35AA180059355A /* HistoryObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E491F35AA180059355A /* HistoryObject.m */; }; 48 E9373E4A1F35AA180059355A /* HistoryObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E491F35AA180059355A /* HistoryObject.m */; };
49 E9373E4D1F361A230059355A /* HistoryGraphObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E4C1F361A230059355A /* HistoryGraphObject.m */; };
49 E99E13AB1F336F3600C78787 /* CollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = E99E13AA1F336F3600C78787 /* CollectionView.m */; }; 50 E99E13AB1F336F3600C78787 /* CollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = E99E13AA1F336F3600C78787 /* CollectionView.m */; };
50 E99E13AD1F336F4500C78787 /* CollectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = E99E13AC1F336F4500C78787 /* CollectionView.xib */; }; 51 E99E13AD1F336F4500C78787 /* CollectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = E99E13AC1F336F4500C78787 /* CollectionView.xib */; };
51 E99E13B11F33720600C78787 /* LabelCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */; }; 52 E99E13B11F33720600C78787 /* LabelCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */; };
52 E99E13B21F33720600C78787 /* LabelCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */; }; 53 E99E13B21F33720600C78787 /* LabelCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */; };
53 E9F73DCC1F338A0F004A3A6F /* HistoryListTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */; }; 54 E9F73DCC1F338A0F004A3A6F /* HistoryListTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */; };
54 E9F73DCD1F338A0F004A3A6F /* HistoryListTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */; }; 55 E9F73DCD1F338A0F004A3A6F /* HistoryListTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */; };
55 /* End PBXBuildFile section */ 56 /* End PBXBuildFile section */
56 57
57 /* Begin PBXContainerItemProxy section */ 58 /* Begin PBXContainerItemProxy section */
58 6E84E38B1F27A703001EB88E /* PBXContainerItemProxy */ = { 59 6E84E38B1F27A703001EB88E /* PBXContainerItemProxy */ = {
59 isa = PBXContainerItemProxy; 60 isa = PBXContainerItemProxy;
60 containerPortal = 6E84E3691F27A700001EB88E /* Project object */; 61 containerPortal = 6E84E3691F27A700001EB88E /* Project object */;
61 proxyType = 1; 62 proxyType = 1;
62 remoteGlobalIDString = 6E84E3701F27A700001EB88E; 63 remoteGlobalIDString = 6E84E3701F27A700001EB88E;
63 remoteInfo = LifeLog; 64 remoteInfo = LifeLog;
64 }; 65 };
65 6E84E3961F27A703001EB88E /* PBXContainerItemProxy */ = { 66 6E84E3961F27A703001EB88E /* PBXContainerItemProxy */ = {
66 isa = PBXContainerItemProxy; 67 isa = PBXContainerItemProxy;
67 containerPortal = 6E84E3691F27A700001EB88E /* Project object */; 68 containerPortal = 6E84E3691F27A700001EB88E /* Project object */;
68 proxyType = 1; 69 proxyType = 1;
69 remoteGlobalIDString = 6E84E3701F27A700001EB88E; 70 remoteGlobalIDString = 6E84E3701F27A700001EB88E;
70 remoteInfo = LifeLog; 71 remoteInfo = LifeLog;
71 }; 72 };
72 /* End PBXContainerItemProxy section */ 73 /* End PBXContainerItemProxy section */
73 74
74 /* Begin PBXFileReference section */ 75 /* Begin PBXFileReference section */
75 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>"; }; 76 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>"; };
76 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LifeLog.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 77 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LifeLog.framework; sourceTree = BUILT_PRODUCTS_DIR; };
77 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>"; }; 78 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>"; };
78 6E18CED01F2E39DB0029891F /* LoginViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoginViewController.h; sourceTree = "<group>"; }; 79 6E18CED01F2E39DB0029891F /* LoginViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoginViewController.h; sourceTree = "<group>"; };
79 6E18CED11F2E39DB0029891F /* LoginViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LoginViewController.m; sourceTree = "<group>"; }; 80 6E18CED11F2E39DB0029891F /* LoginViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LoginViewController.m; sourceTree = "<group>"; };
80 6E18CED21F2E39DB0029891F /* LoginViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LoginViewController.xib; sourceTree = "<group>"; }; 81 6E18CED21F2E39DB0029891F /* LoginViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LoginViewController.xib; sourceTree = "<group>"; };
81 6E18CED61F2E3C840029891F /* ServerAPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServerAPI.h; sourceTree = "<group>"; }; 82 6E18CED61F2E3C840029891F /* ServerAPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServerAPI.h; sourceTree = "<group>"; };
82 6E18CED71F2E3C840029891F /* ServerAPI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ServerAPI.m; sourceTree = "<group>"; }; 83 6E18CED71F2E3C840029891F /* ServerAPI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ServerAPI.m; sourceTree = "<group>"; };
83 6E18CEDA1F2E40F50029891F /* User.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = User.h; sourceTree = "<group>"; }; 84 6E18CEDA1F2E40F50029891F /* User.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = User.h; sourceTree = "<group>"; };
84 6E18CEDB1F2E40F50029891F /* User.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = User.m; sourceTree = "<group>"; }; 85 6E18CEDB1F2E40F50029891F /* User.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = User.m; sourceTree = "<group>"; };
85 6E18CEDD1F2E46570029891F /* Entities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Entities.h; sourceTree = "<group>"; }; 86 6E18CEDD1F2E46570029891F /* Entities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Entities.h; sourceTree = "<group>"; };
86 6E48AF0B1F2F9D3200C1D184 /* CustomTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomTextField.h; sourceTree = "<group>"; }; 87 6E48AF0B1F2F9D3200C1D184 /* CustomTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomTextField.h; sourceTree = "<group>"; };
87 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomTextField.m; sourceTree = "<group>"; }; 88 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomTextField.m; sourceTree = "<group>"; };
88 6E7F933A1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingCollectionView.h; sourceTree = "<group>"; }; 89 6E7F933A1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingCollectionView.h; sourceTree = "<group>"; };
89 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingCollectionView.m; sourceTree = "<group>"; }; 90 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingCollectionView.m; sourceTree = "<group>"; };
90 6E7F933C1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingScrollView.h; sourceTree = "<group>"; }; 91 6E7F933C1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingScrollView.h; sourceTree = "<group>"; };
91 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingScrollView.m; sourceTree = "<group>"; }; 92 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingScrollView.m; sourceTree = "<group>"; };
92 6E7F933E1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingTableView.h; sourceTree = "<group>"; }; 93 6E7F933E1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingTableView.h; sourceTree = "<group>"; };
93 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingTableView.m; sourceTree = "<group>"; }; 94 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingTableView.m; sourceTree = "<group>"; };
94 6E7F93401F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIScrollView+TPKeyboardAvoidingAdditions.h"; sourceTree = "<group>"; }; 95 6E7F93401F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIScrollView+TPKeyboardAvoidingAdditions.h"; sourceTree = "<group>"; };
95 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIScrollView+TPKeyboardAvoidingAdditions.m"; sourceTree = "<group>"; }; 96 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIScrollView+TPKeyboardAvoidingAdditions.m"; sourceTree = "<group>"; };
96 6E84E3711F27A700001EB88E /* LifeLog.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LifeLog.app; sourceTree = BUILT_PRODUCTS_DIR; }; 97 6E84E3711F27A700001EB88E /* LifeLog.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LifeLog.app; sourceTree = BUILT_PRODUCTS_DIR; };
97 6E84E3751F27A701001EB88E /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; }; 98 6E84E3751F27A701001EB88E /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
98 6E84E3771F27A701001EB88E /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; }; 99 6E84E3771F27A701001EB88E /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
99 6E84E3781F27A701001EB88E /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; }; 100 6E84E3781F27A701001EB88E /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
100 6E84E3801F27A701001EB88E /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; 101 6E84E3801F27A701001EB88E /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
101 6E84E3831F27A701001EB88E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; }; 102 6E84E3831F27A701001EB88E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
102 6E84E3851F27A701001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 103 6E84E3851F27A701001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
103 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LifeLogTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 104 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LifeLogTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
104 6E84E38E1F27A703001EB88E /* LifeLogTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LifeLogTests.m; sourceTree = "<group>"; }; 105 6E84E38E1F27A703001EB88E /* LifeLogTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LifeLogTests.m; sourceTree = "<group>"; };
105 6E84E3901F27A703001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 106 6E84E3901F27A703001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
106 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LifeLogUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 107 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LifeLogUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
107 6E84E3991F27A703001EB88E /* LifeLogUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LifeLogUITests.m; sourceTree = "<group>"; }; 108 6E84E3991F27A703001EB88E /* LifeLogUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LifeLogUITests.m; sourceTree = "<group>"; };
108 6E84E39B1F27A703001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 109 6E84E39B1F27A703001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
109 6E84E3AD1F27A975001EB88E /* HomeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HomeViewController.h; sourceTree = "<group>"; }; 110 6E84E3AD1F27A975001EB88E /* HomeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HomeViewController.h; sourceTree = "<group>"; };
110 6E84E3AE1F27A975001EB88E /* HomeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HomeViewController.m; sourceTree = "<group>"; }; 111 6E84E3AE1F27A975001EB88E /* HomeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HomeViewController.m; sourceTree = "<group>"; };
111 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HomeViewController.xib; sourceTree = "<group>"; }; 112 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HomeViewController.xib; sourceTree = "<group>"; };
112 6E84E3B21F27A98B001EB88E /* HistoryViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryViewController.h; sourceTree = "<group>"; }; 113 6E84E3B21F27A98B001EB88E /* HistoryViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryViewController.h; sourceTree = "<group>"; };
113 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryViewController.m; sourceTree = "<group>"; }; 114 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryViewController.m; sourceTree = "<group>"; };
114 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HistoryViewController.xib; sourceTree = "<group>"; }; 115 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HistoryViewController.xib; sourceTree = "<group>"; };
115 6E84E3B71F27A9A0001EB88E /* RankingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RankingViewController.h; sourceTree = "<group>"; }; 116 6E84E3B71F27A9A0001EB88E /* RankingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RankingViewController.h; sourceTree = "<group>"; };
116 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RankingViewController.m; sourceTree = "<group>"; }; 117 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RankingViewController.m; sourceTree = "<group>"; };
117 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RankingViewController.xib; sourceTree = "<group>"; }; 118 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RankingViewController.xib; sourceTree = "<group>"; };
118 6E84E3BC1F27A9B1001EB88E /* SNSViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SNSViewController.h; sourceTree = "<group>"; }; 119 6E84E3BC1F27A9B1001EB88E /* SNSViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SNSViewController.h; sourceTree = "<group>"; };
119 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SNSViewController.m; sourceTree = "<group>"; }; 120 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SNSViewController.m; sourceTree = "<group>"; };
120 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SNSViewController.xib; sourceTree = "<group>"; }; 121 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SNSViewController.xib; sourceTree = "<group>"; };
121 6E84E3C21F27ACAE001EB88E /* MapViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MapViewController.h; sourceTree = "<group>"; }; 122 6E84E3C21F27ACAE001EB88E /* MapViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MapViewController.h; sourceTree = "<group>"; };
122 6E84E3C31F27ACAE001EB88E /* MapViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MapViewController.m; sourceTree = "<group>"; }; 123 6E84E3C31F27ACAE001EB88E /* MapViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MapViewController.m; sourceTree = "<group>"; };
123 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MapViewController.xib; sourceTree = "<group>"; }; 124 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MapViewController.xib; sourceTree = "<group>"; };
124 6E8DA0F41F2BAC3400CCE941 /* TodayViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TodayViewController.h; sourceTree = "<group>"; }; 125 6E8DA0F41F2BAC3400CCE941 /* TodayViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TodayViewController.h; sourceTree = "<group>"; };
125 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TodayViewController.m; sourceTree = "<group>"; }; 126 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TodayViewController.m; sourceTree = "<group>"; };
126 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TodayViewController.xib; sourceTree = "<group>"; }; 127 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TodayViewController.xib; sourceTree = "<group>"; };
127 6ECC406F1F2A5FEB00AAEB97 /* NSDate+helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDate+helper.h"; sourceTree = "<group>"; }; 128 6ECC406F1F2A5FEB00AAEB97 /* NSDate+helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDate+helper.h"; sourceTree = "<group>"; };
128 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDate+helper.m"; sourceTree = "<group>"; }; 129 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDate+helper.m"; sourceTree = "<group>"; };
129 6EDC8BEC1F2C2FB800765ACC /* Utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Utilities.h; sourceTree = "<group>"; }; 130 6EDC8BEC1F2C2FB800765ACC /* Utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Utilities.h; sourceTree = "<group>"; };
130 6EDC8BED1F2C2FB800765ACC /* Utilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Utilities.m; sourceTree = "<group>"; }; 131 6EDC8BED1F2C2FB800765ACC /* Utilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Utilities.m; sourceTree = "<group>"; };
131 6EDC8BF21F2C68D700765ACC /* CMMotionActivityExtra.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CMMotionActivityExtra.h; sourceTree = "<group>"; }; 132 6EDC8BF21F2C68D700765ACC /* CMMotionActivityExtra.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CMMotionActivityExtra.h; sourceTree = "<group>"; };
132 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CMMotionActivityExtra.m; sourceTree = "<group>"; }; 133 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CMMotionActivityExtra.m; sourceTree = "<group>"; };
133 6EF163091F29069300DA306C /* Localizable.strings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; path = Localizable.strings; sourceTree = "<group>"; }; 134 6EF163091F29069300DA306C /* Localizable.strings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; path = Localizable.strings; sourceTree = "<group>"; };
134 9CA8AEE71F31BB4600C5FC74 /* ConfirmForgetPassViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfirmForgetPassViewController.h; sourceTree = "<group>"; }; 135 9CA8AEE71F31BB4600C5FC74 /* ConfirmForgetPassViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfirmForgetPassViewController.h; sourceTree = "<group>"; };
135 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ConfirmForgetPassViewController.m; sourceTree = "<group>"; }; 136 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ConfirmForgetPassViewController.m; sourceTree = "<group>"; };
136 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ConfirmForgetPassViewController.xib; sourceTree = "<group>"; }; 137 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ConfirmForgetPassViewController.xib; sourceTree = "<group>"; };
137 9CBDA0F81F2ECE2C0055DED1 /* BaseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseViewController.h; sourceTree = "<group>"; }; 138 9CBDA0F81F2ECE2C0055DED1 /* BaseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseViewController.h; sourceTree = "<group>"; };
138 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BaseViewController.m; sourceTree = "<group>"; }; 139 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BaseViewController.m; sourceTree = "<group>"; };
139 9CBDA0FC1F2F03810055DED1 /* RegisterViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegisterViewController.h; sourceTree = "<group>"; }; 140 9CBDA0FC1F2F03810055DED1 /* RegisterViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegisterViewController.h; sourceTree = "<group>"; };
140 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RegisterViewController.m; sourceTree = "<group>"; }; 141 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RegisterViewController.m; sourceTree = "<group>"; };
141 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RegisterViewController.xib; sourceTree = "<group>"; }; 142 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RegisterViewController.xib; sourceTree = "<group>"; };
142 E9373E451F3596940059355A /* AutoTransLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoTransLabel.h; sourceTree = "<group>"; }; 143 E9373E451F3596940059355A /* AutoTransLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoTransLabel.h; sourceTree = "<group>"; };
143 E9373E461F3596940059355A /* AutoTransLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutoTransLabel.m; sourceTree = "<group>"; }; 144 E9373E461F3596940059355A /* AutoTransLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutoTransLabel.m; sourceTree = "<group>"; };
144 E9373E481F35AA180059355A /* HistoryObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryObject.h; sourceTree = "<group>"; }; 145 E9373E481F35AA180059355A /* HistoryObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryObject.h; sourceTree = "<group>"; };
145 E9373E491F35AA180059355A /* HistoryObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryObject.m; sourceTree = "<group>"; }; 146 E9373E491F35AA180059355A /* HistoryObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryObject.m; sourceTree = "<group>"; };
147 E9373E4B1F361A230059355A /* HistoryGraphObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryGraphObject.h; sourceTree = "<group>"; };
148 E9373E4C1F361A230059355A /* HistoryGraphObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryGraphObject.m; sourceTree = "<group>"; };
146 E99E13A91F336F3600C78787 /* CollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CollectionView.h; sourceTree = "<group>"; }; 149 E99E13A91F336F3600C78787 /* CollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CollectionView.h; sourceTree = "<group>"; };
147 E99E13AA1F336F3600C78787 /* CollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CollectionView.m; sourceTree = "<group>"; }; 150 E99E13AA1F336F3600C78787 /* CollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CollectionView.m; sourceTree = "<group>"; };
148 E99E13AC1F336F4500C78787 /* CollectionView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CollectionView.xib; sourceTree = "<group>"; }; 151 E99E13AC1F336F4500C78787 /* CollectionView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CollectionView.xib; sourceTree = "<group>"; };
149 E99E13AE1F33720600C78787 /* LabelCollectionViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LabelCollectionViewCell.h; sourceTree = "<group>"; }; 152 E99E13AE1F33720600C78787 /* LabelCollectionViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LabelCollectionViewCell.h; sourceTree = "<group>"; };
150 E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LabelCollectionViewCell.m; sourceTree = "<group>"; }; 153 E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LabelCollectionViewCell.m; sourceTree = "<group>"; };
151 E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LabelCollectionViewCell.xib; sourceTree = "<group>"; }; 154 E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LabelCollectionViewCell.xib; sourceTree = "<group>"; };
152 E9F73DC91F338A0F004A3A6F /* HistoryListTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryListTableViewCell.h; sourceTree = "<group>"; }; 155 E9F73DC91F338A0F004A3A6F /* HistoryListTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryListTableViewCell.h; sourceTree = "<group>"; };
153 E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryListTableViewCell.m; sourceTree = "<group>"; }; 156 E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryListTableViewCell.m; sourceTree = "<group>"; };
154 E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HistoryListTableViewCell.xib; sourceTree = "<group>"; }; 157 E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HistoryListTableViewCell.xib; sourceTree = "<group>"; };
155 /* End PBXFileReference section */ 158 /* End PBXFileReference section */
156 159
157 /* Begin PBXFrameworksBuildPhase section */ 160 /* Begin PBXFrameworksBuildPhase section */
158 6E84E36E1F27A700001EB88E /* Frameworks */ = { 161 6E84E36E1F27A700001EB88E /* Frameworks */ = {
159 isa = PBXFrameworksBuildPhase; 162 isa = PBXFrameworksBuildPhase;
160 buildActionMask = 2147483647; 163 buildActionMask = 2147483647;
161 files = ( 164 files = (
162 011799F0F2B47D80472673CE /* Pods_LifeLog.framework in Frameworks */, 165 011799F0F2B47D80472673CE /* Pods_LifeLog.framework in Frameworks */,
163 ); 166 );
164 runOnlyForDeploymentPostprocessing = 0; 167 runOnlyForDeploymentPostprocessing = 0;
165 }; 168 };
166 6E84E3871F27A703001EB88E /* Frameworks */ = { 169 6E84E3871F27A703001EB88E /* Frameworks */ = {
167 isa = PBXFrameworksBuildPhase; 170 isa = PBXFrameworksBuildPhase;
168 buildActionMask = 2147483647; 171 buildActionMask = 2147483647;
169 files = ( 172 files = (
170 ); 173 );
171 runOnlyForDeploymentPostprocessing = 0; 174 runOnlyForDeploymentPostprocessing = 0;
172 }; 175 };
173 6E84E3921F27A703001EB88E /* Frameworks */ = { 176 6E84E3921F27A703001EB88E /* Frameworks */ = {
174 isa = PBXFrameworksBuildPhase; 177 isa = PBXFrameworksBuildPhase;
175 buildActionMask = 2147483647; 178 buildActionMask = 2147483647;
176 files = ( 179 files = (
177 ); 180 );
178 runOnlyForDeploymentPostprocessing = 0; 181 runOnlyForDeploymentPostprocessing = 0;
179 }; 182 };
180 /* End PBXFrameworksBuildPhase section */ 183 /* End PBXFrameworksBuildPhase section */
181 184
182 /* Begin PBXGroup section */ 185 /* Begin PBXGroup section */
183 020C1721B642EF36F31E1BB4 /* Frameworks */ = { 186 020C1721B642EF36F31E1BB4 /* Frameworks */ = {
184 isa = PBXGroup; 187 isa = PBXGroup;
185 children = ( 188 children = (
186 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */, 189 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */,
187 ); 190 );
188 name = Frameworks; 191 name = Frameworks;
189 sourceTree = "<group>"; 192 sourceTree = "<group>";
190 }; 193 };
191 6E18CECF1F2E398C0029891F /* Login */ = { 194 6E18CECF1F2E398C0029891F /* Login */ = {
192 isa = PBXGroup; 195 isa = PBXGroup;
193 children = ( 196 children = (
194 9CA8AEE61F31BB1200C5FC74 /* ConfirmForgetPass */, 197 9CA8AEE61F31BB1200C5FC74 /* ConfirmForgetPass */,
195 6E18CED01F2E39DB0029891F /* LoginViewController.h */, 198 6E18CED01F2E39DB0029891F /* LoginViewController.h */,
196 6E18CED11F2E39DB0029891F /* LoginViewController.m */, 199 6E18CED11F2E39DB0029891F /* LoginViewController.m */,
197 6E18CED21F2E39DB0029891F /* LoginViewController.xib */, 200 6E18CED21F2E39DB0029891F /* LoginViewController.xib */,
198 ); 201 );
199 name = Login; 202 name = Login;
200 sourceTree = "<group>"; 203 sourceTree = "<group>";
201 }; 204 };
202 6E18CED51F2E3C0E0029891F /* ServerAPI */ = { 205 6E18CED51F2E3C0E0029891F /* ServerAPI */ = {
203 isa = PBXGroup; 206 isa = PBXGroup;
204 children = ( 207 children = (
205 6E18CED61F2E3C840029891F /* ServerAPI.h */, 208 6E18CED61F2E3C840029891F /* ServerAPI.h */,
206 6E18CED71F2E3C840029891F /* ServerAPI.m */, 209 6E18CED71F2E3C840029891F /* ServerAPI.m */,
207 ); 210 );
208 name = ServerAPI; 211 name = ServerAPI;
209 sourceTree = "<group>"; 212 sourceTree = "<group>";
210 }; 213 };
211 6E18CED91F2E40AE0029891F /* Model */ = { 214 6E18CED91F2E40AE0029891F /* Model */ = {
212 isa = PBXGroup; 215 isa = PBXGroup;
213 children = ( 216 children = (
214 6E18CEDA1F2E40F50029891F /* User.h */, 217 6E18CEDA1F2E40F50029891F /* User.h */,
215 6E18CEDB1F2E40F50029891F /* User.m */, 218 6E18CEDB1F2E40F50029891F /* User.m */,
216 6E18CEDD1F2E46570029891F /* Entities.h */, 219 6E18CEDD1F2E46570029891F /* Entities.h */,
217 E9373E481F35AA180059355A /* HistoryObject.h */, 220 E9373E481F35AA180059355A /* HistoryObject.h */,
218 E9373E491F35AA180059355A /* HistoryObject.m */, 221 E9373E491F35AA180059355A /* HistoryObject.m */,
222 E9373E4B1F361A230059355A /* HistoryGraphObject.h */,
223 E9373E4C1F361A230059355A /* HistoryGraphObject.m */,
219 ); 224 );
220 name = Model; 225 name = Model;
221 sourceTree = "<group>"; 226 sourceTree = "<group>";
222 }; 227 };
223 6E7F93391F35870F00EFBC71 /* TPKeyboardAvoiding */ = { 228 6E7F93391F35870F00EFBC71 /* TPKeyboardAvoiding */ = {
224 isa = PBXGroup; 229 isa = PBXGroup;
225 children = ( 230 children = (
226 6E7F933A1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.h */, 231 6E7F933A1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.h */,
227 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */, 232 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */,
228 6E7F933C1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.h */, 233 6E7F933C1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.h */,
229 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */, 234 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */,
230 6E7F933E1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.h */, 235 6E7F933E1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.h */,
231 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */, 236 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */,
232 6E7F93401F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.h */, 237 6E7F93401F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.h */,
233 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */, 238 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */,
234 ); 239 );
235 name = TPKeyboardAvoiding; 240 name = TPKeyboardAvoiding;
236 sourceTree = "<group>"; 241 sourceTree = "<group>";
237 }; 242 };
238 6E84E3681F27A700001EB88E = { 243 6E84E3681F27A700001EB88E = {
239 isa = PBXGroup; 244 isa = PBXGroup;
240 children = ( 245 children = (
241 6E84E3731F27A700001EB88E /* LifeLog */, 246 6E84E3731F27A700001EB88E /* LifeLog */,
242 6E84E38D1F27A703001EB88E /* LifeLogTests */, 247 6E84E38D1F27A703001EB88E /* LifeLogTests */,
243 6E84E3981F27A703001EB88E /* LifeLogUITests */, 248 6E84E3981F27A703001EB88E /* LifeLogUITests */,
244 6E84E3721F27A700001EB88E /* Products */, 249 6E84E3721F27A700001EB88E /* Products */,
245 DE8269E957EA47CD771BAB33 /* Pods */, 250 DE8269E957EA47CD771BAB33 /* Pods */,
246 020C1721B642EF36F31E1BB4 /* Frameworks */, 251 020C1721B642EF36F31E1BB4 /* Frameworks */,
247 ); 252 );
248 sourceTree = "<group>"; 253 sourceTree = "<group>";
249 }; 254 };
250 6E84E3721F27A700001EB88E /* Products */ = { 255 6E84E3721F27A700001EB88E /* Products */ = {
251 isa = PBXGroup; 256 isa = PBXGroup;
252 children = ( 257 children = (
253 6E84E3711F27A700001EB88E /* LifeLog.app */, 258 6E84E3711F27A700001EB88E /* LifeLog.app */,
254 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */, 259 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */,
255 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */, 260 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */,
256 ); 261 );
257 name = Products; 262 name = Products;
258 sourceTree = "<group>"; 263 sourceTree = "<group>";
259 }; 264 };
260 6E84E3731F27A700001EB88E /* LifeLog */ = { 265 6E84E3731F27A700001EB88E /* LifeLog */ = {
261 isa = PBXGroup; 266 isa = PBXGroup;
262 children = ( 267 children = (
263 6E18CED91F2E40AE0029891F /* Model */, 268 6E18CED91F2E40AE0029891F /* Model */,
264 6E18CED51F2E3C0E0029891F /* ServerAPI */, 269 6E18CED51F2E3C0E0029891F /* ServerAPI */,
265 6EDC8BEB1F2C2F3300765ACC /* Common */, 270 6EDC8BEB1F2C2F3300765ACC /* Common */,
266 6ECC406D1F2A5FA500AAEB97 /* Library */, 271 6ECC406D1F2A5FA500AAEB97 /* Library */,
267 E99E13A71F336F0C00C78787 /* CustomView */, 272 E99E13A71F336F0C00C78787 /* CustomView */,
268 6E84E3A81F27A8A9001EB88E /* ViewControllers */, 273 6E84E3A81F27A8A9001EB88E /* ViewControllers */,
269 6E84E3A71F27A887001EB88E /* AppDelegate */, 274 6E84E3A71F27A887001EB88E /* AppDelegate */,
270 6E84E3801F27A701001EB88E /* Assets.xcassets */, 275 6E84E3801F27A701001EB88E /* Assets.xcassets */,
271 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */, 276 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */,
272 6E84E3851F27A701001EB88E /* Info.plist */, 277 6E84E3851F27A701001EB88E /* Info.plist */,
273 6E84E3741F27A701001EB88E /* Supporting Files */, 278 6E84E3741F27A701001EB88E /* Supporting Files */,
274 ); 279 );
275 path = LifeLog; 280 path = LifeLog;
276 sourceTree = "<group>"; 281 sourceTree = "<group>";
277 }; 282 };
278 6E84E3741F27A701001EB88E /* Supporting Files */ = { 283 6E84E3741F27A701001EB88E /* Supporting Files */ = {
279 isa = PBXGroup; 284 isa = PBXGroup;
280 children = ( 285 children = (
281 6E84E3751F27A701001EB88E /* main.m */, 286 6E84E3751F27A701001EB88E /* main.m */,
282 6EF163091F29069300DA306C /* Localizable.strings */, 287 6EF163091F29069300DA306C /* Localizable.strings */,
283 ); 288 );
284 name = "Supporting Files"; 289 name = "Supporting Files";
285 sourceTree = "<group>"; 290 sourceTree = "<group>";
286 }; 291 };
287 6E84E38D1F27A703001EB88E /* LifeLogTests */ = { 292 6E84E38D1F27A703001EB88E /* LifeLogTests */ = {
288 isa = PBXGroup; 293 isa = PBXGroup;
289 children = ( 294 children = (
290 6E84E38E1F27A703001EB88E /* LifeLogTests.m */, 295 6E84E38E1F27A703001EB88E /* LifeLogTests.m */,
291 6E84E3901F27A703001EB88E /* Info.plist */, 296 6E84E3901F27A703001EB88E /* Info.plist */,
292 ); 297 );
293 path = LifeLogTests; 298 path = LifeLogTests;
294 sourceTree = "<group>"; 299 sourceTree = "<group>";
295 }; 300 };
296 6E84E3981F27A703001EB88E /* LifeLogUITests */ = { 301 6E84E3981F27A703001EB88E /* LifeLogUITests */ = {
297 isa = PBXGroup; 302 isa = PBXGroup;
298 children = ( 303 children = (
299 6E84E3991F27A703001EB88E /* LifeLogUITests.m */, 304 6E84E3991F27A703001EB88E /* LifeLogUITests.m */,
300 6E84E39B1F27A703001EB88E /* Info.plist */, 305 6E84E39B1F27A703001EB88E /* Info.plist */,
301 ); 306 );
302 path = LifeLogUITests; 307 path = LifeLogUITests;
303 sourceTree = "<group>"; 308 sourceTree = "<group>";
304 }; 309 };
305 6E84E3A71F27A887001EB88E /* AppDelegate */ = { 310 6E84E3A71F27A887001EB88E /* AppDelegate */ = {
306 isa = PBXGroup; 311 isa = PBXGroup;
307 children = ( 312 children = (
308 6E84E3771F27A701001EB88E /* AppDelegate.h */, 313 6E84E3771F27A701001EB88E /* AppDelegate.h */,
309 6E84E3781F27A701001EB88E /* AppDelegate.m */, 314 6E84E3781F27A701001EB88E /* AppDelegate.m */,
310 ); 315 );
311 name = AppDelegate; 316 name = AppDelegate;
312 sourceTree = "<group>"; 317 sourceTree = "<group>";
313 }; 318 };
314 6E84E3A81F27A8A9001EB88E /* ViewControllers */ = { 319 6E84E3A81F27A8A9001EB88E /* ViewControllers */ = {
315 isa = PBXGroup; 320 isa = PBXGroup;
316 children = ( 321 children = (
317 9CBDA0F71F2ECDFD0055DED1 /* BaseViewController */, 322 9CBDA0F71F2ECDFD0055DED1 /* BaseViewController */,
318 9CBDA0FB1F2F03490055DED1 /* Register */, 323 9CBDA0FB1F2F03490055DED1 /* Register */,
319 6E18CECF1F2E398C0029891F /* Login */, 324 6E18CECF1F2E398C0029891F /* Login */,
320 6E84E3AC1F27A954001EB88E /* SNS */, 325 6E84E3AC1F27A954001EB88E /* SNS */,
321 6E84E3C11F27AC89001EB88E /* Map */, 326 6E84E3C11F27AC89001EB88E /* Map */,
322 6E84E3AB1F27A946001EB88E /* Ranking */, 327 6E84E3AB1F27A946001EB88E /* Ranking */,
323 6E84E3AA1F27A924001EB88E /* History */, 328 6E84E3AA1F27A924001EB88E /* History */,
324 6E84E3A91F27A915001EB88E /* Home */, 329 6E84E3A91F27A915001EB88E /* Home */,
325 ); 330 );
326 name = ViewControllers; 331 name = ViewControllers;
327 sourceTree = "<group>"; 332 sourceTree = "<group>";
328 }; 333 };
329 6E84E3A91F27A915001EB88E /* Home */ = { 334 6E84E3A91F27A915001EB88E /* Home */ = {
330 isa = PBXGroup; 335 isa = PBXGroup;
331 children = ( 336 children = (
332 6E8DA0F31F2BAC0800CCE941 /* Today */, 337 6E8DA0F31F2BAC0800CCE941 /* Today */,
333 6E84E3AD1F27A975001EB88E /* HomeViewController.h */, 338 6E84E3AD1F27A975001EB88E /* HomeViewController.h */,
334 6E84E3AE1F27A975001EB88E /* HomeViewController.m */, 339 6E84E3AE1F27A975001EB88E /* HomeViewController.m */,
335 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */, 340 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */,
336 ); 341 );
337 name = Home; 342 name = Home;
338 sourceTree = "<group>"; 343 sourceTree = "<group>";
339 }; 344 };
340 6E84E3AA1F27A924001EB88E /* History */ = { 345 6E84E3AA1F27A924001EB88E /* History */ = {
341 isa = PBXGroup; 346 isa = PBXGroup;
342 children = ( 347 children = (
343 6E84E3B21F27A98B001EB88E /* HistoryViewController.h */, 348 6E84E3B21F27A98B001EB88E /* HistoryViewController.h */,
344 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */, 349 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */,
345 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */, 350 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */,
346 E9F73DC91F338A0F004A3A6F /* HistoryListTableViewCell.h */, 351 E9F73DC91F338A0F004A3A6F /* HistoryListTableViewCell.h */,
347 E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */, 352 E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */,
348 E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */, 353 E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */,
349 ); 354 );
350 name = History; 355 name = History;
351 sourceTree = "<group>"; 356 sourceTree = "<group>";
352 }; 357 };
353 6E84E3AB1F27A946001EB88E /* Ranking */ = { 358 6E84E3AB1F27A946001EB88E /* Ranking */ = {
354 isa = PBXGroup; 359 isa = PBXGroup;
355 children = ( 360 children = (
356 6E84E3B71F27A9A0001EB88E /* RankingViewController.h */, 361 6E84E3B71F27A9A0001EB88E /* RankingViewController.h */,
357 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */, 362 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */,
358 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */, 363 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */,
359 ); 364 );
360 name = Ranking; 365 name = Ranking;
361 sourceTree = "<group>"; 366 sourceTree = "<group>";
362 }; 367 };
363 6E84E3AC1F27A954001EB88E /* SNS */ = { 368 6E84E3AC1F27A954001EB88E /* SNS */ = {
364 isa = PBXGroup; 369 isa = PBXGroup;
365 children = ( 370 children = (
366 6E84E3BC1F27A9B1001EB88E /* SNSViewController.h */, 371 6E84E3BC1F27A9B1001EB88E /* SNSViewController.h */,
367 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */, 372 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */,
368 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */, 373 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */,
369 ); 374 );
370 name = SNS; 375 name = SNS;
371 sourceTree = "<group>"; 376 sourceTree = "<group>";
372 }; 377 };
373 6E84E3C11F27AC89001EB88E /* Map */ = { 378 6E84E3C11F27AC89001EB88E /* Map */ = {
374 isa = PBXGroup; 379 isa = PBXGroup;
375 children = ( 380 children = (
376 6E84E3C21F27ACAE001EB88E /* MapViewController.h */, 381 6E84E3C21F27ACAE001EB88E /* MapViewController.h */,
377 6E84E3C31F27ACAE001EB88E /* MapViewController.m */, 382 6E84E3C31F27ACAE001EB88E /* MapViewController.m */,
378 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */, 383 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */,
379 ); 384 );
380 name = Map; 385 name = Map;
381 sourceTree = "<group>"; 386 sourceTree = "<group>";
382 }; 387 };
383 6E8DA0F31F2BAC0800CCE941 /* Today */ = { 388 6E8DA0F31F2BAC0800CCE941 /* Today */ = {
384 isa = PBXGroup; 389 isa = PBXGroup;
385 children = ( 390 children = (
386 6E8DA0F41F2BAC3400CCE941 /* TodayViewController.h */, 391 6E8DA0F41F2BAC3400CCE941 /* TodayViewController.h */,
387 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */, 392 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */,
388 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */, 393 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */,
389 ); 394 );
390 name = Today; 395 name = Today;
391 sourceTree = "<group>"; 396 sourceTree = "<group>";
392 }; 397 };
393 6ECC406D1F2A5FA500AAEB97 /* Library */ = { 398 6ECC406D1F2A5FA500AAEB97 /* Library */ = {
394 isa = PBXGroup; 399 isa = PBXGroup;
395 children = ( 400 children = (
396 6E7F93391F35870F00EFBC71 /* TPKeyboardAvoiding */, 401 6E7F93391F35870F00EFBC71 /* TPKeyboardAvoiding */,
397 6ECC406E1F2A5FB200AAEB97 /* Category */, 402 6ECC406E1F2A5FB200AAEB97 /* Category */,
398 ); 403 );
399 name = Library; 404 name = Library;
400 sourceTree = "<group>"; 405 sourceTree = "<group>";
401 }; 406 };
402 6ECC406E1F2A5FB200AAEB97 /* Category */ = { 407 6ECC406E1F2A5FB200AAEB97 /* Category */ = {
403 isa = PBXGroup; 408 isa = PBXGroup;
404 children = ( 409 children = (
405 6ECC406F1F2A5FEB00AAEB97 /* NSDate+helper.h */, 410 6ECC406F1F2A5FEB00AAEB97 /* NSDate+helper.h */,
406 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */, 411 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */,
407 ); 412 );
408 name = Category; 413 name = Category;
409 sourceTree = "<group>"; 414 sourceTree = "<group>";
410 }; 415 };
411 6EDC8BEB1F2C2F3300765ACC /* Common */ = { 416 6EDC8BEB1F2C2F3300765ACC /* Common */ = {
412 isa = PBXGroup; 417 isa = PBXGroup;
413 children = ( 418 children = (
414 6EDC8BEC1F2C2FB800765ACC /* Utilities.h */, 419 6EDC8BEC1F2C2FB800765ACC /* Utilities.h */,
415 6EDC8BED1F2C2FB800765ACC /* Utilities.m */, 420 6EDC8BED1F2C2FB800765ACC /* Utilities.m */,
416 6EDC8BF21F2C68D700765ACC /* CMMotionActivityExtra.h */, 421 6EDC8BF21F2C68D700765ACC /* CMMotionActivityExtra.h */,
417 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */, 422 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */,
418 ); 423 );
419 name = Common; 424 name = Common;
420 sourceTree = "<group>"; 425 sourceTree = "<group>";
421 }; 426 };
422 9CA8AEE61F31BB1200C5FC74 /* ConfirmForgetPass */ = { 427 9CA8AEE61F31BB1200C5FC74 /* ConfirmForgetPass */ = {
423 isa = PBXGroup; 428 isa = PBXGroup;
424 children = ( 429 children = (
425 9CA8AEE71F31BB4600C5FC74 /* ConfirmForgetPassViewController.h */, 430 9CA8AEE71F31BB4600C5FC74 /* ConfirmForgetPassViewController.h */,
426 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */, 431 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */,
427 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */, 432 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */,
428 ); 433 );
429 name = ConfirmForgetPass; 434 name = ConfirmForgetPass;
430 sourceTree = "<group>"; 435 sourceTree = "<group>";
431 }; 436 };
432 9CBDA0F71F2ECDFD0055DED1 /* BaseViewController */ = { 437 9CBDA0F71F2ECDFD0055DED1 /* BaseViewController */ = {
433 isa = PBXGroup; 438 isa = PBXGroup;
434 children = ( 439 children = (
435 9CBDA0F81F2ECE2C0055DED1 /* BaseViewController.h */, 440 9CBDA0F81F2ECE2C0055DED1 /* BaseViewController.h */,
436 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */, 441 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */,
437 6E48AF0B1F2F9D3200C1D184 /* CustomTextField.h */, 442 6E48AF0B1F2F9D3200C1D184 /* CustomTextField.h */,
438 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */, 443 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */,
439 ); 444 );
440 name = BaseViewController; 445 name = BaseViewController;
441 sourceTree = "<group>"; 446 sourceTree = "<group>";
442 }; 447 };
443 9CBDA0FB1F2F03490055DED1 /* Register */ = { 448 9CBDA0FB1F2F03490055DED1 /* Register */ = {
444 isa = PBXGroup; 449 isa = PBXGroup;
445 children = ( 450 children = (
446 9CBDA0FC1F2F03810055DED1 /* RegisterViewController.h */, 451 9CBDA0FC1F2F03810055DED1 /* RegisterViewController.h */,
447 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */, 452 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */,
448 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */, 453 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */,
449 ); 454 );
450 name = Register; 455 name = Register;
451 sourceTree = "<group>"; 456 sourceTree = "<group>";
452 }; 457 };
453 DE8269E957EA47CD771BAB33 /* Pods */ = { 458 DE8269E957EA47CD771BAB33 /* Pods */ = {
454 isa = PBXGroup; 459 isa = PBXGroup;
455 children = ( 460 children = (
456 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */, 461 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */,
457 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */, 462 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */,
458 ); 463 );
459 name = Pods; 464 name = Pods;
460 sourceTree = "<group>"; 465 sourceTree = "<group>";
461 }; 466 };
462 E9373E441F35966D0059355A /* AutoTranslateView */ = { 467 E9373E441F35966D0059355A /* AutoTranslateView */ = {
463 isa = PBXGroup; 468 isa = PBXGroup;
464 children = ( 469 children = (
465 E9373E451F3596940059355A /* AutoTransLabel.h */, 470 E9373E451F3596940059355A /* AutoTransLabel.h */,
466 E9373E461F3596940059355A /* AutoTransLabel.m */, 471 E9373E461F3596940059355A /* AutoTransLabel.m */,
467 ); 472 );
468 name = AutoTranslateView; 473 name = AutoTranslateView;
469 sourceTree = "<group>"; 474 sourceTree = "<group>";
470 }; 475 };
471 E99E13A71F336F0C00C78787 /* CustomView */ = { 476 E99E13A71F336F0C00C78787 /* CustomView */ = {
472 isa = PBXGroup; 477 isa = PBXGroup;
473 children = ( 478 children = (
474 E9373E441F35966D0059355A /* AutoTranslateView */, 479 E9373E441F35966D0059355A /* AutoTranslateView */,
475 E99E13A81F336F1700C78787 /* CollectionView */, 480 E99E13A81F336F1700C78787 /* CollectionView */,
476 ); 481 );
477 name = CustomView; 482 name = CustomView;
478 sourceTree = "<group>"; 483 sourceTree = "<group>";
479 }; 484 };
480 E99E13A81F336F1700C78787 /* CollectionView */ = { 485 E99E13A81F336F1700C78787 /* CollectionView */ = {
481 isa = PBXGroup; 486 isa = PBXGroup;
482 children = ( 487 children = (
483 E99E13AE1F33720600C78787 /* LabelCollectionViewCell.h */, 488 E99E13AE1F33720600C78787 /* LabelCollectionViewCell.h */,
484 E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */, 489 E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */,
485 E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */, 490 E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */,
486 E99E13A91F336F3600C78787 /* CollectionView.h */, 491 E99E13A91F336F3600C78787 /* CollectionView.h */,
487 E99E13AA1F336F3600C78787 /* CollectionView.m */, 492 E99E13AA1F336F3600C78787 /* CollectionView.m */,
488 E99E13AC1F336F4500C78787 /* CollectionView.xib */, 493 E99E13AC1F336F4500C78787 /* CollectionView.xib */,
489 ); 494 );
490 name = CollectionView; 495 name = CollectionView;
491 sourceTree = "<group>"; 496 sourceTree = "<group>";
492 }; 497 };
493 /* End PBXGroup section */ 498 /* End PBXGroup section */
494 499
495 /* Begin PBXNativeTarget section */ 500 /* Begin PBXNativeTarget section */
496 6E84E3701F27A700001EB88E /* LifeLog */ = { 501 6E84E3701F27A700001EB88E /* LifeLog */ = {
497 isa = PBXNativeTarget; 502 isa = PBXNativeTarget;
498 buildConfigurationList = 6E84E39E1F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLog" */; 503 buildConfigurationList = 6E84E39E1F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLog" */;
499 buildPhases = ( 504 buildPhases = (
500 2BB22CAEC0728AA1E086BCE3 /* [CP] Check Pods Manifest.lock */, 505 2BB22CAEC0728AA1E086BCE3 /* [CP] Check Pods Manifest.lock */,
501 6E84E36D1F27A700001EB88E /* Sources */, 506 6E84E36D1F27A700001EB88E /* Sources */,
502 6E84E36E1F27A700001EB88E /* Frameworks */, 507 6E84E36E1F27A700001EB88E /* Frameworks */,
503 6E84E36F1F27A700001EB88E /* Resources */, 508 6E84E36F1F27A700001EB88E /* Resources */,
504 22F89B11794CEB4E265996AC /* [CP] Embed Pods Frameworks */, 509 22F89B11794CEB4E265996AC /* [CP] Embed Pods Frameworks */,
505 96653BDB2C24A87C2866C897 /* [CP] Copy Pods Resources */, 510 96653BDB2C24A87C2866C897 /* [CP] Copy Pods Resources */,
506 ); 511 );
507 buildRules = ( 512 buildRules = (
508 ); 513 );
509 dependencies = ( 514 dependencies = (
510 ); 515 );
511 name = LifeLog; 516 name = LifeLog;
512 productName = LifeLog; 517 productName = LifeLog;
513 productReference = 6E84E3711F27A700001EB88E /* LifeLog.app */; 518 productReference = 6E84E3711F27A700001EB88E /* LifeLog.app */;
514 productType = "com.apple.product-type.application"; 519 productType = "com.apple.product-type.application";
515 }; 520 };
516 6E84E3891F27A703001EB88E /* LifeLogTests */ = { 521 6E84E3891F27A703001EB88E /* LifeLogTests */ = {
517 isa = PBXNativeTarget; 522 isa = PBXNativeTarget;
518 buildConfigurationList = 6E84E3A11F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogTests" */; 523 buildConfigurationList = 6E84E3A11F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogTests" */;
519 buildPhases = ( 524 buildPhases = (
520 6E84E3861F27A703001EB88E /* Sources */, 525 6E84E3861F27A703001EB88E /* Sources */,
521 6E84E3871F27A703001EB88E /* Frameworks */, 526 6E84E3871F27A703001EB88E /* Frameworks */,
522 6E84E3881F27A703001EB88E /* Resources */, 527 6E84E3881F27A703001EB88E /* Resources */,
523 ); 528 );
524 buildRules = ( 529 buildRules = (
525 ); 530 );
526 dependencies = ( 531 dependencies = (
527 6E84E38C1F27A703001EB88E /* PBXTargetDependency */, 532 6E84E38C1F27A703001EB88E /* PBXTargetDependency */,
528 ); 533 );
529 name = LifeLogTests; 534 name = LifeLogTests;
530 productName = LifeLogTests; 535 productName = LifeLogTests;
531 productReference = 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */; 536 productReference = 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */;
532 productType = "com.apple.product-type.bundle.unit-test"; 537 productType = "com.apple.product-type.bundle.unit-test";
533 }; 538 };
534 6E84E3941F27A703001EB88E /* LifeLogUITests */ = { 539 6E84E3941F27A703001EB88E /* LifeLogUITests */ = {
535 isa = PBXNativeTarget; 540 isa = PBXNativeTarget;
536 buildConfigurationList = 6E84E3A41F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogUITests" */; 541 buildConfigurationList = 6E84E3A41F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogUITests" */;
537 buildPhases = ( 542 buildPhases = (
538 6E84E3911F27A703001EB88E /* Sources */, 543 6E84E3911F27A703001EB88E /* Sources */,
539 6E84E3921F27A703001EB88E /* Frameworks */, 544 6E84E3921F27A703001EB88E /* Frameworks */,
540 6E84E3931F27A703001EB88E /* Resources */, 545 6E84E3931F27A703001EB88E /* Resources */,
541 ); 546 );
542 buildRules = ( 547 buildRules = (
543 ); 548 );
544 dependencies = ( 549 dependencies = (
545 6E84E3971F27A703001EB88E /* PBXTargetDependency */, 550 6E84E3971F27A703001EB88E /* PBXTargetDependency */,
546 ); 551 );
547 name = LifeLogUITests; 552 name = LifeLogUITests;
548 productName = LifeLogUITests; 553 productName = LifeLogUITests;
549 productReference = 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */; 554 productReference = 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */;
550 productType = "com.apple.product-type.bundle.ui-testing"; 555 productType = "com.apple.product-type.bundle.ui-testing";
551 }; 556 };
552 /* End PBXNativeTarget section */ 557 /* End PBXNativeTarget section */
553 558
554 /* Begin PBXProject section */ 559 /* Begin PBXProject section */
555 6E84E3691F27A700001EB88E /* Project object */ = { 560 6E84E3691F27A700001EB88E /* Project object */ = {
556 isa = PBXProject; 561 isa = PBXProject;
557 attributes = { 562 attributes = {
558 LastUpgradeCheck = 0830; 563 LastUpgradeCheck = 0830;
559 ORGANIZATIONNAME = PhongNV; 564 ORGANIZATIONNAME = PhongNV;
560 TargetAttributes = { 565 TargetAttributes = {
561 6E84E3701F27A700001EB88E = { 566 6E84E3701F27A700001EB88E = {
562 CreatedOnToolsVersion = 8.3.3; 567 CreatedOnToolsVersion = 8.3.3;
563 DevelopmentTeam = UXU4V3VUN4; 568 DevelopmentTeam = UXU4V3VUN4;
564 ProvisioningStyle = Manual; 569 ProvisioningStyle = Manual;
565 }; 570 };
566 6E84E3891F27A703001EB88E = { 571 6E84E3891F27A703001EB88E = {
567 CreatedOnToolsVersion = 8.3.3; 572 CreatedOnToolsVersion = 8.3.3;
568 ProvisioningStyle = Automatic; 573 ProvisioningStyle = Automatic;
569 TestTargetID = 6E84E3701F27A700001EB88E; 574 TestTargetID = 6E84E3701F27A700001EB88E;
570 }; 575 };
571 6E84E3941F27A703001EB88E = { 576 6E84E3941F27A703001EB88E = {
572 CreatedOnToolsVersion = 8.3.3; 577 CreatedOnToolsVersion = 8.3.3;
573 ProvisioningStyle = Automatic; 578 ProvisioningStyle = Automatic;
574 TestTargetID = 6E84E3701F27A700001EB88E; 579 TestTargetID = 6E84E3701F27A700001EB88E;
575 }; 580 };
576 }; 581 };
577 }; 582 };
578 buildConfigurationList = 6E84E36C1F27A700001EB88E /* Build configuration list for PBXProject "LifeLog" */; 583 buildConfigurationList = 6E84E36C1F27A700001EB88E /* Build configuration list for PBXProject "LifeLog" */;
579 compatibilityVersion = "Xcode 3.2"; 584 compatibilityVersion = "Xcode 3.2";
580 developmentRegion = English; 585 developmentRegion = English;
581 hasScannedForEncodings = 0; 586 hasScannedForEncodings = 0;
582 knownRegions = ( 587 knownRegions = (
583 en, 588 en,
584 Base, 589 Base,
585 ); 590 );
586 mainGroup = 6E84E3681F27A700001EB88E; 591 mainGroup = 6E84E3681F27A700001EB88E;
587 productRefGroup = 6E84E3721F27A700001EB88E /* Products */; 592 productRefGroup = 6E84E3721F27A700001EB88E /* Products */;
588 projectDirPath = ""; 593 projectDirPath = "";
589 projectRoot = ""; 594 projectRoot = "";
590 targets = ( 595 targets = (
591 6E84E3701F27A700001EB88E /* LifeLog */, 596 6E84E3701F27A700001EB88E /* LifeLog */,
592 6E84E3891F27A703001EB88E /* LifeLogTests */, 597 6E84E3891F27A703001EB88E /* LifeLogTests */,
593 6E84E3941F27A703001EB88E /* LifeLogUITests */, 598 6E84E3941F27A703001EB88E /* LifeLogUITests */,
594 ); 599 );
595 }; 600 };
596 /* End PBXProject section */ 601 /* End PBXProject section */
597 602
598 /* Begin PBXResourcesBuildPhase section */ 603 /* Begin PBXResourcesBuildPhase section */
599 6E84E36F1F27A700001EB88E /* Resources */ = { 604 6E84E36F1F27A700001EB88E /* Resources */ = {
600 isa = PBXResourcesBuildPhase; 605 isa = PBXResourcesBuildPhase;
601 buildActionMask = 2147483647; 606 buildActionMask = 2147483647;
602 files = ( 607 files = (
603 9CBDA1001F2F03810055DED1 /* RegisterViewController.xib in Resources */, 608 9CBDA1001F2F03810055DED1 /* RegisterViewController.xib in Resources */,
604 6E18CED41F2E39DB0029891F /* LoginViewController.xib in Resources */, 609 6E18CED41F2E39DB0029891F /* LoginViewController.xib in Resources */,
605 E99E13AD1F336F4500C78787 /* CollectionView.xib in Resources */, 610 E99E13AD1F336F4500C78787 /* CollectionView.xib in Resources */,
606 6E84E3BB1F27A9A0001EB88E /* RankingViewController.xib in Resources */, 611 6E84E3BB1F27A9A0001EB88E /* RankingViewController.xib in Resources */,
607 9CA8AEEB1F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib in Resources */, 612 9CA8AEEB1F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib in Resources */,
608 6E84E3C01F27A9B1001EB88E /* SNSViewController.xib in Resources */, 613 6E84E3C01F27A9B1001EB88E /* SNSViewController.xib in Resources */,
609 6E8DA0F81F2BAC3500CCE941 /* TodayViewController.xib in Resources */, 614 6E8DA0F81F2BAC3500CCE941 /* TodayViewController.xib in Resources */,
610 6E84E3841F27A701001EB88E /* LaunchScreen.storyboard in Resources */, 615 6E84E3841F27A701001EB88E /* LaunchScreen.storyboard in Resources */,
611 6E84E3811F27A701001EB88E /* Assets.xcassets in Resources */, 616 6E84E3811F27A701001EB88E /* Assets.xcassets in Resources */,
612 6E84E3C61F27ACAE001EB88E /* MapViewController.xib in Resources */, 617 6E84E3C61F27ACAE001EB88E /* MapViewController.xib in Resources */,
613 6EF1630A1F29069300DA306C /* Localizable.strings in Resources */, 618 6EF1630A1F29069300DA306C /* Localizable.strings in Resources */,
614 6E84E3B11F27A975001EB88E /* HomeViewController.xib in Resources */, 619 6E84E3B11F27A975001EB88E /* HomeViewController.xib in Resources */,
615 6E84E3B61F27A98B001EB88E /* HistoryViewController.xib in Resources */, 620 6E84E3B61F27A98B001EB88E /* HistoryViewController.xib in Resources */,
616 E99E13B21F33720600C78787 /* LabelCollectionViewCell.xib in Resources */, 621 E99E13B21F33720600C78787 /* LabelCollectionViewCell.xib in Resources */,
617 E9F73DCD1F338A0F004A3A6F /* HistoryListTableViewCell.xib in Resources */, 622 E9F73DCD1F338A0F004A3A6F /* HistoryListTableViewCell.xib in Resources */,
618 ); 623 );
619 runOnlyForDeploymentPostprocessing = 0; 624 runOnlyForDeploymentPostprocessing = 0;
620 }; 625 };
621 6E84E3881F27A703001EB88E /* Resources */ = { 626 6E84E3881F27A703001EB88E /* Resources */ = {
622 isa = PBXResourcesBuildPhase; 627 isa = PBXResourcesBuildPhase;
623 buildActionMask = 2147483647; 628 buildActionMask = 2147483647;
624 files = ( 629 files = (
625 ); 630 );
626 runOnlyForDeploymentPostprocessing = 0; 631 runOnlyForDeploymentPostprocessing = 0;
627 }; 632 };
628 6E84E3931F27A703001EB88E /* Resources */ = { 633 6E84E3931F27A703001EB88E /* Resources */ = {
629 isa = PBXResourcesBuildPhase; 634 isa = PBXResourcesBuildPhase;
630 buildActionMask = 2147483647; 635 buildActionMask = 2147483647;
631 files = ( 636 files = (
632 ); 637 );
633 runOnlyForDeploymentPostprocessing = 0; 638 runOnlyForDeploymentPostprocessing = 0;
634 }; 639 };
635 /* End PBXResourcesBuildPhase section */ 640 /* End PBXResourcesBuildPhase section */
636 641
637 /* Begin PBXShellScriptBuildPhase section */ 642 /* Begin PBXShellScriptBuildPhase section */
638 22F89B11794CEB4E265996AC /* [CP] Embed Pods Frameworks */ = { 643 22F89B11794CEB4E265996AC /* [CP] Embed Pods Frameworks */ = {
639 isa = PBXShellScriptBuildPhase; 644 isa = PBXShellScriptBuildPhase;
640 buildActionMask = 2147483647; 645 buildActionMask = 2147483647;
641 files = ( 646 files = (
642 ); 647 );
643 inputPaths = ( 648 inputPaths = (
644 ); 649 );
645 name = "[CP] Embed Pods Frameworks"; 650 name = "[CP] Embed Pods Frameworks";
646 outputPaths = ( 651 outputPaths = (
647 ); 652 );
648 runOnlyForDeploymentPostprocessing = 0; 653 runOnlyForDeploymentPostprocessing = 0;
649 shellPath = /bin/sh; 654 shellPath = /bin/sh;
650 shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog-frameworks.sh\"\n"; 655 shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog-frameworks.sh\"\n";
651 showEnvVarsInLog = 0; 656 showEnvVarsInLog = 0;
652 }; 657 };
653 2BB22CAEC0728AA1E086BCE3 /* [CP] Check Pods Manifest.lock */ = { 658 2BB22CAEC0728AA1E086BCE3 /* [CP] Check Pods Manifest.lock */ = {
654 isa = PBXShellScriptBuildPhase; 659 isa = PBXShellScriptBuildPhase;
655 buildActionMask = 2147483647; 660 buildActionMask = 2147483647;
656 files = ( 661 files = (
657 ); 662 );
658 inputPaths = ( 663 inputPaths = (
659 ); 664 );
660 name = "[CP] Check Pods Manifest.lock"; 665 name = "[CP] Check Pods Manifest.lock";
661 outputPaths = ( 666 outputPaths = (
662 ); 667 );
663 runOnlyForDeploymentPostprocessing = 0; 668 runOnlyForDeploymentPostprocessing = 0;
664 shellPath = /bin/sh; 669 shellPath = /bin/sh;
665 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"; 670 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";
666 showEnvVarsInLog = 0; 671 showEnvVarsInLog = 0;
667 }; 672 };
668 96653BDB2C24A87C2866C897 /* [CP] Copy Pods Resources */ = { 673 96653BDB2C24A87C2866C897 /* [CP] Copy Pods Resources */ = {
669 isa = PBXShellScriptBuildPhase; 674 isa = PBXShellScriptBuildPhase;
670 buildActionMask = 2147483647; 675 buildActionMask = 2147483647;
671 files = ( 676 files = (
672 ); 677 );
673 inputPaths = ( 678 inputPaths = (
674 ); 679 );
675 name = "[CP] Copy Pods Resources"; 680 name = "[CP] Copy Pods Resources";
676 outputPaths = ( 681 outputPaths = (
677 ); 682 );
678 runOnlyForDeploymentPostprocessing = 0; 683 runOnlyForDeploymentPostprocessing = 0;
679 shellPath = /bin/sh; 684 shellPath = /bin/sh;
680 shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog-resources.sh\"\n"; 685 shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog-resources.sh\"\n";
681 showEnvVarsInLog = 0; 686 showEnvVarsInLog = 0;
682 }; 687 };
683 /* End PBXShellScriptBuildPhase section */ 688 /* End PBXShellScriptBuildPhase section */
684 689
685 /* Begin PBXSourcesBuildPhase section */ 690 /* Begin PBXSourcesBuildPhase section */
686 6E84E36D1F27A700001EB88E /* Sources */ = { 691 6E84E36D1F27A700001EB88E /* Sources */ = {
687 isa = PBXSourcesBuildPhase; 692 isa = PBXSourcesBuildPhase;
688 buildActionMask = 2147483647; 693 buildActionMask = 2147483647;
689 files = ( 694 files = (
690 6E18CED81F2E3C840029891F /* ServerAPI.m in Sources */, 695 6E18CED81F2E3C840029891F /* ServerAPI.m in Sources */,
691 6E7F93431F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m in Sources */, 696 6E7F93431F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m in Sources */,
692 6E7F93421F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m in Sources */, 697 6E7F93421F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m in Sources */,
693 9CBDA0FA1F2ECE2C0055DED1 /* BaseViewController.m in Sources */, 698 9CBDA0FA1F2ECE2C0055DED1 /* BaseViewController.m in Sources */,
694 6E8DA0F71F2BAC3400CCE941 /* TodayViewController.m in Sources */, 699 6E8DA0F71F2BAC3400CCE941 /* TodayViewController.m in Sources */,
695 6E7F93451F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m in Sources */, 700 6E7F93451F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m in Sources */,
696 6E48AF0D1F2F9D3300C1D184 /* CustomTextField.m in Sources */, 701 6E48AF0D1F2F9D3300C1D184 /* CustomTextField.m in Sources */,
697 E99E13AB1F336F3600C78787 /* CollectionView.m in Sources */, 702 E99E13AB1F336F3600C78787 /* CollectionView.m in Sources */,
698 6E84E3B01F27A975001EB88E /* HomeViewController.m in Sources */, 703 6E84E3B01F27A975001EB88E /* HomeViewController.m in Sources */,
699 E9373E471F3596940059355A /* AutoTransLabel.m in Sources */, 704 E9373E471F3596940059355A /* AutoTransLabel.m in Sources */,
700 6E84E3791F27A701001EB88E /* AppDelegate.m in Sources */, 705 6E84E3791F27A701001EB88E /* AppDelegate.m in Sources */,
701 6E84E3BA1F27A9A0001EB88E /* RankingViewController.m in Sources */, 706 6E84E3BA1F27A9A0001EB88E /* RankingViewController.m in Sources */,
702 6E7F93441F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m in Sources */, 707 6E7F93441F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m in Sources */,
703 E9F73DCC1F338A0F004A3A6F /* HistoryListTableViewCell.m in Sources */, 708 E9F73DCC1F338A0F004A3A6F /* HistoryListTableViewCell.m in Sources */,
704 6EDC8BF41F2C68D700765ACC /* CMMotionActivityExtra.m in Sources */, 709 6EDC8BF41F2C68D700765ACC /* CMMotionActivityExtra.m in Sources */,
705 9CBDA0FF1F2F03810055DED1 /* RegisterViewController.m in Sources */, 710 9CBDA0FF1F2F03810055DED1 /* RegisterViewController.m in Sources */,
706 E9373E4A1F35AA180059355A /* HistoryObject.m in Sources */, 711 E9373E4A1F35AA180059355A /* HistoryObject.m in Sources */,
707 9CA8AEEA1F31BB4600C5FC74 /* ConfirmForgetPassViewController.m in Sources */, 712 9CA8AEEA1F31BB4600C5FC74 /* ConfirmForgetPassViewController.m in Sources */,
708 E99E13B11F33720600C78787 /* LabelCollectionViewCell.m in Sources */, 713 E99E13B11F33720600C78787 /* LabelCollectionViewCell.m in Sources */,
709 6EDC8BEE1F2C2FB800765ACC /* Utilities.m in Sources */, 714 6EDC8BEE1F2C2FB800765ACC /* Utilities.m in Sources */,
710 6E84E3C51F27ACAE001EB88E /* MapViewController.m in Sources */, 715 6E84E3C51F27ACAE001EB88E /* MapViewController.m in Sources */,
711 6E18CEDC1F2E40F50029891F /* User.m in Sources */, 716 6E18CEDC1F2E40F50029891F /* User.m in Sources */,
712 6ECC40711F2A5FEB00AAEB97 /* NSDate+helper.m in Sources */, 717 6ECC40711F2A5FEB00AAEB97 /* NSDate+helper.m in Sources */,
713 6E18CED31F2E39DB0029891F /* LoginViewController.m in Sources */, 718 6E18CED31F2E39DB0029891F /* LoginViewController.m in Sources */,
714 6E84E3761F27A701001EB88E /* main.m in Sources */, 719 6E84E3761F27A701001EB88E /* main.m in Sources */,
715 6E84E3B51F27A98B001EB88E /* HistoryViewController.m in Sources */, 720 6E84E3B51F27A98B001EB88E /* HistoryViewController.m in Sources */,
721 E9373E4D1F361A230059355A /* HistoryGraphObject.m in Sources */,
716 6E84E3BF1F27A9B1001EB88E /* SNSViewController.m in Sources */, 722 6E84E3BF1F27A9B1001EB88E /* SNSViewController.m in Sources */,
717 ); 723 );
718 runOnlyForDeploymentPostprocessing = 0; 724 runOnlyForDeploymentPostprocessing = 0;
719 }; 725 };
720 6E84E3861F27A703001EB88E /* Sources */ = { 726 6E84E3861F27A703001EB88E /* Sources */ = {
721 isa = PBXSourcesBuildPhase; 727 isa = PBXSourcesBuildPhase;
722 buildActionMask = 2147483647; 728 buildActionMask = 2147483647;
723 files = ( 729 files = (
724 6E84E38F1F27A703001EB88E /* LifeLogTests.m in Sources */, 730 6E84E38F1F27A703001EB88E /* LifeLogTests.m in Sources */,
725 ); 731 );
726 runOnlyForDeploymentPostprocessing = 0; 732 runOnlyForDeploymentPostprocessing = 0;
727 }; 733 };
728 6E84E3911F27A703001EB88E /* Sources */ = { 734 6E84E3911F27A703001EB88E /* Sources */ = {
729 isa = PBXSourcesBuildPhase; 735 isa = PBXSourcesBuildPhase;
730 buildActionMask = 2147483647; 736 buildActionMask = 2147483647;
731 files = ( 737 files = (
732 6E84E39A1F27A703001EB88E /* LifeLogUITests.m in Sources */, 738 6E84E39A1F27A703001EB88E /* LifeLogUITests.m in Sources */,
733 ); 739 );
734 runOnlyForDeploymentPostprocessing = 0; 740 runOnlyForDeploymentPostprocessing = 0;
735 }; 741 };
736 /* End PBXSourcesBuildPhase section */ 742 /* End PBXSourcesBuildPhase section */
737 743
738 /* Begin PBXTargetDependency section */ 744 /* Begin PBXTargetDependency section */
739 6E84E38C1F27A703001EB88E /* PBXTargetDependency */ = { 745 6E84E38C1F27A703001EB88E /* PBXTargetDependency */ = {
740 isa = PBXTargetDependency; 746 isa = PBXTargetDependency;
741 target = 6E84E3701F27A700001EB88E /* LifeLog */; 747 target = 6E84E3701F27A700001EB88E /* LifeLog */;
742 targetProxy = 6E84E38B1F27A703001EB88E /* PBXContainerItemProxy */; 748 targetProxy = 6E84E38B1F27A703001EB88E /* PBXContainerItemProxy */;
743 }; 749 };
744 6E84E3971F27A703001EB88E /* PBXTargetDependency */ = { 750 6E84E3971F27A703001EB88E /* PBXTargetDependency */ = {
745 isa = PBXTargetDependency; 751 isa = PBXTargetDependency;
746 target = 6E84E3701F27A700001EB88E /* LifeLog */; 752 target = 6E84E3701F27A700001EB88E /* LifeLog */;
747 targetProxy = 6E84E3961F27A703001EB88E /* PBXContainerItemProxy */; 753 targetProxy = 6E84E3961F27A703001EB88E /* PBXContainerItemProxy */;
748 }; 754 };
749 /* End PBXTargetDependency section */ 755 /* End PBXTargetDependency section */
750 756
751 /* Begin PBXVariantGroup section */ 757 /* Begin PBXVariantGroup section */
752 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */ = { 758 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */ = {
753 isa = PBXVariantGroup; 759 isa = PBXVariantGroup;
754 children = ( 760 children = (
755 6E84E3831F27A701001EB88E /* Base */, 761 6E84E3831F27A701001EB88E /* Base */,
756 ); 762 );
757 name = LaunchScreen.storyboard; 763 name = LaunchScreen.storyboard;
758 sourceTree = "<group>"; 764 sourceTree = "<group>";
759 }; 765 };
760 /* End PBXVariantGroup section */ 766 /* End PBXVariantGroup section */
761 767
762 /* Begin XCBuildConfiguration section */ 768 /* Begin XCBuildConfiguration section */
763 6E84E39C1F27A703001EB88E /* Debug */ = { 769 6E84E39C1F27A703001EB88E /* Debug */ = {
764 isa = XCBuildConfiguration; 770 isa = XCBuildConfiguration;
765 buildSettings = { 771 buildSettings = {
766 ALWAYS_SEARCH_USER_PATHS = NO; 772 ALWAYS_SEARCH_USER_PATHS = NO;
767 CLANG_ANALYZER_NONNULL = YES; 773 CLANG_ANALYZER_NONNULL = YES;
768 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 774 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
769 CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 775 CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
770 CLANG_CXX_LIBRARY = "libc++"; 776 CLANG_CXX_LIBRARY = "libc++";
771 CLANG_ENABLE_MODULES = YES; 777 CLANG_ENABLE_MODULES = YES;
772 CLANG_ENABLE_OBJC_ARC = YES; 778 CLANG_ENABLE_OBJC_ARC = YES;
773 CLANG_WARN_BOOL_CONVERSION = YES; 779 CLANG_WARN_BOOL_CONVERSION = YES;
774 CLANG_WARN_CONSTANT_CONVERSION = YES; 780 CLANG_WARN_CONSTANT_CONVERSION = YES;
775 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 781 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
776 CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 782 CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
777 CLANG_WARN_EMPTY_BODY = YES; 783 CLANG_WARN_EMPTY_BODY = YES;
778 CLANG_WARN_ENUM_CONVERSION = YES; 784 CLANG_WARN_ENUM_CONVERSION = YES;
779 CLANG_WARN_INFINITE_RECURSION = YES; 785 CLANG_WARN_INFINITE_RECURSION = YES;
780 CLANG_WARN_INT_CONVERSION = YES; 786 CLANG_WARN_INT_CONVERSION = YES;
781 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 787 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
782 CLANG_WARN_SUSPICIOUS_MOVE = YES; 788 CLANG_WARN_SUSPICIOUS_MOVE = YES;
783 CLANG_WARN_UNREACHABLE_CODE = YES; 789 CLANG_WARN_UNREACHABLE_CODE = YES;
784 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 790 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
785 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 791 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
786 COPY_PHASE_STRIP = NO; 792 COPY_PHASE_STRIP = NO;
787 DEBUG_INFORMATION_FORMAT = dwarf; 793 DEBUG_INFORMATION_FORMAT = dwarf;
788 ENABLE_STRICT_OBJC_MSGSEND = YES; 794 ENABLE_STRICT_OBJC_MSGSEND = YES;
789 ENABLE_TESTABILITY = YES; 795 ENABLE_TESTABILITY = YES;
790 GCC_C_LANGUAGE_STANDARD = gnu99; 796 GCC_C_LANGUAGE_STANDARD = gnu99;
791 GCC_DYNAMIC_NO_PIC = NO; 797 GCC_DYNAMIC_NO_PIC = NO;
792 GCC_NO_COMMON_BLOCKS = YES; 798 GCC_NO_COMMON_BLOCKS = YES;
793 GCC_OPTIMIZATION_LEVEL = 0; 799 GCC_OPTIMIZATION_LEVEL = 0;
794 GCC_PREPROCESSOR_DEFINITIONS = ( 800 GCC_PREPROCESSOR_DEFINITIONS = (
795 "DEBUG=1", 801 "DEBUG=1",
796 "$(inherited)", 802 "$(inherited)",
797 ); 803 );
798 GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 804 GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
799 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 805 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
800 GCC_WARN_UNDECLARED_SELECTOR = YES; 806 GCC_WARN_UNDECLARED_SELECTOR = YES;
801 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 807 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
802 GCC_WARN_UNUSED_FUNCTION = YES; 808 GCC_WARN_UNUSED_FUNCTION = YES;
803 GCC_WARN_UNUSED_VARIABLE = YES; 809 GCC_WARN_UNUSED_VARIABLE = YES;
804 IPHONEOS_DEPLOYMENT_TARGET = 10.3; 810 IPHONEOS_DEPLOYMENT_TARGET = 10.3;
805 MTL_ENABLE_DEBUG_INFO = YES; 811 MTL_ENABLE_DEBUG_INFO = YES;
806 ONLY_ACTIVE_ARCH = YES; 812 ONLY_ACTIVE_ARCH = YES;
807 SDKROOT = iphoneos; 813 SDKROOT = iphoneos;
808 TARGETED_DEVICE_FAMILY = "1,2"; 814 TARGETED_DEVICE_FAMILY = "1,2";
809 }; 815 };
810 name = Debug; 816 name = Debug;
811 }; 817 };
812 6E84E39D1F27A703001EB88E /* Release */ = { 818 6E84E39D1F27A703001EB88E /* Release */ = {
813 isa = XCBuildConfiguration; 819 isa = XCBuildConfiguration;
814 buildSettings = { 820 buildSettings = {
815 ALWAYS_SEARCH_USER_PATHS = NO; 821 ALWAYS_SEARCH_USER_PATHS = NO;
816 CLANG_ANALYZER_NONNULL = YES; 822 CLANG_ANALYZER_NONNULL = YES;
817 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 823 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
818 CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 824 CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
819 CLANG_CXX_LIBRARY = "libc++"; 825 CLANG_CXX_LIBRARY = "libc++";
820 CLANG_ENABLE_MODULES = YES; 826 CLANG_ENABLE_MODULES = YES;
821 CLANG_ENABLE_OBJC_ARC = YES; 827 CLANG_ENABLE_OBJC_ARC = YES;
822 CLANG_WARN_BOOL_CONVERSION = YES; 828 CLANG_WARN_BOOL_CONVERSION = YES;
823 CLANG_WARN_CONSTANT_CONVERSION = YES; 829 CLANG_WARN_CONSTANT_CONVERSION = YES;
824 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 830 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
825 CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 831 CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
826 CLANG_WARN_EMPTY_BODY = YES; 832 CLANG_WARN_EMPTY_BODY = YES;
827 CLANG_WARN_ENUM_CONVERSION = YES; 833 CLANG_WARN_ENUM_CONVERSION = YES;
828 CLANG_WARN_INFINITE_RECURSION = YES; 834 CLANG_WARN_INFINITE_RECURSION = YES;
829 CLANG_WARN_INT_CONVERSION = YES; 835 CLANG_WARN_INT_CONVERSION = YES;
830 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 836 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
831 CLANG_WARN_SUSPICIOUS_MOVE = YES; 837 CLANG_WARN_SUSPICIOUS_MOVE = YES;
832 CLANG_WARN_UNREACHABLE_CODE = YES; 838 CLANG_WARN_UNREACHABLE_CODE = YES;
833 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 839 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
834 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 840 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
835 COPY_PHASE_STRIP = NO; 841 COPY_PHASE_STRIP = NO;
836 DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 842 DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
837 ENABLE_NS_ASSERTIONS = NO; 843 ENABLE_NS_ASSERTIONS = NO;
838 ENABLE_STRICT_OBJC_MSGSEND = YES; 844 ENABLE_STRICT_OBJC_MSGSEND = YES;
839 GCC_C_LANGUAGE_STANDARD = gnu99; 845 GCC_C_LANGUAGE_STANDARD = gnu99;
840 GCC_NO_COMMON_BLOCKS = YES; 846 GCC_NO_COMMON_BLOCKS = YES;
841 GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 847 GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
842 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 848 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
843 GCC_WARN_UNDECLARED_SELECTOR = YES; 849 GCC_WARN_UNDECLARED_SELECTOR = YES;
844 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 850 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
845 GCC_WARN_UNUSED_FUNCTION = YES; 851 GCC_WARN_UNUSED_FUNCTION = YES;
846 GCC_WARN_UNUSED_VARIABLE = YES; 852 GCC_WARN_UNUSED_VARIABLE = YES;
847 IPHONEOS_DEPLOYMENT_TARGET = 10.3; 853 IPHONEOS_DEPLOYMENT_TARGET = 10.3;
848 MTL_ENABLE_DEBUG_INFO = NO; 854 MTL_ENABLE_DEBUG_INFO = NO;
849 SDKROOT = iphoneos; 855 SDKROOT = iphoneos;
850 TARGETED_DEVICE_FAMILY = "1,2"; 856 TARGETED_DEVICE_FAMILY = "1,2";
851 VALIDATE_PRODUCT = YES; 857 VALIDATE_PRODUCT = YES;
852 }; 858 };
853 name = Release; 859 name = Release;
854 }; 860 };
855 6E84E39F1F27A703001EB88E /* Debug */ = { 861 6E84E39F1F27A703001EB88E /* Debug */ = {
856 isa = XCBuildConfiguration; 862 isa = XCBuildConfiguration;
857 baseConfigurationReference = 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */; 863 baseConfigurationReference = 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */;
858 buildSettings = { 864 buildSettings = {
859 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 865 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
860 DEVELOPMENT_TEAM = UXU4V3VUN4; 866 DEVELOPMENT_TEAM = UXU4V3VUN4;
861 INFOPLIST_FILE = LifeLog/Info.plist; 867 INFOPLIST_FILE = LifeLog/Info.plist;
862 IPHONEOS_DEPLOYMENT_TARGET = 9.0; 868 IPHONEOS_DEPLOYMENT_TARGET = 9.0;
863 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 869 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
864 OTHER_LDFLAGS = ( 870 OTHER_LDFLAGS = (
865 "$(inherited)", 871 "$(inherited)",
866 "-framework", 872 "-framework",
867 "\"CircleProgressBar\"", 873 "\"CircleProgressBar\"",
868 "-all_load", 874 "-all_load",
869 "-ObjC", 875 "-ObjC",
870 ); 876 );
871 PRODUCT_BUNDLE_IDENTIFIER = mobileworld.jp.lifelog; 877 PRODUCT_BUNDLE_IDENTIFIER = mobileworld.jp.lifelog;
872 PRODUCT_NAME = "$(TARGET_NAME)"; 878 PRODUCT_NAME = "$(TARGET_NAME)";
873 PROVISIONING_PROFILE = "556082e4-d9c1-4ce1-bab1-13515289a7fd"; 879 PROVISIONING_PROFILE = "556082e4-d9c1-4ce1-bab1-13515289a7fd";
874 PROVISIONING_PROFILE_SPECIFIER = Lifelog_Development; 880 PROVISIONING_PROFILE_SPECIFIER = Lifelog_Development;
875 }; 881 };
876 name = Debug; 882 name = Debug;
877 }; 883 };
878 6E84E3A01F27A703001EB88E /* Release */ = { 884 6E84E3A01F27A703001EB88E /* Release */ = {
879 isa = XCBuildConfiguration; 885 isa = XCBuildConfiguration;
880 baseConfigurationReference = 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */; 886 baseConfigurationReference = 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */;
881 buildSettings = { 887 buildSettings = {
882 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 888 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
883 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; 889 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
884 DEVELOPMENT_TEAM = UXU4V3VUN4; 890 DEVELOPMENT_TEAM = UXU4V3VUN4;
885 INFOPLIST_FILE = LifeLog/Info.plist; 891 INFOPLIST_FILE = LifeLog/Info.plist;
886 IPHONEOS_DEPLOYMENT_TARGET = 9.0; 892 IPHONEOS_DEPLOYMENT_TARGET = 9.0;
887 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 893 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
888 OTHER_LDFLAGS = ( 894 OTHER_LDFLAGS = (
889 "$(inherited)", 895 "$(inherited)",
890 "-framework", 896 "-framework",
891 "\"CircleProgressBar\"", 897 "\"CircleProgressBar\"",
892 "-all_load", 898 "-all_load",
893 "-ObjC", 899 "-ObjC",
894 ); 900 );
895 PRODUCT_BUNDLE_IDENTIFIER = mobileworld.jp.lifelog; 901 PRODUCT_BUNDLE_IDENTIFIER = mobileworld.jp.lifelog;
896 PRODUCT_NAME = "$(TARGET_NAME)"; 902 PRODUCT_NAME = "$(TARGET_NAME)";
897 PROVISIONING_PROFILE = "ffe70c33-5b08-4c2e-b96d-4e1bcb971ccb"; 903 PROVISIONING_PROFILE = "ffe70c33-5b08-4c2e-b96d-4e1bcb971ccb";
898 PROVISIONING_PROFILE_SPECIFIER = Lifelog_Distribution; 904 PROVISIONING_PROFILE_SPECIFIER = Lifelog_Distribution;
899 }; 905 };
900 name = Release; 906 name = Release;
901 }; 907 };
902 6E84E3A21F27A703001EB88E /* Debug */ = { 908 6E84E3A21F27A703001EB88E /* Debug */ = {
903 isa = XCBuildConfiguration; 909 isa = XCBuildConfiguration;
904 buildSettings = { 910 buildSettings = {
905 BUNDLE_LOADER = "$(TEST_HOST)"; 911 BUNDLE_LOADER = "$(TEST_HOST)";
906 INFOPLIST_FILE = LifeLogTests/Info.plist; 912 INFOPLIST_FILE = LifeLogTests/Info.plist;
907 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 913 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
908 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogTests; 914 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogTests;
909 PRODUCT_NAME = "$(TARGET_NAME)"; 915 PRODUCT_NAME = "$(TARGET_NAME)";
910 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LifeLog.app/LifeLog"; 916 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LifeLog.app/LifeLog";
911 }; 917 };
912 name = Debug; 918 name = Debug;
913 }; 919 };
914 6E84E3A31F27A703001EB88E /* Release */ = { 920 6E84E3A31F27A703001EB88E /* Release */ = {
915 isa = XCBuildConfiguration; 921 isa = XCBuildConfiguration;
916 buildSettings = { 922 buildSettings = {
917 BUNDLE_LOADER = "$(TEST_HOST)"; 923 BUNDLE_LOADER = "$(TEST_HOST)";
918 INFOPLIST_FILE = LifeLogTests/Info.plist; 924 INFOPLIST_FILE = LifeLogTests/Info.plist;
919 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 925 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
920 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogTests; 926 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogTests;
921 PRODUCT_NAME = "$(TARGET_NAME)"; 927 PRODUCT_NAME = "$(TARGET_NAME)";
922 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LifeLog.app/LifeLog"; 928 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LifeLog.app/LifeLog";
923 }; 929 };
924 name = Release; 930 name = Release;
925 }; 931 };
926 6E84E3A51F27A703001EB88E /* Debug */ = { 932 6E84E3A51F27A703001EB88E /* Debug */ = {
927 isa = XCBuildConfiguration; 933 isa = XCBuildConfiguration;
928 buildSettings = { 934 buildSettings = {
929 INFOPLIST_FILE = LifeLogUITests/Info.plist; 935 INFOPLIST_FILE = LifeLogUITests/Info.plist;
930 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 936 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
931 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogUITests; 937 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogUITests;
932 PRODUCT_NAME = "$(TARGET_NAME)"; 938 PRODUCT_NAME = "$(TARGET_NAME)";
933 TEST_TARGET_NAME = LifeLog; 939 TEST_TARGET_NAME = LifeLog;
934 }; 940 };
935 name = Debug; 941 name = Debug;
936 }; 942 };
937 6E84E3A61F27A703001EB88E /* Release */ = { 943 6E84E3A61F27A703001EB88E /* Release */ = {
938 isa = XCBuildConfiguration; 944 isa = XCBuildConfiguration;
939 buildSettings = { 945 buildSettings = {
940 INFOPLIST_FILE = LifeLogUITests/Info.plist; 946 INFOPLIST_FILE = LifeLogUITests/Info.plist;
941 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 947 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
942 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogUITests; 948 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogUITests;
943 PRODUCT_NAME = "$(TARGET_NAME)"; 949 PRODUCT_NAME = "$(TARGET_NAME)";
944 TEST_TARGET_NAME = LifeLog; 950 TEST_TARGET_NAME = LifeLog;
945 }; 951 };
946 name = Release; 952 name = Release;
947 }; 953 };
948 /* End XCBuildConfiguration section */ 954 /* End XCBuildConfiguration section */
949 955
950 /* Begin XCConfigurationList section */ 956 /* Begin XCConfigurationList section */
951 6E84E36C1F27A700001EB88E /* Build configuration list for PBXProject "LifeLog" */ = { 957 6E84E36C1F27A700001EB88E /* Build configuration list for PBXProject "LifeLog" */ = {
952 isa = XCConfigurationList; 958 isa = XCConfigurationList;
953 buildConfigurations = ( 959 buildConfigurations = (
954 6E84E39C1F27A703001EB88E /* Debug */, 960 6E84E39C1F27A703001EB88E /* Debug */,
955 6E84E39D1F27A703001EB88E /* Release */, 961 6E84E39D1F27A703001EB88E /* Release */,
956 ); 962 );
957 defaultConfigurationIsVisible = 0; 963 defaultConfigurationIsVisible = 0;
958 defaultConfigurationName = Release; 964 defaultConfigurationName = Release;
959 }; 965 };
960 6E84E39E1F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLog" */ = { 966 6E84E39E1F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLog" */ = {
961 isa = XCConfigurationList; 967 isa = XCConfigurationList;
962 buildConfigurations = ( 968 buildConfigurations = (
963 6E84E39F1F27A703001EB88E /* Debug */, 969 6E84E39F1F27A703001EB88E /* Debug */,
964 6E84E3A01F27A703001EB88E /* Release */, 970 6E84E3A01F27A703001EB88E /* Release */,
965 ); 971 );
966 defaultConfigurationIsVisible = 0; 972 defaultConfigurationIsVisible = 0;
967 defaultConfigurationName = Release; 973 defaultConfigurationName = Release;
968 }; 974 };
969 6E84E3A11F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogTests" */ = { 975 6E84E3A11F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogTests" */ = {
970 isa = XCConfigurationList; 976 isa = XCConfigurationList;
971 buildConfigurations = ( 977 buildConfigurations = (
972 6E84E3A21F27A703001EB88E /* Debug */, 978 6E84E3A21F27A703001EB88E /* Debug */,
973 6E84E3A31F27A703001EB88E /* Release */, 979 6E84E3A31F27A703001EB88E /* Release */,
974 ); 980 );
975 defaultConfigurationIsVisible = 0; 981 defaultConfigurationIsVisible = 0;
976 defaultConfigurationName = Release; 982 defaultConfigurationName = Release;
977 }; 983 };
978 6E84E3A41F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogUITests" */ = { 984 6E84E3A41F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogUITests" */ = {
979 isa = XCConfigurationList; 985 isa = XCConfigurationList;
980 buildConfigurations = ( 986 buildConfigurations = (
981 6E84E3A51F27A703001EB88E /* Debug */, 987 6E84E3A51F27A703001EB88E /* Debug */,
982 6E84E3A61F27A703001EB88E /* Release */, 988 6E84E3A61F27A703001EB88E /* Release */,
983 ); 989 );
984 defaultConfigurationIsVisible = 0; 990 defaultConfigurationIsVisible = 0;
985 defaultConfigurationName = Release; 991 defaultConfigurationName = Release;
986 }; 992 };
987 /* End XCConfigurationList section */ 993 /* End XCConfigurationList section */
988 }; 994 };
989 rootObject = 6E84E3691F27A700001EB88E /* Project object */; 995 rootObject = 6E84E3691F27A700001EB88E /* Project object */;
990 } 996 }
991 997
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>
13
14 #import "HistoryGraphObject.h"
12 #import "HistoryObject.h" 15 #import "HistoryObject.h"
13 #import "User.h" 16 #import "User.h"
14 17
15 #endif /* Entities_h */ 18 #endif /* Entities_h */
16 19
LifeLog/LifeLog/HistoryGraphObject.h
File was created 1 //
2 // HistoryGraphObject.h
3 // LifeLog
4 //
5 // Created by nvtu on 8/5/17.
6 // Copyright ยฉ 2017 PhongNV. All rights reserved.
7 //
8
9 #import <Foundation/Foundation.h>
10
11 @interface HistoryGraphObject : NSObject
12
13 @property (nonatomic, strong) NSMutableArray * arrayTime;
14 @property (nonatomic, strong) NSMutableArray * arrayStep;
15
16 -(id) initWithData : (NSDictionary *) dict;
17
18 @end
19
LifeLog/LifeLog/HistoryGraphObject.m
File was created 1 //
2 // HistoryGraphObject.m
3 // LifeLog
4 //
5 // Created by nvtu on 8/5/17.
6 // Copyright ยฉ 2017 PhongNV. All rights reserved.
7 //
8
9 #import "HistoryGraphObject.h"
10
11 @implementation HistoryGraphObject
12
13 -(id) initWithData : (NSDictionary *) dict {
14
15 if([dict objectForKey:@"data"] != nil) {
16 self.arrayStep = [[NSMutableArray alloc] init];
17 self.arrayTime = [[NSMutableArray alloc] init];
18 NSArray *arrayGraph = dict[@"data"];
19 for(NSDictionary *sub in arrayGraph) {
20 if([sub objectForKey:@"hour"] != nil && [sub objectForKey:@"step"] != nil) {
21 [self.arrayTime addObject:[sub objectForKey:@"hour"]];
22 [self.arrayStep addObject:[sub objectForKey:@"step"]];
23 }
24 }
25 }
26 else {
27 return nil;
28 }
29 return self;
30 }
31
32
33 @end
34
LifeLog/LifeLog/HistoryObject.m
1 // 1 //
2 // HistoryObject.m 2 // HistoryObject.m
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by nvtu on 8/5/17. 5 // Created by nvtu on 8/5/17.
6 // Copyright ยฉ 2017 PhongNV. All rights reserved. 6 // Copyright ยฉ 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import "HistoryObject.h" 9 #import "HistoryObject.h"
10 10
11 @implementation HistoryObject 11 @implementation HistoryObject
12 12
13 -(id) initWithData : (NSDictionary *) dict { 13 -(id) initWithData : (NSDictionary *) dict {
14 if([dict objectForKey:@"step"] != nil) { 14 if([dict objectForKey:@"step"] != nil) {
15 self.step = [dict[@"step"] intValue]; 15 self.step = [dict[@"step"] intValue];
16 } 16 }
17 if([dict objectForKey:@"target"] != nil) { 17 if([dict objectForKey:@"target"] != nil) {
18 self.target = [dict[@"target"] intValue]; 18 self.target = [dict[@"target"] intValue];
19 } 19 }
20 if([dict objectForKey:@"missing"] != nil) { 20 if([dict objectForKey:@"missing"] != nil) {
21 self.missing = [dict[@"missing"] intValue]; 21 self.missing = [dict[@"missing"] intValue];
22 } 22 }
23 if([dict objectForKey:@"percent"] != nil) { 23 if([dict objectForKey:@"percent"] != nil) {
24 self.percent = [dict[@"percent"] floatValue]; 24 self.percent = [dict[@"percent"] floatValue];
25 } 25 }
26 if([dict objectForKey:@"distance"] != nil) { 26 if([dict objectForKey:@"distance"] != nil) {
27 self.distance = [dict[@"distance"] floatValue]; 27 if([dict[@"distance"] isKindOfClass:[NSString class]]) {
28 NSString *distance = dict[@"distance"];
29 self.distance = [distance floatValue];
30 }
31 else {
32 self.distance = [dict[@"distance"] floatValue];
33 }
28 } 34 }
29 if([dict objectForKey:@"kcal"] != nil) { 35 if([dict objectForKey:@"kcal"] != nil) {
30 self.calories = [dict[@"kcal"] floatValue]; 36 self.calories = [dict[@"kcal"] floatValue];
31 } 37 }
32 if([dict objectForKey:@"time"] != nil) { 38 if([dict objectForKey:@"time"] != nil) {
33 self.time = dict[@"time"]; 39 if([dict[@"time"] isKindOfClass:[NSString class]]) {
40 self.time = dict[@"time"];
41 }
42 else {
43 self.time = @"0:0";
44 }
34 } 45 }
35 if([dict objectForKey:@"date"] != nil) { 46 if([dict objectForKey:@"date"] != nil) {
36 NSString *dateString = dict[@"time"]; 47 NSString *dateString = dict[@"date"];
37 NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 48 NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
38 [dateFormat setDateFormat:@"yyyy-MM-dd"]; 49 [dateFormat setDateFormat:@"yyyy-MM-dd"];
39 self.date = [dateFormat dateFromString:dateString]; 50 self.date = [dateFormat dateFromString:dateString];
40 } 51 }
41 else { 52 else {
42 self.date = [NSDate date]; 53 self.date = [NSDate date];
43 } 54 }
44 return self; 55 return self;
45 } 56 }
46 @end 57 @end
47 58
LifeLog/LifeLog/HistoryViewController.h
1 // 1 //
2 // HistoryViewController.h 2 // HistoryViewController.h
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by Nguyen Van Phong on 7/25/17. 5 // Created by Nguyen Van Phong on 7/25/17.
6 // Copyright ยฉ 2017 PhongNV. All rights reserved. 6 // Copyright ยฉ 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import <UIKit/UIKit.h> 9 #import <UIKit/UIKit.h>
10 #import <Charts/Charts-Swift.h> 10 #import <Charts/Charts-Swift.h>
11 11
12 #import "CollectionView.h" 12 #import "CollectionView.h"
13 13
14 #import "Entities.h" 14 #import "Entities.h"
15 15
16 @interface HistoryViewController : UIViewController <UITableViewDelegate, UITableViewDataSource, UIScrollViewDelegate> { 16 @interface HistoryViewController : UIViewController <UITableViewDelegate, UITableViewDataSource, UIScrollViewDelegate> {
17 NSDate * _currentDate; 17 NSDate * _curDate;
18 HistoryObject * _currentHistoryObject; 18 HistoryObject * _curHisObj;
19 HistoryGraphObject * _curHisGraphObj;
20 NSMutableArray * _curHisList;
21
22 int _curPageIndex;
19 } 23 }
20 24
21 @property (weak, nonatomic) IBOutlet UILabel *lblHeader; 25 @property (weak, nonatomic) IBOutlet UILabel *lblHeader;
22 @property (weak, nonatomic) IBOutlet UILabel *lblCircleStep; 26 @property (weak, nonatomic) IBOutlet UILabel *lblCircleStep;
23 @property (weak, nonatomic) IBOutlet UILabel *lblCircleRemain; 27 @property (weak, nonatomic) IBOutlet UILabel *lblCircleRemain;
24 28
25 @property (weak, nonatomic) IBOutlet UILabel *lblStep; 29 @property (weak, nonatomic) IBOutlet UILabel *lblStep;
26 @property (weak, nonatomic) IBOutlet UILabel *lblRemaining; 30 @property (weak, nonatomic) IBOutlet UILabel *lblRemaining;
27 @property (weak, nonatomic) IBOutlet UILabel *lblPercent; 31 @property (weak, nonatomic) IBOutlet UILabel *lblPercent;
28 @property (weak, nonatomic) IBOutlet UILabel *lblCalories; 32 @property (weak, nonatomic) IBOutlet UILabel *lblCalories;
29 @property (weak, nonatomic) IBOutlet UILabel *lblDistance; 33 @property (weak, nonatomic) IBOutlet UILabel *lblDistance;
30 @property (weak, nonatomic) IBOutlet UILabel *lblTime; 34 @property (weak, nonatomic) IBOutlet UILabel *lblTime;
31 35
32 @property (weak, nonatomic) IBOutlet CollectionView *viewCollectionType; 36 @property (weak, nonatomic) IBOutlet CollectionView *viewCollectionType;
33 @property (weak, nonatomic) IBOutlet CollectionView *viewCollectionMode; 37 @property (weak, nonatomic) IBOutlet CollectionView *viewCollectionMode;
34 @property (weak, nonatomic) IBOutlet CollectionView *viewCollectionShare; 38 @property (weak, nonatomic) IBOutlet CollectionView *viewCollectionShare;
35 39
36 @property (weak, nonatomic) IBOutlet BarChartView *viewBarChart; 40 @property (weak, nonatomic) IBOutlet BarChartView *viewBarChart;
37 41
38 @property (weak, nonatomic) IBOutlet UITableView *tableListHistory; 42 @property (weak, nonatomic) IBOutlet UITableView *tableListHistory;
39 @property (weak, nonatomic) IBOutlet UIScrollView *scrollView; 43 @property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
40 44
41 - (IBAction)swipeAction:(UISwipeGestureRecognizer *)sender; 45 - (IBAction)swipeAction:(UISwipeGestureRecognizer *)sender;
42 46
43 @end 47 @end
44 48
LifeLog/LifeLog/HistoryViewController.m
1 // 1 //
2 // HistoryViewController.m 2 // HistoryViewController.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 "HistoryViewController.h" 9 #import "HistoryViewController.h"
10 #import "Utilities.h" 10 #import "Utilities.h"
11 #import "ServerAPI.h" 11 #import "ServerAPI.h"
12 12
13 #import "HistoryListTableViewCell.h" 13 #import "HistoryListTableViewCell.h"
14 14
15 @interface HistoryViewController () 15 @interface HistoryViewController ()
16 16
17 @end 17 @end
18 18
19 @implementation HistoryViewController 19 @implementation HistoryViewController
20 20
21 - (void)viewDidLoad { 21 - (void)viewDidLoad {
22 [super viewDidLoad]; 22 [super viewDidLoad];
23 // Do any additional setup after loading the view from its nib. 23 // Do any additional setup after loading the view from its nib.
24 self.title = NSLocalizedString(@"lifelog.history.title", nil); 24 self.title = NSLocalizedString(@"lifelog.history.title", nil);
25 self.lblHeader.text = NSLocalizedString(@"lifelog.history.title", nil); 25 self.lblHeader.text = NSLocalizedString(@"lifelog.history.title", nil);
26 26
27 [self setupView]; 27 [self setupView];
28 [self setupChartView]; 28 [self setupChartView];
29 29
30 _currentDate = [NSDate date]; 30 _curDate = [NSDate date];
31 _curHisList = [[NSMutableArray alloc] init];
31 32
32 [self callRequestToUpdateData]; 33 [self callRequestToUpdateData];
33 34
34 //register nib for table view 35 //register nib for table view
35 [self.tableListHistory registerNib:[UINib nibWithNibName:@"HistoryListTableViewCell" bundle:nil] forCellReuseIdentifier:@"HistoryListCell"]; 36 [self.tableListHistory registerNib:[UINib nibWithNibName:@"HistoryListTableViewCell" bundle:nil] forCellReuseIdentifier:@"HistoryListCell"];
36 } 37 }
37 38
38 - (void)viewDidAppear:(BOOL) animated 39 - (void)viewDidAppear:(BOOL) animated
39 { 40 {
40 [super viewDidAppear:animated]; 41 [super viewDidAppear:animated];
41 self.scrollView.contentSize = CGSizeMake(self.view.frame.size.width, 400); 42 self.scrollView.contentSize = CGSizeMake(self.view.frame.size.width, 400);
42 [self.scrollView setNeedsLayout]; 43 [self.scrollView setNeedsLayout];
43 [self.scrollView setNeedsUpdateConstraints]; 44 [self.scrollView setNeedsUpdateConstraints];
44 45
45 } 46 }
46 47
47 - (void)didReceiveMemoryWarning { 48 - (void)didReceiveMemoryWarning {
48 [super didReceiveMemoryWarning]; 49 [super didReceiveMemoryWarning];
49 // Dispose of any resources that can be recreated. 50 // Dispose of any resources that can be recreated.
50 } 51 }
51 52
52 - (void)setupView { 53 - (void)setupView {
53 NSArray *typeTitle = [NSArray arrayWithObjects:NSLocalizedString(@"lifelog.history.type.1", nil), NSLocalizedString(@"lifelog.history.type.2", nil), NSLocalizedString(@"lifelog.history.type.3", nil), NSLocalizedString(@"lifelog.history.type.4", nil), NSLocalizedString(@"lifelog.history.type.5", nil), nil]; 54 NSArray *typeTitle = [NSArray arrayWithObjects:NSLocalizedString(@"lifelog.history.type.1", nil), NSLocalizedString(@"lifelog.history.type.2", nil), NSLocalizedString(@"lifelog.history.type.3", nil), NSLocalizedString(@"lifelog.history.type.4", nil), NSLocalizedString(@"lifelog.history.type.5", nil), nil];
54 [self.viewCollectionType setButtonNumber:typeTitle.count]; 55 [self.viewCollectionType setButtonNumber:typeTitle.count];
55 [self.viewCollectionType setSpacing:2]; 56 [self.viewCollectionType setSpacing:2];
56 [self.viewCollectionType setArrayTitle:typeTitle]; 57 [self.viewCollectionType setArrayTitle:typeTitle];
57 self.viewCollectionType.changeCurrentIndex = ^(int index){ 58 self.viewCollectionType.changeCurrentIndex = ^(int index){
58 [self callRequestToUpdateData]; 59 [self callRequestToUpdateData];
59 }; 60 };
60 61
61 NSArray *modeTitle = [NSArray arrayWithObjects:NSLocalizedString(@"lifelog.history.mode.1", nil), NSLocalizedString(@"lifelog.history.mode.2", nil), NSLocalizedString(@"lifelog.history.mode.3", nil), nil]; 62 NSArray *modeTitle = [NSArray arrayWithObjects:NSLocalizedString(@"lifelog.history.mode.1", nil), NSLocalizedString(@"lifelog.history.mode.2", nil), NSLocalizedString(@"lifelog.history.mode.3", nil), nil];
62 [self.viewCollectionMode setButtonNumber:modeTitle.count]; 63 [self.viewCollectionMode setButtonNumber:modeTitle.count];
63 [self.viewCollectionMode setSpacing:0]; 64 [self.viewCollectionMode setSpacing:0];
64 [self.viewCollectionMode setCornerRadius:0]; 65 [self.viewCollectionMode setCornerRadius:0];
65 [self.viewCollectionMode setNormalColor:[Utilities convertHecToColor:0x191919] highlightColor:[Utilities convertHecToColor:0x474747] textColor:[UIColor whiteColor]]; 66 [self.viewCollectionMode setNormalColor:[Utilities convertHecToColor:0x191919] highlightColor:[Utilities convertHecToColor:0x474747] textColor:[UIColor whiteColor]];
66 [self.viewCollectionMode setArrayTitle:modeTitle]; 67 [self.viewCollectionMode setArrayTitle:modeTitle];
67 self.viewCollectionMode.changeCurrentIndex = ^(int index){ 68 self.viewCollectionMode.changeCurrentIndex = ^(int index){
68 [self callRequestToUpdateData]; 69 [self callRequestToUpdateData];
69 }; 70 };
70 71
71 NSArray *shareTitle = [NSArray arrayWithObjects:NSLocalizedString(@"lifelog.history.share.1", nil), NSLocalizedString(@"lifelog.history.share.2", nil), NSLocalizedString(@"lifelog.history.share.3", nil), NSLocalizedString(@"lifelog.history.share.4", nil), NSLocalizedString(@"lifelog.history.share.5", nil), nil]; 72 NSArray *shareTitle = [NSArray arrayWithObjects:NSLocalizedString(@"lifelog.history.share.1", nil), NSLocalizedString(@"lifelog.history.share.2", nil), NSLocalizedString(@"lifelog.history.share.3", nil), NSLocalizedString(@"lifelog.history.share.4", nil), NSLocalizedString(@"lifelog.history.share.5", nil), nil];
72 [self.viewCollectionShare setButtonNumber:typeTitle.count]; 73 [self.viewCollectionShare setButtonNumber:typeTitle.count];
73 [self.viewCollectionShare setSpacing:3]; 74 [self.viewCollectionShare setSpacing:3];
74 [self.viewCollectionShare setSelectedIndex:-1]; 75 [self.viewCollectionShare setSelectedIndex:-1];
75 [self.viewCollectionShare setArrayTitle:shareTitle]; 76 [self.viewCollectionShare setArrayTitle:shareTitle];
76 } 77 }
77 78
78 -(void) updateView {
79 self.lblStep.text = [NSString stringWithFormat:@"%d", _currentHistoryObject.step];
80 self.lblRemaining.text = [NSString stringWithFormat:@"%d", _currentHistoryObject.missing];
81 self.lblPercent.text = [NSString stringWithFormat:@"%0.2f", _currentHistoryObject.percent * 100];
82 self.lblCalories.text = [NSString stringWithFormat:@"%1.0f", _currentHistoryObject.calories];
83 self.lblDistance.text = [NSString stringWithFormat:@"%0.1f", _currentHistoryObject.distance];
84 self.lblTime.text = _currentHistoryObject.time;
85 }
86
87 - (void)setupChartView { 79 - (void)setupChartView {
88 self.viewBarChart.chartDescription.enabled = NO; 80 self.viewBarChart.chartDescription.enabled = NO;
89 self.viewBarChart.leftAxis.drawGridLinesEnabled = NO; 81 self.viewBarChart.leftAxis.drawGridLinesEnabled = NO;
90 self.viewBarChart.rightAxis.drawGridLinesEnabled = NO; 82 self.viewBarChart.rightAxis.drawGridLinesEnabled = NO;
91 self.viewBarChart.legend.enabled = NO; 83 self.viewBarChart.legend.enabled = NO;
92 84
93 ChartXAxis *xAxis = self.viewBarChart.xAxis; 85 ChartXAxis *xAxis = self.viewBarChart.xAxis;
94 xAxis.labelPosition = XAxisLabelPositionBottom; 86 xAxis.labelPosition = XAxisLabelPositionBottom;
95 xAxis.drawGridLinesEnabled = NO; 87 xAxis.drawGridLinesEnabled = NO;
96 xAxis.drawAxisLineEnabled = NO; 88 xAxis.drawAxisLineEnabled = NO;
97 xAxis.drawLabelsEnabled = YES; 89 xAxis.drawLabelsEnabled = YES;
98 xAxis.labelPosition = XAxisLabelPositionBottom; 90 xAxis.labelPosition = XAxisLabelPositionBottom;
99 xAxis.labelFont = [UIFont systemFontOfSize:10.f]; 91 xAxis.labelFont = [UIFont systemFontOfSize:10.f];
100 xAxis.labelTextColor = [UIColor whiteColor]; 92 xAxis.labelTextColor = [UIColor whiteColor];
101 xAxis.granularity = 1.0; // only intervals of 1 day 93 xAxis.granularity = 1.0; // only intervals of 1 day
102 xAxis.labelCount = 8; 94 xAxis.labelCount = 8;
103 95
104 self.viewBarChart.leftAxis.drawAxisLineEnabled = NO; 96 self.viewBarChart.leftAxis.drawAxisLineEnabled = NO;
105 self.viewBarChart.rightAxis.drawAxisLineEnabled = NO; 97 self.viewBarChart.rightAxis.drawAxisLineEnabled = NO;
106 98 }
107 /*fake data for test*/ 99
100 -(void) updateView {
101 self.lblStep.text = [NSString stringWithFormat:@"%d", _curHisObj.step];
102 self.lblRemaining.text = [NSString stringWithFormat:@"%d", _curHisObj.missing];
103 self.lblPercent.text = [NSString stringWithFormat:@"%0.2f", _curHisObj.percent * 100];
104 self.lblCalories.text = [NSString stringWithFormat:@"%0.2f", _curHisObj.calories];
105 self.lblDistance.text = [NSString stringWithFormat:@"%0.1f", _curHisObj.distance];
106 self.lblTime.text = _curHisObj.time;
107 }
108
109 -(void) updateGraphView {
108 NSMutableArray *yVals = [[NSMutableArray alloc] init]; 110 NSMutableArray *yVals = [[NSMutableArray alloc] init];
109 111 for (int i = 0; i < _curHisGraphObj.arrayStep.count; i++)
110 for (int i = 0; i < 24; i++)
111 { 112 {
112 double val = (double) (arc4random_uniform(100)); 113 [yVals addObject:[[BarChartDataEntry alloc] initWithX:i y:[[_curHisGraphObj.arrayStep objectAtIndex:i] doubleValue]]];
113 [yVals addObject:[[BarChartDataEntry alloc] initWithX:i y:val]];
114 } 114 }
115 115
116 BarChartDataSet *set1 = nil; 116 BarChartDataSet *set1 = nil;
117 if (self.viewBarChart.data.dataSetCount > 0) 117 if (self.viewBarChart.data.dataSetCount > 0)
118 { 118 {
119 set1 = (BarChartDataSet *)self.viewBarChart.data.dataSets[0]; 119 set1 = (BarChartDataSet *)self.viewBarChart.data.dataSets[0];
120 set1.values = yVals; 120 set1.values = yVals;
121 [self.viewBarChart.data notifyDataChanged]; 121 [self.viewBarChart.data notifyDataChanged];
122 [self.viewBarChart notifyDataSetChanged]; 122 [self.viewBarChart notifyDataSetChanged];
123 } 123 }
124 else 124 else
125 { 125 {
126 set1 = [[BarChartDataSet alloc] initWithValues:yVals label:@""]; 126 set1 = [[BarChartDataSet alloc] initWithValues:yVals label:@""];
127 [set1 setColor:[UIColor whiteColor]]; 127 [set1 setColor:[UIColor whiteColor]];
128 128
129 NSMutableArray *dataSets = [[NSMutableArray alloc] init]; 129 NSMutableArray *dataSets = [[NSMutableArray alloc] init];
130 [dataSets addObject:set1]; 130 [dataSets addObject:set1];
131 131
132 BarChartData *data = [[BarChartData alloc] initWithDataSets:dataSets]; 132 BarChartData *data = [[BarChartData alloc] initWithDataSets:dataSets];
133 data.barWidth = 0.5f; 133 data.barWidth = 0.5f;
134 134
135 self.viewBarChart.data = data; 135 self.viewBarChart.data = data;
136 } 136 }
137 } 137 }
138 138
139 -(void) callRequestToUpdateData { 139 -(void) callRequestToUpdateData {
140 [[ServerAPI server] requestHistory:[[NSUserDefaults standardUserDefaults] stringForKey:kToken] atDate:_currentDate withType:self.viewCollectionType.getCurrentIndex andMode:self.viewCollectionMode.getCurrentIndex + 1 CompletionHandler:^(HistoryObject *object, NSError *error) { 140 MBProgressHUD *hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true];
141 HistoryViewController __weak *weakSelf = self; 141 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken];
142 if(error == nil) { 142 int type = self.viewCollectionType.getCurrentIndex;
143 _currentHistoryObject = object; 143 int mode = self.viewCollectionMode.getCurrentIndex + 1;
144 dispatch_async(dispatch_get_main_queue(), ^{ 144
145 [self updateView]; 145 if(self.tableListHistory.alpha == 0.0) {
146 }); 146 [[ServerAPI server] requestHistory:token atDate:_curDate withType:type andMode:mode CompletionHandler:^(HistoryObject *object, NSError *error) {
147 } 147 HistoryViewController __weak *weakSelf = self;
148 else { 148 if(error == nil) {
149 dispatch_async(dispatch_get_main_queue(), ^{ 149 _curHisObj = object;
150 NSString *message = [error.userInfo objectForKey:@"message"]; 150 dispatch_async(dispatch_get_main_queue(), ^{
151 [Utilities showErrorMessage:message withViewController:weakSelf]; 151 [hudView hideAnimated:true];
152 }); 152 [weakSelf updateView];
153 } 153 });
154 }]; 154 }
155 else {
156 dispatch_async(dispatch_get_main_queue(), ^{
157 [hudView hideAnimated:true];
158 NSString *message = [error.userInfo objectForKey:@"message"];
159 [Utilities showErrorMessage:message withViewController:weakSelf];
160 });
161 }
162 }];
163
164 [[ServerAPI server] requestHistoryGraph:token withType:type andMode:mode CompletionHandler:^(HistoryGraphObject *object, NSError *error) {
165 HistoryViewController __weak *weakSelf = self;
166 if(error == nil) {
167 _curHisGraphObj = object;
168 dispatch_async(dispatch_get_main_queue(), ^{
169 [self updateGraphView];
170 });
171 }
172 else {
173 dispatch_async(dispatch_get_main_queue(), ^{
174 NSString *message = [error.userInfo objectForKey:@"message"];
175 [Utilities showErrorMessage:message withViewController:weakSelf];
176 });
177 }
178 }];
179 }
180 else {
181 [[ServerAPI server] requestHistoryList:token withType:type andMode:mode AtPage:1 CompletionHandler:^(NSMutableArray *object, NSError *error) {
182 HistoryViewController __weak *weakSelf = self;
183 if(error == nil) {
184 _curHisList = object;
185 dispatch_async(dispatch_get_main_queue(), ^{
186 [hudView hideAnimated:true];
187 [weakSelf.tableListHistory reloadData];
188 });
189 }
190 else {
191 dispatch_async(dispatch_get_main_queue(), ^{
192 [hudView hideAnimated:true];
193 NSString *message = [error.userInfo objectForKey:@"message"];
194 [Utilities showErrorMessage:message withViewController:weakSelf];
195 });
196 }
197 }];
198 }
155 } 199 }
156 200
157 #pragma mark IBAction 201 #pragma mark IBAction
158 -(void) swipeAction:(UISwipeGestureRecognizer *)sender { 202 -(void) swipeAction:(UISwipeGestureRecognizer *)sender {
159 bool alphaValue = self.scrollView.alpha == 1.0 ? 1.0 : 0.0; 203 bool alphaValue = self.scrollView.alpha == 1.0 ? 1.0 : 0.0;
160 [UIView animateWithDuration:0.5 animations:^{ 204 [UIView animateWithDuration:0.5 animations:^{
161 self.tableListHistory.alpha = alphaValue; 205 self.tableListHistory.alpha = alphaValue;
162 self.scrollView.alpha = 1.0 - alphaValue; 206 self.scrollView.alpha = 1.0 - alphaValue;
163 } completion:^(bool completed) { 207 } completion:^(bool completed) {
208 [self callRequestToUpdateData];
164 }]; 209 }];
165 } 210 }
166 211
167 #pragma mark UITableView Delegate 212 #pragma mark UITableView Delegate
213 - (NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
214 if(_curHisList == nil || _curHisList.count == 0) {
215 UILabel * noDataLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, tableView.frame.size.height)];
216 noDataLabel.text = @"No data available";
217 noDataLabel.backgroundColor = [UIColor clearColor];
218 noDataLabel.textColor = [UIColor whiteColor];
219 noDataLabel.textAlignment = NSTextAlignmentCenter;
220 tableView.backgroundView = noDataLabel;
221 tableView.backgroundView.layer.zPosition -= 1;
222 return 0;
223 }
224 tableView.backgroundView = nil;
225 return 1;
226 }
227
168 - (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 228 - (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
169 return 4; 229 return _curHisList.count;
170 } 230 }
171 231
172 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 232 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
LifeLog/LifeLog/ServerAPI.h
1 // 1 //
2 // ServerAPI.h 2 // ServerAPI.h
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by Nguyen Van Phong on 7/30/17. 5 // Created by Nguyen Van Phong on 7/30/17.
6 // Copyright ยฉ 2017 PhongNV. All rights reserved. 6 // Copyright ยฉ 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import <Foundation/Foundation.h> 9 #import <Foundation/Foundation.h>
10 #import "Entities.h" 10 #import "Entities.h"
11 11
12 extern NSString *const kServerAddress; 12 extern NSString *const kServerAddress;
13 extern NSString *const kUser; 13 extern NSString *const kUser;
14 extern NSString *const kToken; 14 extern NSString *const kToken;
15 15
16 @interface ServerAPI : NSObject 16 @interface ServerAPI : NSObject
17 + (instancetype) server; 17 + (instancetype) server;
18 @property (nonatomic, assign) NSTimeInterval timeOutInterval; 18 @property (nonatomic, assign) NSTimeInterval timeOutInterval;
19 - (void)loginWithEmail:(NSString *)email Password:(NSString *)password CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion; 19 - (void)loginWithEmail:(NSString *)email Password:(NSString *)password CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion;
20 - (void)registerUserWithParams:(NSDictionary *)params CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion; 20 - (void)registerUserWithParams:(NSDictionary *)params CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion;
21 - (void)uploadImage:(NSString *)token andImageData:(NSData *)data CompletionHandler:(void (^)(NSString *, NSError *)) completion; 21 - (void)uploadImage:(NSString *)token andImageData:(NSData *)data CompletionHandler:(void (^)(NSString *, NSError *)) completion;
22 - (void)forgetPass:(NSString *)email CompletionHandler:(void (^)(NSError *)) completion; 22 - (void)forgetPass:(NSString *)email CompletionHandler:(void (^)(NSError *)) completion;
23 - (void)confirmForgetPass:(NSString *)email withConfirm:(NSString *)confirm CompletionHandler:(void (^)(NSError *)) completion; 23 - (void)confirmForgetPass:(NSString *)email withConfirm:(NSString *)confirm CompletionHandler:(void (^)(NSError *)) completion;
24 24
25 - (void) requestHistory:(NSString *)token atDate:(NSDate *)date withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryObject *, NSError *)) completion; 25 - (void) requestHistory:(NSString *)token atDate:(NSDate *)date withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryObject *, NSError *)) completion;
26 26 - (void) requestHistoryGraph:(NSString *)token withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryGraphObject *, NSError *)) completion;
27 - (void) requestHistoryList:(NSString *)token withType:(int)type andMode:(int) mode AtPage:(int) page CompletionHandler:(void (^)(NSMutableArray *, NSError *)) completion;
27 @end 28 @end
28 29
LifeLog/LifeLog/ServerAPI.m
1 // 1 //
2 // ServerAPI.m 2 // ServerAPI.m
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by Nguyen Van Phong on 7/30/17. 5 // Created by Nguyen Van Phong on 7/30/17.
6 // Copyright ยฉ 2017 PhongNV. All rights reserved. 6 // Copyright ยฉ 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import "ServerAPI.h" 9 #import "ServerAPI.h"
10 10
11 NSString *const kServerAddress = @"http://clover.timesfun.jp:9001/"; 11 NSString *const kServerAddress = @"http://clover.timesfun.jp:9001/";
12 NSString *const kUser = @"KEY_USER"; 12 NSString *const kUser = @"KEY_USER";
13 NSString *const kToken = @"KEY_TOKEN"; 13 NSString *const kToken = @"KEY_TOKEN";
14 14
15 @implementation NSString (NSString_Extended) 15 @implementation NSString (NSString_Extended)
16 - (NSString *)urlencode { 16 - (NSString *)urlencode {
17 NSMutableString *output = [NSMutableString string]; 17 NSMutableString *output = [NSMutableString string];
18 const unsigned char *source = (const unsigned char *)[self UTF8String]; 18 const unsigned char *source = (const unsigned char *)[self UTF8String];
19 int sourceLen = (int)strlen((const char *)source); 19 int sourceLen = (int)strlen((const char *)source);
20 for (int i = 0; i < sourceLen; ++i) { 20 for (int i = 0; i < sourceLen; ++i) {
21 const unsigned char thisChar = source[i]; 21 const unsigned char thisChar = source[i];
22 if (thisChar == ' '){ 22 if (thisChar == ' '){
23 [output appendString:@"+"]; 23 [output appendString:@"+"];
24 } else if (thisChar == '.' || thisChar == '-' || thisChar == '_' || thisChar == '~' || 24 } else if (thisChar == '.' || thisChar == '-' || thisChar == '_' || thisChar == '~' ||
25 (thisChar >= 'a' && thisChar <= 'z') || 25 (thisChar >= 'a' && thisChar <= 'z') ||
26 (thisChar >= 'A' && thisChar <= 'Z') || 26 (thisChar >= 'A' && thisChar <= 'Z') ||
27 (thisChar >= '0' && thisChar <= '9')) { 27 (thisChar >= '0' && thisChar <= '9')) {
28 [output appendFormat:@"%c", thisChar]; 28 [output appendFormat:@"%c", thisChar];
29 } else { 29 } else {
30 [output appendFormat:@"%%%02X", thisChar]; 30 [output appendFormat:@"%%%02X", thisChar];
31 } 31 }
32 } 32 }
33 return output; 33 return output;
34 } 34 }
35 @end 35 @end
36 36
37 @implementation ServerAPI 37 @implementation ServerAPI
38 static ServerAPI *_server = nil; 38 static ServerAPI *_server = nil;
39 39
40 @synthesize timeOutInterval = _timeOutInterval; 40 @synthesize timeOutInterval = _timeOutInterval;
41 41
42 + (instancetype)server 42 + (instancetype)server
43 { 43 {
44 @synchronized(self) { 44 @synchronized(self) {
45 if (_server == nil) { 45 if (_server == nil) {
46 _server = [[ServerAPI alloc] init]; 46 _server = [[ServerAPI alloc] init];
47 } 47 }
48 } 48 }
49 return _server; 49 return _server;
50 } 50 }
51 51
52 - (instancetype)init 52 - (instancetype)init
53 { 53 {
54 self = [super init]; 54 self = [super init];
55 if (self != nil) { 55 if (self != nil) {
56 self.timeOutInterval = 150; 56 self.timeOutInterval = 150;
57 } 57 }
58 return self; 58 return self;
59 } 59 }
60 60
61 // Login 61 // Login
62 - (void)loginWithEmail:(NSString *)email Password:(NSString *)password CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion 62 - (void)loginWithEmail:(NSString *)email Password:(NSString *)password CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion
63 { 63 {
64 [self _request:[kServerAddress stringByAppendingFormat: @"login"] method:@"POST" token:@"" paras:@{@"email":email, @"password": password} completion:^(NSData *data, NSError *error) { 64 [self _request:[kServerAddress stringByAppendingFormat: @"login"] method:@"POST" token:@"" paras:@{@"email":email, @"password": password} completion:^(NSData *data, NSError *error) {
65 65
66 if (completion == NULL) { 66 if (completion == NULL) {
67 return ; 67 return ;
68 } 68 }
69 69
70 if (error == nil) 70 if (error == nil)
71 { 71 {
72 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 72 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
73 73
74 int status = [dataResult[@"status"] intValue]; 74 int status = [dataResult[@"status"] intValue];
75 if (status == 1) { // status = 1 success 75 if (status == 1) { // status = 1 success
76 NSString *token = dataResult[@"result"][@"token"]; 76 NSString *token = dataResult[@"result"][@"token"];
77 NSDictionary *dictUser = dataResult[@"result"][@"user"]; 77 NSDictionary *dictUser = dataResult[@"result"][@"user"];
78 User *user = [[User alloc] init]; 78 User *user = [[User alloc] init];
79 user.user_id = [NSString stringWithFormat:@"%@",dictUser[@"id"]]; 79 user.user_id = [NSString stringWithFormat:@"%@",dictUser[@"id"]];
80 user.username = [NSString stringWithFormat:@"%@",dictUser[@"username"]]; 80 user.username = [NSString stringWithFormat:@"%@",dictUser[@"username"]];
81 user.full_name = [NSString stringWithFormat:@"%@",dictUser[@"full_name"]]; 81 user.full_name = [NSString stringWithFormat:@"%@",dictUser[@"full_name"]];
82 user.nickname = [NSString stringWithFormat:@"%@",dictUser[@"nickname"]]; 82 user.nickname = [NSString stringWithFormat:@"%@",dictUser[@"nickname"]];
83 user.email = [NSString stringWithFormat:@"%@",dictUser[@"email"]]; 83 user.email = [NSString stringWithFormat:@"%@",dictUser[@"email"]];
84 user.password = [NSString stringWithFormat:@"%@",dictUser[@"password"]]; 84 user.password = [NSString stringWithFormat:@"%@",dictUser[@"password"]];
85 user.birthday = [NSString stringWithFormat:@"%@",dictUser[@"birthday"]]; 85 user.birthday = [NSString stringWithFormat:@"%@",dictUser[@"birthday"]];
86 user.address = [NSString stringWithFormat:@"%@",dictUser[@"address"]]; 86 user.address = [NSString stringWithFormat:@"%@",dictUser[@"address"]];
87 user.gender = [[NSString stringWithFormat:@"%@",dictUser[@"gender"]] intValue]; 87 user.gender = [[NSString stringWithFormat:@"%@",dictUser[@"gender"]] intValue];
88 user.height = [[NSString stringWithFormat:@"%@",dictUser[@"height"]] floatValue]; 88 user.height = [[NSString stringWithFormat:@"%@",dictUser[@"height"]] floatValue];
89 user.weight = [[NSString stringWithFormat:@"%@",dictUser[@"weight"]] floatValue]; 89 user.weight = [[NSString stringWithFormat:@"%@",dictUser[@"weight"]] floatValue];
90 user.user_description = [NSString stringWithFormat:@"%@",dictUser[@"description"]]; 90 user.user_description = [NSString stringWithFormat:@"%@",dictUser[@"description"]];
91 user.created_at = [NSString stringWithFormat:@"%@",dictUser[@"created_at"]]; 91 user.created_at = [NSString stringWithFormat:@"%@",dictUser[@"created_at"]];
92 user.physical_activity = [NSString stringWithFormat:@"%@",dictUser[@"physical_activity"]]; 92 user.physical_activity = [NSString stringWithFormat:@"%@",dictUser[@"physical_activity"]];
93 user.profile_image = [NSString stringWithFormat:@"%@",dictUser[@"profile_image"]]; 93 user.profile_image = [NSString stringWithFormat:@"%@",dictUser[@"profile_image"]];
94 user.updated_at = [NSString stringWithFormat:@"%@",dictUser[@"updated_at"]]; 94 user.updated_at = [NSString stringWithFormat:@"%@",dictUser[@"updated_at"]];
95 user.delete_flag = [[NSString stringWithFormat:@"%@",dictUser[@"delete_flag"]] intValue]; 95 user.delete_flag = [[NSString stringWithFormat:@"%@",dictUser[@"delete_flag"]] intValue];
96 user.fat_rate = [[NSString stringWithFormat:@"%@",dictUser[@"fat_rate"]] intValue]; 96 user.fat_rate = [[NSString stringWithFormat:@"%@",dictUser[@"fat_rate"]] intValue];
97 user.profiles_share = [[NSString stringWithFormat:@"%@",dictUser[@"profiles_share"]] intValue]; 97 user.profiles_share = [[NSString stringWithFormat:@"%@",dictUser[@"profiles_share"]] intValue];
98 user.remember_me = [[NSString stringWithFormat:@"%@",dictUser[@"remember_me"]] intValue]; 98 user.remember_me = [[NSString stringWithFormat:@"%@",dictUser[@"remember_me"]] intValue];
99 user.sound_notifications_share = [[NSString stringWithFormat:@"%@",dictUser[@"sound_notifications_share"]] intValue]; 99 user.sound_notifications_share = [[NSString stringWithFormat:@"%@",dictUser[@"sound_notifications_share"]] intValue];
100 user.spend_calo_in_day = [[NSString stringWithFormat:@"%@",dictUser[@"spend_calo_in_day"]] intValue]; 100 user.spend_calo_in_day = [[NSString stringWithFormat:@"%@",dictUser[@"spend_calo_in_day"]] intValue];
101 user.target = [[NSString stringWithFormat:@"%@",dictUser[@"target"]] intValue]; 101 user.target = [[NSString stringWithFormat:@"%@",dictUser[@"target"]] intValue];
102 completion(user, token, nil); 102 completion(user, token, nil);
103 } 103 }
104 else { // status = 0 error 104 else { // status = 0 error
105 NSString *message = dataResult[@"message"]; 105 NSString *message = dataResult[@"message"];
106 NSError *loginFaild = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 106 NSError *loginFaild = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
107 completion(nil, nil, loginFaild); 107 completion(nil, nil, loginFaild);
108 } 108 }
109 } 109 }
110 else 110 else
111 { 111 {
112 completion(nil, nil, error); 112 completion(nil, nil, error);
113 } 113 }
114 }]; 114 }];
115 } 115 }
116 116
117 // Register 117 // Register
118 - (void)registerUserWithParams:(NSDictionary *)params CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion { 118 - (void)registerUserWithParams:(NSDictionary *)params CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion {
119 [self _request:[kServerAddress stringByAppendingFormat: @"register"] method:@"POST" token:@"" paras:params completion:^(NSData *data, NSError *error) { 119 [self _request:[kServerAddress stringByAppendingFormat: @"register"] method:@"POST" token:@"" paras:params completion:^(NSData *data, NSError *error) {
120 120
121 if (completion == NULL) { 121 if (completion == NULL) {
122 return ; 122 return ;
123 } 123 }
124 124
125 if (error == nil) 125 if (error == nil)
126 { 126 {
127 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 127 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
128 128
129 int status = [dataResult[@"status"] intValue]; 129 int status = [dataResult[@"status"] intValue];
130 if (status == 1) { // status = 1 success 130 if (status == 1) { // status = 1 success
131 NSString *token = dataResult[@"result"][@"token"]; 131 NSString *token = dataResult[@"result"][@"token"];
132 NSDictionary *dictUser = dataResult[@"result"][@"user"]; 132 NSDictionary *dictUser = dataResult[@"result"][@"user"];
133 User *user = [[User alloc] init]; 133 User *user = [[User alloc] init];
134 user.user_id = [NSString stringWithFormat:@"%@",dictUser[@"id"]]; 134 user.user_id = [NSString stringWithFormat:@"%@",dictUser[@"id"]];
135 user.username = [NSString stringWithFormat:@"%@",dictUser[@"username"]]; 135 user.username = [NSString stringWithFormat:@"%@",dictUser[@"username"]];
136 user.full_name = [NSString stringWithFormat:@"%@",dictUser[@"full_name"]]; 136 user.full_name = [NSString stringWithFormat:@"%@",dictUser[@"full_name"]];
137 user.nickname = [NSString stringWithFormat:@"%@",dictUser[@"nickname"]]; 137 user.nickname = [NSString stringWithFormat:@"%@",dictUser[@"nickname"]];
138 user.email = [NSString stringWithFormat:@"%@",dictUser[@"email"]]; 138 user.email = [NSString stringWithFormat:@"%@",dictUser[@"email"]];
139 user.password = [NSString stringWithFormat:@"%@",dictUser[@"password"]]; 139 user.password = [NSString stringWithFormat:@"%@",dictUser[@"password"]];
140 user.birthday = [NSString stringWithFormat:@"%@",dictUser[@"birthday"]]; 140 user.birthday = [NSString stringWithFormat:@"%@",dictUser[@"birthday"]];
141 user.address = [NSString stringWithFormat:@"%@",dictUser[@"address"]]; 141 user.address = [NSString stringWithFormat:@"%@",dictUser[@"address"]];
142 user.gender = [[NSString stringWithFormat:@"%@",dictUser[@"gender"]] intValue]; 142 user.gender = [[NSString stringWithFormat:@"%@",dictUser[@"gender"]] intValue];
143 user.height = [[NSString stringWithFormat:@"%@",dictUser[@"height"]] floatValue]; 143 user.height = [[NSString stringWithFormat:@"%@",dictUser[@"height"]] floatValue];
144 user.weight = [[NSString stringWithFormat:@"%@",dictUser[@"weight"]] floatValue]; 144 user.weight = [[NSString stringWithFormat:@"%@",dictUser[@"weight"]] floatValue];
145 user.user_description = [NSString stringWithFormat:@"%@",dictUser[@"description"]]; 145 user.user_description = [NSString stringWithFormat:@"%@",dictUser[@"description"]];
146 user.created_at = [NSString stringWithFormat:@"%@",dictUser[@"created_at"]]; 146 user.created_at = [NSString stringWithFormat:@"%@",dictUser[@"created_at"]];
147 user.physical_activity = [NSString stringWithFormat:@"%@",dictUser[@"physical_activity"]]; 147 user.physical_activity = [NSString stringWithFormat:@"%@",dictUser[@"physical_activity"]];
148 user.profile_image = [NSString stringWithFormat:@"%@",dictUser[@"profile_image"]]; 148 user.profile_image = [NSString stringWithFormat:@"%@",dictUser[@"profile_image"]];
149 user.updated_at = [NSString stringWithFormat:@"%@",dictUser[@"updated_at"]]; 149 user.updated_at = [NSString stringWithFormat:@"%@",dictUser[@"updated_at"]];
150 user.delete_flag = [[NSString stringWithFormat:@"%@",dictUser[@"delete_flag"]] intValue]; 150 user.delete_flag = [[NSString stringWithFormat:@"%@",dictUser[@"delete_flag"]] intValue];
151 user.fat_rate = [[NSString stringWithFormat:@"%@",dictUser[@"fat_rate"]] intValue]; 151 user.fat_rate = [[NSString stringWithFormat:@"%@",dictUser[@"fat_rate"]] intValue];
152 user.profiles_share = [[NSString stringWithFormat:@"%@",dictUser[@"profiles_share"]] intValue]; 152 user.profiles_share = [[NSString stringWithFormat:@"%@",dictUser[@"profiles_share"]] intValue];
153 user.remember_me = [[NSString stringWithFormat:@"%@",dictUser[@"remember_me"]] intValue]; 153 user.remember_me = [[NSString stringWithFormat:@"%@",dictUser[@"remember_me"]] intValue];
154 user.sound_notifications_share = [[NSString stringWithFormat:@"%@",dictUser[@"sound_notifications_share"]] intValue]; 154 user.sound_notifications_share = [[NSString stringWithFormat:@"%@",dictUser[@"sound_notifications_share"]] intValue];
155 user.spend_calo_in_day = [[NSString stringWithFormat:@"%@",dictUser[@"spend_calo_in_day"]] intValue]; 155 user.spend_calo_in_day = [[NSString stringWithFormat:@"%@",dictUser[@"spend_calo_in_day"]] intValue];
156 user.target = [[NSString stringWithFormat:@"%@",dictUser[@"target"]] intValue]; 156 user.target = [[NSString stringWithFormat:@"%@",dictUser[@"target"]] intValue];
157 completion(user, token, nil); 157 completion(user, token, nil);
158 } 158 }
159 else { // status = 0 error 159 else { // status = 0 error
160 NSString *message = dataResult[@"message"]; 160 NSString *message = dataResult[@"message"];
161 NSError *loginFaild = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 161 NSError *loginFaild = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
162 completion(nil, nil, loginFaild); 162 completion(nil, nil, loginFaild);
163 } 163 }
164 } 164 }
165 else 165 else
166 { 166 {
167 completion(nil, nil, error); 167 completion(nil, nil, error);
168 } 168 }
169 }]; 169 }];
170 } 170 }
171 171
172 - (void)forgetPass:(NSString *)email CompletionHandler:(void (^)(NSError *)) completion { 172 - (void)forgetPass:(NSString *)email CompletionHandler:(void (^)(NSError *)) completion {
173 [self _request:[kServerAddress stringByAppendingFormat: @"forgetPass"] method:@"POST" token:@"" paras:@{@"email":email} completion:^(NSData *data, NSError *error) { 173 [self _request:[kServerAddress stringByAppendingFormat: @"forgetPass"] method:@"POST" token:@"" paras:@{@"email":email} completion:^(NSData *data, NSError *error) {
174 174
175 if (completion == NULL) { 175 if (completion == NULL) {
176 return ; 176 return ;
177 } 177 }
178 178
179 if (error == nil) 179 if (error == nil)
180 { 180 {
181 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 181 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
182 182
183 int status = [dataResult[@"status"] intValue]; 183 int status = [dataResult[@"status"] intValue];
184 if (status == 1) { // status = 1 success 184 if (status == 1) { // status = 1 success
185 completion(nil); 185 completion(nil);
186 } 186 }
187 else { // status = 0 error 187 else { // status = 0 error
188 NSString *message = dataResult[@"message"]; 188 NSString *message = dataResult[@"message"];
189 NSError *forgetPass = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 189 NSError *forgetPass = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
190 completion(forgetPass); 190 completion(forgetPass);
191 } 191 }
192 } 192 }
193 else 193 else
194 { 194 {
195 completion(error); 195 completion(error);
196 } 196 }
197 }]; 197 }];
198 } 198 }
199 - (void)confirmForgetPass:(NSString *)email withConfirm:(NSString *)confirm CompletionHandler:(void (^)(NSError *)) completion { 199 - (void)confirmForgetPass:(NSString *)email withConfirm:(NSString *)confirm CompletionHandler:(void (^)(NSError *)) completion {
200 [self _request:[kServerAddress stringByAppendingFormat: @"forgetPass/confirm"] method:@"POST" token:@"" paras:@{@"email":email, @"code_confirm": confirm} completion:^(NSData *data, NSError *error) { 200 [self _request:[kServerAddress stringByAppendingFormat: @"forgetPass/confirm"] method:@"POST" token:@"" paras:@{@"email":email, @"code_confirm": confirm} completion:^(NSData *data, NSError *error) {
201 201
202 if (completion == NULL) { 202 if (completion == NULL) {
203 return ; 203 return ;
204 } 204 }
205 205
206 if (error == nil) 206 if (error == nil)
207 { 207 {
208 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 208 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
209 209
210 int status = [dataResult[@"status"] intValue]; 210 int status = [dataResult[@"status"] intValue];
211 if (status == 1) { // status = 1 success 211 if (status == 1) { // status = 1 success
212 completion(nil); 212 completion(nil);
213 } 213 }
214 else { // status = 0 error 214 else { // status = 0 error
215 NSString *message = dataResult[@"message"]; 215 NSString *message = dataResult[@"message"];
216 NSError *confirmForgetPass = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 216 NSError *confirmForgetPass = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
217 completion(confirmForgetPass); 217 completion(confirmForgetPass);
218 } 218 }
219 } 219 }
220 else 220 else
221 { 221 {
222 completion(error); 222 completion(error);
223 } 223 }
224 }]; 224 }];
225 } 225 }
226 226
227 - (void)uploadImage:(NSString *)token andImageData:(NSData *)data CompletionHandler:(void (^)(NSString *, NSError *)) completion { 227 - (void)uploadImage:(NSString *)token andImageData:(NSData *)data CompletionHandler:(void (^)(NSString *, NSError *)) completion {
228 NSDictionary *dict = nil; 228 NSDictionary *dict = nil;
229 NSString *base64Encoded = [data base64EncodedStringWithOptions:0]; 229 NSString *base64Encoded = [data base64EncodedStringWithOptions:0];
230 if (token != nil) { 230 if (token != nil) {
231 dict = @{@"token":token, @"img": base64Encoded}; 231 dict = @{@"token":token, @"img": base64Encoded};
232 } 232 }
233 else { 233 else {
234 dict = @{@"img": base64Encoded}; 234 dict = @{@"img": base64Encoded};
235 } 235 }
236 [self _request:[kServerAddress stringByAppendingFormat: @"upload-image"] method:@"POST" token:token paras:dict completion:^(NSData *data, NSError *error) { 236 [self _request:[kServerAddress stringByAppendingFormat: @"upload-image"] method:@"POST" token:token paras:dict completion:^(NSData *data, NSError *error) {
237 237
238 if (completion == NULL) { 238 if (completion == NULL) {
239 return ; 239 return ;
240 } 240 }
241 241
242 if (error == nil) 242 if (error == nil)
243 { 243 {
244 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 244 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
245 NSString *image_profile = [NSString stringWithFormat:@"%@", dataResult[@"message"]]; 245 NSString *image_profile = [NSString stringWithFormat:@"%@", dataResult[@"message"]];
246 completion(image_profile, nil); 246 completion(image_profile, nil);
247 } 247 }
248 else 248 else
249 { 249 {
250 completion(nil, error); 250 completion(nil, error);
251 } 251 }
252 }]; 252 }];
253 } 253 }
254 254
255 -(NSString *) convertIntToString : (int) type { 255 -(NSString *) convertIntToString : (int) type {
256 switch (type) { 256 switch (type) {
257 case 1: 257 case 1:
258 return @"week"; 258 return @"week";
259 break; 259 break;
260 case 2: 260 case 2:
261 return @"oneMonth"; 261 return @"oneMonth";
262 break; 262 break;
263 case 3: 263 case 3:
264 return @"threeMonth"; 264 return @"threeMonth";
265 break; 265 break;
266 case 4: 266 case 4:
267 return @"sixMonth"; 267 return @"sixMonth";
268 break; 268 break;
269 default: 269 default:
270 return @"today"; 270 return @"today";
271 break; 271 break;
272 } 272 }
273 } 273 }
274 274
275 #pragma mark - History Screen Function 275 #pragma mark - History Screen Function
276 - (void) requestHistory:(NSString *)token atDate:(NSDate *)date withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryObject *, NSError *)) completion { 276 - (void) requestHistory:(NSString *)token atDate:(NSDate *)date withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryObject *, NSError *)) completion {
277 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/history/%@/%d", [self convertIntToString:type], mode]; 277 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/history/%@/%d", [self convertIntToString:type], mode];
278 NSLog(@"requestHistory link %@", url); 278 NSLog(@"requestHistory link %@", url);
279 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) { 279 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) {
280 280
281 if (completion == NULL) { 281 if (completion == NULL) {
282 return ; 282 return ;
283 } 283 }
284 284
285 if (error == nil) 285 if (error == nil)
286 { 286 {
287 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 287 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
288 NSLog(@"%@", dataResult); 288 NSLog(@"%@", dataResult);
289 int status = [dataResult[@"status"] intValue]; 289 int status = [dataResult[@"status"] intValue];
290 if (status == 1) { // status = 1 success 290 if (status == 1) { // status = 1 success
291 HistoryObject * object = [[HistoryObject alloc] initWithData:dataResult[@"result"]]; 291 HistoryObject * object = [[HistoryObject alloc] initWithData:dataResult[@"result"]];
292 completion(object, nil); 292 completion(object, nil);
293 } 293 }
294 else { 294 else {
295 NSString *message = dataResult[@"message"]; 295 NSString *message = dataResult[@"message"];
296 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 296 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
297 completion(nil, errorObject); 297 completion(nil, errorObject);
298 } 298 }
299 } 299 }
300 else 300 else
301 { 301 {
302 completion(nil, error); 302 completion(nil, error);
303 } 303 }
304 }]; 304 }];
305 } 305 }
306 306
307 - (void) requestHistoryGraph:(NSString *)token withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryGraphObject *, NSError *)) completion {
308 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/history/graph/%@/%d", [self convertIntToString:type], mode];
309 NSLog(@"requestHistoryGraph link %@", url);
310 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) {
311
312 if (completion == NULL) {
313 return ;
314 }
315
316 if (error == nil)
317 {
318 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
319 NSLog(@"%@", dataResult);
320 int status = [dataResult[@"status"] intValue];
321 if (status == 1) { // status = 1 success
322 HistoryGraphObject * object = [[HistoryGraphObject alloc] initWithData:dataResult[@"result"]];
323 completion(object, nil);
324 }
325 else {
326 NSString *message = dataResult[@"message"];
327 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
328 completion(nil, errorObject);
329 }
330 }
331 else
332 {
333 completion(nil, error);
334 }
335 }];
336 }
337
338 - (void) requestHistoryList:(NSString *)token withType:(int)type andMode:(int) mode AtPage:(int) page CompletionHandler:(void (^)(NSMutableArray *, NSError *)) completion {
339 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/history/list/%@/%d?page=%d&record=50", [self convertIntToString:type], mode, page];
340 NSLog(@"requestHistoryList link %@", url);
341 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) {
342
343 if (completion == NULL) {
344 return ;
345 }
346
347 if (error == nil)
348 {
349 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
350 NSLog(@"%@", dataResult);
351 int status = [dataResult[@"status"] intValue];
352 if (status == 1) { // status = 1 success
353 if(dataResult[@"result"] != nil) {
354 NSArray * array = dataResult[@"result"][@"data"];
355 NSMutableArray * arrayHistory = [[NSMutableArray alloc] init];
356 for(NSDictionary * dict in array) {
357 HistoryObject * object = [[HistoryObject alloc] initWithData:dict];
358 [arrayHistory addObject:object];
359 }
360 completion(arrayHistory, nil);
361 }
362 else {
363 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}];
364 completion(nil, errorObject);
365 }
366 }
367 else {
368 NSString *message = dataResult[@"message"];
369 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
370 completion(nil, errorObject);
371 }
372 }
373 else
374 {
375 completion(nil, error);
376 }
377 }];
378 }
379
307 #pragma mark - Private Function 380 #pragma mark - Private Function
308 - (NSData *) _encodeDictionary: (NSDictionary *) dictionary 381 - (NSData *) _encodeDictionary: (NSDictionary *) dictionary
309 { 382 {
310 NSMutableArray *parts = [[NSMutableArray alloc] init]; 383 NSMutableArray *parts = [[NSMutableArray alloc] init];
311 for (id key in dictionary) 384 for (id key in dictionary)
312 { 385 {
313 NSString *encodedValue = [[dictionary[key] description] urlencode]; 386 NSString *encodedValue = [[dictionary[key] description] urlencode];
314 NSString *encodedKey = [[key description] urlencode];//[[key description] stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]; 387 NSString *encodedKey = [[key description] urlencode];//[[key description] stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
315 NSString *part = [NSString stringWithFormat: @"%@=%@", encodedKey, encodedValue]; 388 NSString *part = [NSString stringWithFormat: @"%@=%@", encodedKey, encodedValue];
316 [parts addObject:part]; 389 [parts addObject:part];
317 } 390 }
318 NSString *encodedDictionary = [parts componentsJoinedByString:@"&"]; 391 NSString *encodedDictionary = [parts componentsJoinedByString:@"&"];
319 return [encodedDictionary dataUsingEncoding: NSUTF8StringEncoding]; 392 return [encodedDictionary dataUsingEncoding: NSUTF8StringEncoding];
320 } 393 }
321 394
322 - (void) _request:(NSString *)address method:(NSString *)method token:(NSString *) token paras:(NSDictionary *)paras completion:(void (^)(NSData *data, NSError *error))completion 395 - (void) _request:(NSString *)address method:(NSString *)method token:(NSString *) token paras:(NSDictionary *)paras completion:(void (^)(NSData *data, NSError *error))completion
323 { 396 {
324 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: [NSURL URLWithString:address]]; 397 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: [NSURL URLWithString:address]];
325 request.HTTPMethod = method; 398 request.HTTPMethod = method;
326 [request setValue: @"application/json" forHTTPHeaderField: @"Accept"]; 399 [request setValue: @"application/json" forHTTPHeaderField: @"Accept"];
327 [request setValue: @"application/json" forHTTPHeaderField: @"Content-Type"]; 400 [request setValue: @"application/json" forHTTPHeaderField: @"Content-Type"];
328 if(token != nil && ![token isEqual: @""]) { 401 if(token != nil && ![token isEqual: @""]) {
329 [request setValue: token forHTTPHeaderField: @"token"]; 402 [request setValue: token forHTTPHeaderField: @"token"];
330 } 403 }
331 [request setTimeoutInterval:self.timeOutInterval]; 404 [request setTimeoutInterval:self.timeOutInterval];
332 405
333 if (paras != nil) 406 if (paras != nil)
334 { 407 {
335 NSData *encodedData = [self _encodeDictionary: paras]; 408 NSData *encodedData = [self _encodeDictionary: paras];
336 [request setValue: [NSString stringWithFormat: @"%lu", (unsigned long) encodedData.length] forHTTPHeaderField: @"Content-Length"]; 409 [request setValue: [NSString stringWithFormat: @"%lu", (unsigned long) encodedData.length] forHTTPHeaderField: @"Content-Length"];
337 [request setValue: @"application/x-www-form-urlencoded charset=utf-8" forHTTPHeaderField: @"Content-Type"]; 410 [request setValue: @"application/x-www-form-urlencoded charset=utf-8" forHTTPHeaderField: @"Content-Type"];
338 [request setHTTPBody: encodedData]; 411 [request setHTTPBody: encodedData];
339 } 412 }
340 413
341 NSURLSession *session = [NSURLSession sharedSession]; 414 NSURLSession *session = [NSURLSession sharedSession];
342 NSURLSessionDataTask *task = [session dataTaskWithRequest:request 415 NSURLSessionDataTask *task = [session dataTaskWithRequest:request
343 completionHandler: 416 completionHandler:
344 ^(NSData *data, NSURLResponse *response, NSError *error) { 417 ^(NSData *data, NSURLResponse *response, NSError *error) {
345 if (completion == NULL) { 418 if (completion == NULL) {
346 return ; 419 return ;
347 } 420 }
348 if (error == nil) 421 if (error == nil)
349 { 422 {
350 completion(data, nil); 423 completion(data, nil);
351 } 424 }
352 else 425 else
353 { 426 {
354 completion(nil, error); 427 completion(nil, error);
355 } 428 }
356 }]; 429 }];
357 430
358 [task resume]; 431 [task resume];
359 } 432 }
360 433
361 @end 434 @end
362 435