Commit 7aa2027583dc8d6ca20d372caa8a9ae1ac86714d

Authored by nvtu11790@gmail.com
1 parent 923306f25e

Add API get recent tweets list in SNS Screen

Showing 14 changed files with 295 additions and 26 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 E9373E4D1F361A230059355A /* HistoryGraphObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E4C1F361A230059355A /* HistoryGraphObject.m */; };
50 E9682E2E1F39675A00FE05A2 /* RankingTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */; }; 50 E9682E2E1F39675A00FE05A2 /* RankingTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */; };
51 E9682E2F1F39675A00FE05A2 /* RankingTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */; }; 51 E9682E2F1F39675A00FE05A2 /* RankingTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */; };
52 E968550A1F3C444900317CEF /* AutoTransButton.m in Sources */ = {isa = PBXBuildFile; fileRef = E96855091F3C444900317CEF /* AutoTransButton.m */; }; 52 E968550A1F3C444900317CEF /* AutoTransButton.m in Sources */ = {isa = PBXBuildFile; fileRef = E96855091F3C444900317CEF /* AutoTransButton.m */; };
53 E96855111F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */; }; 53 E96855111F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */; };
54 E96855121F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */; }; 54 E96855121F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */; };
55 E997E0261F3AB66500709FB1 /* Social.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E997E0251F3AB66500709FB1 /* Social.framework */; }; 55 E997E0261F3AB66500709FB1 /* Social.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E997E0251F3AB66500709FB1 /* Social.framework */; };
56 E99E13AB1F336F3600C78787 /* CollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = E99E13AA1F336F3600C78787 /* CollectionView.m */; }; 56 E99E13AB1F336F3600C78787 /* CollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = E99E13AA1F336F3600C78787 /* CollectionView.m */; };
57 E99E13AD1F336F4500C78787 /* CollectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = E99E13AC1F336F4500C78787 /* CollectionView.xib */; }; 57 E99E13AD1F336F4500C78787 /* CollectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = E99E13AC1F336F4500C78787 /* CollectionView.xib */; };
58 E99E13B11F33720600C78787 /* LabelCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */; }; 58 E99E13B11F33720600C78787 /* LabelCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */; };
59 E99E13B21F33720600C78787 /* LabelCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */; }; 59 E99E13B21F33720600C78787 /* LabelCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */; };
60 E9D909211F3D559D004CF99F /* TweetObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9D909201F3D559D004CF99F /* TweetObject.m */; };
60 E9F73DCC1F338A0F004A3A6F /* HistoryListTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */; }; 61 E9F73DCC1F338A0F004A3A6F /* HistoryListTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */; };
61 E9F73DCD1F338A0F004A3A6F /* HistoryListTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */; }; 62 E9F73DCD1F338A0F004A3A6F /* HistoryListTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */; };
62 /* End PBXBuildFile section */ 63 /* End PBXBuildFile section */
63 64
64 /* Begin PBXContainerItemProxy section */ 65 /* Begin PBXContainerItemProxy section */
65 6E84E38B1F27A703001EB88E /* PBXContainerItemProxy */ = { 66 6E84E38B1F27A703001EB88E /* 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 6E84E3961F27A703001EB88E /* PBXContainerItemProxy */ = { 73 6E84E3961F27A703001EB88E /* PBXContainerItemProxy */ = {
73 isa = PBXContainerItemProxy; 74 isa = PBXContainerItemProxy;
74 containerPortal = 6E84E3691F27A700001EB88E /* Project object */; 75 containerPortal = 6E84E3691F27A700001EB88E /* Project object */;
75 proxyType = 1; 76 proxyType = 1;
76 remoteGlobalIDString = 6E84E3701F27A700001EB88E; 77 remoteGlobalIDString = 6E84E3701F27A700001EB88E;
77 remoteInfo = LifeLog; 78 remoteInfo = LifeLog;
78 }; 79 };
79 /* End PBXContainerItemProxy section */ 80 /* End PBXContainerItemProxy section */
80 81
81 /* Begin PBXFileReference section */ 82 /* Begin PBXFileReference section */
82 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>"; }; 83 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>"; };
83 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LifeLog.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 84 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LifeLog.framework; sourceTree = BUILT_PRODUCTS_DIR; };
84 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>"; }; 85 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>"; };
85 6E18CED01F2E39DB0029891F /* LoginViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoginViewController.h; sourceTree = "<group>"; }; 86 6E18CED01F2E39DB0029891F /* LoginViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoginViewController.h; sourceTree = "<group>"; };
86 6E18CED11F2E39DB0029891F /* LoginViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LoginViewController.m; sourceTree = "<group>"; }; 87 6E18CED11F2E39DB0029891F /* LoginViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LoginViewController.m; sourceTree = "<group>"; };
87 6E18CED21F2E39DB0029891F /* LoginViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LoginViewController.xib; sourceTree = "<group>"; }; 88 6E18CED21F2E39DB0029891F /* LoginViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LoginViewController.xib; sourceTree = "<group>"; };
88 6E18CED61F2E3C840029891F /* ServerAPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServerAPI.h; sourceTree = "<group>"; }; 89 6E18CED61F2E3C840029891F /* ServerAPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServerAPI.h; sourceTree = "<group>"; };
89 6E18CED71F2E3C840029891F /* ServerAPI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ServerAPI.m; sourceTree = "<group>"; }; 90 6E18CED71F2E3C840029891F /* ServerAPI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ServerAPI.m; sourceTree = "<group>"; };
90 6E18CEDA1F2E40F50029891F /* User.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = User.h; sourceTree = "<group>"; }; 91 6E18CEDA1F2E40F50029891F /* User.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = User.h; sourceTree = "<group>"; };
91 6E18CEDB1F2E40F50029891F /* User.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = User.m; sourceTree = "<group>"; }; 92 6E18CEDB1F2E40F50029891F /* User.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = User.m; sourceTree = "<group>"; };
92 6E18CEDD1F2E46570029891F /* Entities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Entities.h; sourceTree = "<group>"; }; 93 6E18CEDD1F2E46570029891F /* Entities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Entities.h; sourceTree = "<group>"; };
93 6E48AF0B1F2F9D3200C1D184 /* CustomTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomTextField.h; sourceTree = "<group>"; }; 94 6E48AF0B1F2F9D3200C1D184 /* CustomTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomTextField.h; sourceTree = "<group>"; };
94 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomTextField.m; sourceTree = "<group>"; }; 95 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomTextField.m; sourceTree = "<group>"; };
95 6E7F933A1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingCollectionView.h; sourceTree = "<group>"; }; 96 6E7F933A1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingCollectionView.h; sourceTree = "<group>"; };
96 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingCollectionView.m; sourceTree = "<group>"; }; 97 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingCollectionView.m; sourceTree = "<group>"; };
97 6E7F933C1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingScrollView.h; sourceTree = "<group>"; }; 98 6E7F933C1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingScrollView.h; sourceTree = "<group>"; };
98 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingScrollView.m; sourceTree = "<group>"; }; 99 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingScrollView.m; sourceTree = "<group>"; };
99 6E7F933E1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingTableView.h; sourceTree = "<group>"; }; 100 6E7F933E1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingTableView.h; sourceTree = "<group>"; };
100 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingTableView.m; sourceTree = "<group>"; }; 101 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingTableView.m; sourceTree = "<group>"; };
101 6E7F93401F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIScrollView+TPKeyboardAvoidingAdditions.h"; sourceTree = "<group>"; }; 102 6E7F93401F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIScrollView+TPKeyboardAvoidingAdditions.h"; sourceTree = "<group>"; };
102 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIScrollView+TPKeyboardAvoidingAdditions.m"; sourceTree = "<group>"; }; 103 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIScrollView+TPKeyboardAvoidingAdditions.m"; sourceTree = "<group>"; };
103 6E84E3711F27A700001EB88E /* LifeLog.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LifeLog.app; sourceTree = BUILT_PRODUCTS_DIR; }; 104 6E84E3711F27A700001EB88E /* LifeLog.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LifeLog.app; sourceTree = BUILT_PRODUCTS_DIR; };
104 6E84E3751F27A701001EB88E /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; }; 105 6E84E3751F27A701001EB88E /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
105 6E84E3771F27A701001EB88E /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; }; 106 6E84E3771F27A701001EB88E /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
106 6E84E3781F27A701001EB88E /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; }; 107 6E84E3781F27A701001EB88E /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
107 6E84E3801F27A701001EB88E /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; 108 6E84E3801F27A701001EB88E /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
108 6E84E3831F27A701001EB88E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; }; 109 6E84E3831F27A701001EB88E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
109 6E84E3851F27A701001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 110 6E84E3851F27A701001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
110 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LifeLogTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 111 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LifeLogTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
111 6E84E38E1F27A703001EB88E /* LifeLogTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LifeLogTests.m; sourceTree = "<group>"; }; 112 6E84E38E1F27A703001EB88E /* LifeLogTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LifeLogTests.m; sourceTree = "<group>"; };
112 6E84E3901F27A703001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 113 6E84E3901F27A703001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
113 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LifeLogUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 114 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LifeLogUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
114 6E84E3991F27A703001EB88E /* LifeLogUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LifeLogUITests.m; sourceTree = "<group>"; }; 115 6E84E3991F27A703001EB88E /* LifeLogUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LifeLogUITests.m; sourceTree = "<group>"; };
115 6E84E39B1F27A703001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 116 6E84E39B1F27A703001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
116 6E84E3AD1F27A975001EB88E /* HomeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HomeViewController.h; sourceTree = "<group>"; }; 117 6E84E3AD1F27A975001EB88E /* HomeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HomeViewController.h; sourceTree = "<group>"; };
117 6E84E3AE1F27A975001EB88E /* HomeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HomeViewController.m; sourceTree = "<group>"; }; 118 6E84E3AE1F27A975001EB88E /* HomeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HomeViewController.m; sourceTree = "<group>"; };
118 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HomeViewController.xib; sourceTree = "<group>"; }; 119 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HomeViewController.xib; sourceTree = "<group>"; };
119 6E84E3B21F27A98B001EB88E /* HistoryViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryViewController.h; sourceTree = "<group>"; }; 120 6E84E3B21F27A98B001EB88E /* HistoryViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryViewController.h; sourceTree = "<group>"; };
120 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryViewController.m; sourceTree = "<group>"; }; 121 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryViewController.m; sourceTree = "<group>"; };
121 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HistoryViewController.xib; sourceTree = "<group>"; }; 122 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HistoryViewController.xib; sourceTree = "<group>"; };
122 6E84E3B71F27A9A0001EB88E /* RankingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RankingViewController.h; sourceTree = "<group>"; }; 123 6E84E3B71F27A9A0001EB88E /* RankingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RankingViewController.h; sourceTree = "<group>"; };
123 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RankingViewController.m; sourceTree = "<group>"; }; 124 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RankingViewController.m; sourceTree = "<group>"; };
124 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RankingViewController.xib; sourceTree = "<group>"; }; 125 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RankingViewController.xib; sourceTree = "<group>"; };
125 6E84E3BC1F27A9B1001EB88E /* SNSViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SNSViewController.h; sourceTree = "<group>"; }; 126 6E84E3BC1F27A9B1001EB88E /* SNSViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SNSViewController.h; sourceTree = "<group>"; };
126 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SNSViewController.m; sourceTree = "<group>"; }; 127 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SNSViewController.m; sourceTree = "<group>"; };
127 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SNSViewController.xib; sourceTree = "<group>"; }; 128 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SNSViewController.xib; sourceTree = "<group>"; };
128 6E84E3C21F27ACAE001EB88E /* MapViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MapViewController.h; sourceTree = "<group>"; }; 129 6E84E3C21F27ACAE001EB88E /* MapViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MapViewController.h; sourceTree = "<group>"; };
129 6E84E3C31F27ACAE001EB88E /* MapViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MapViewController.m; sourceTree = "<group>"; }; 130 6E84E3C31F27ACAE001EB88E /* MapViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MapViewController.m; sourceTree = "<group>"; };
130 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MapViewController.xib; sourceTree = "<group>"; }; 131 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MapViewController.xib; sourceTree = "<group>"; };
131 6E8DA0F41F2BAC3400CCE941 /* TodayViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TodayViewController.h; sourceTree = "<group>"; }; 132 6E8DA0F41F2BAC3400CCE941 /* TodayViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TodayViewController.h; sourceTree = "<group>"; };
132 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TodayViewController.m; sourceTree = "<group>"; }; 133 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TodayViewController.m; sourceTree = "<group>"; };
133 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TodayViewController.xib; sourceTree = "<group>"; }; 134 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TodayViewController.xib; sourceTree = "<group>"; };
134 6ECC406F1F2A5FEB00AAEB97 /* NSDate+helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDate+helper.h"; sourceTree = "<group>"; }; 135 6ECC406F1F2A5FEB00AAEB97 /* NSDate+helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDate+helper.h"; sourceTree = "<group>"; };
135 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDate+helper.m"; sourceTree = "<group>"; }; 136 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDate+helper.m"; sourceTree = "<group>"; };
136 6EDC8BEC1F2C2FB800765ACC /* Utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Utilities.h; sourceTree = "<group>"; }; 137 6EDC8BEC1F2C2FB800765ACC /* Utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Utilities.h; sourceTree = "<group>"; };
137 6EDC8BED1F2C2FB800765ACC /* Utilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Utilities.m; sourceTree = "<group>"; }; 138 6EDC8BED1F2C2FB800765ACC /* Utilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Utilities.m; sourceTree = "<group>"; };
138 6EDC8BF21F2C68D700765ACC /* CMMotionActivityExtra.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CMMotionActivityExtra.h; sourceTree = "<group>"; }; 139 6EDC8BF21F2C68D700765ACC /* CMMotionActivityExtra.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CMMotionActivityExtra.h; sourceTree = "<group>"; };
139 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CMMotionActivityExtra.m; sourceTree = "<group>"; }; 140 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CMMotionActivityExtra.m; sourceTree = "<group>"; };
140 6EF163091F29069300DA306C /* Localizable.strings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; path = Localizable.strings; sourceTree = "<group>"; }; 141 6EF163091F29069300DA306C /* Localizable.strings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; path = Localizable.strings; sourceTree = "<group>"; };
141 9CA8AEE71F31BB4600C5FC74 /* ConfirmForgetPassViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfirmForgetPassViewController.h; sourceTree = "<group>"; }; 142 9CA8AEE71F31BB4600C5FC74 /* ConfirmForgetPassViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfirmForgetPassViewController.h; sourceTree = "<group>"; };
142 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ConfirmForgetPassViewController.m; sourceTree = "<group>"; }; 143 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ConfirmForgetPassViewController.m; sourceTree = "<group>"; };
143 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ConfirmForgetPassViewController.xib; sourceTree = "<group>"; }; 144 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ConfirmForgetPassViewController.xib; sourceTree = "<group>"; };
144 9CBDA0F81F2ECE2C0055DED1 /* BaseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseViewController.h; sourceTree = "<group>"; }; 145 9CBDA0F81F2ECE2C0055DED1 /* BaseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseViewController.h; sourceTree = "<group>"; };
145 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BaseViewController.m; sourceTree = "<group>"; }; 146 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BaseViewController.m; sourceTree = "<group>"; };
146 9CBDA0FC1F2F03810055DED1 /* RegisterViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegisterViewController.h; sourceTree = "<group>"; }; 147 9CBDA0FC1F2F03810055DED1 /* RegisterViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegisterViewController.h; sourceTree = "<group>"; };
147 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RegisterViewController.m; sourceTree = "<group>"; }; 148 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RegisterViewController.m; sourceTree = "<group>"; };
148 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RegisterViewController.xib; sourceTree = "<group>"; }; 149 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RegisterViewController.xib; sourceTree = "<group>"; };
149 E9373E451F3596940059355A /* AutoTransLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoTransLabel.h; sourceTree = "<group>"; }; 150 E9373E451F3596940059355A /* AutoTransLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoTransLabel.h; sourceTree = "<group>"; };
150 E9373E461F3596940059355A /* AutoTransLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutoTransLabel.m; sourceTree = "<group>"; }; 151 E9373E461F3596940059355A /* AutoTransLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutoTransLabel.m; sourceTree = "<group>"; };
151 E9373E481F35AA180059355A /* HistoryObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryObject.h; sourceTree = "<group>"; }; 152 E9373E481F35AA180059355A /* HistoryObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryObject.h; sourceTree = "<group>"; };
152 E9373E491F35AA180059355A /* HistoryObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryObject.m; sourceTree = "<group>"; }; 153 E9373E491F35AA180059355A /* HistoryObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryObject.m; sourceTree = "<group>"; };
153 E9373E4B1F361A230059355A /* HistoryGraphObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryGraphObject.h; sourceTree = "<group>"; }; 154 E9373E4B1F361A230059355A /* HistoryGraphObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryGraphObject.h; sourceTree = "<group>"; };
154 E9373E4C1F361A230059355A /* HistoryGraphObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryGraphObject.m; sourceTree = "<group>"; }; 155 E9373E4C1F361A230059355A /* HistoryGraphObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryGraphObject.m; sourceTree = "<group>"; };
155 E9682E2B1F39675A00FE05A2 /* RankingTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RankingTableViewCell.h; sourceTree = "<group>"; }; 156 E9682E2B1F39675A00FE05A2 /* RankingTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RankingTableViewCell.h; sourceTree = "<group>"; };
156 E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RankingTableViewCell.m; sourceTree = "<group>"; }; 157 E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RankingTableViewCell.m; sourceTree = "<group>"; };
157 E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RankingTableViewCell.xib; sourceTree = "<group>"; }; 158 E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RankingTableViewCell.xib; sourceTree = "<group>"; };
158 E96855081F3C444900317CEF /* AutoTransButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoTransButton.h; sourceTree = "<group>"; }; 159 E96855081F3C444900317CEF /* AutoTransButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoTransButton.h; sourceTree = "<group>"; };
159 E96855091F3C444900317CEF /* AutoTransButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutoTransButton.m; sourceTree = "<group>"; }; 160 E96855091F3C444900317CEF /* AutoTransButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutoTransButton.m; sourceTree = "<group>"; };
160 E968550E1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SNSRecentTopicTableViewCell.h; sourceTree = "<group>"; }; 161 E968550E1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SNSRecentTopicTableViewCell.h; sourceTree = "<group>"; };
161 E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SNSRecentTopicTableViewCell.m; sourceTree = "<group>"; }; 162 E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SNSRecentTopicTableViewCell.m; sourceTree = "<group>"; };
162 E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SNSRecentTopicTableViewCell.xib; sourceTree = "<group>"; }; 163 E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SNSRecentTopicTableViewCell.xib; sourceTree = "<group>"; };
163 E997E0251F3AB66500709FB1 /* Social.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Social.framework; path = System/Library/Frameworks/Social.framework; sourceTree = SDKROOT; }; 164 E997E0251F3AB66500709FB1 /* Social.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Social.framework; path = System/Library/Frameworks/Social.framework; sourceTree = SDKROOT; };
164 E99E13A91F336F3600C78787 /* CollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CollectionView.h; sourceTree = "<group>"; }; 165 E99E13A91F336F3600C78787 /* CollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CollectionView.h; sourceTree = "<group>"; };
165 E99E13AA1F336F3600C78787 /* CollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CollectionView.m; sourceTree = "<group>"; }; 166 E99E13AA1F336F3600C78787 /* CollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CollectionView.m; sourceTree = "<group>"; };
166 E99E13AC1F336F4500C78787 /* CollectionView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CollectionView.xib; sourceTree = "<group>"; }; 167 E99E13AC1F336F4500C78787 /* CollectionView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CollectionView.xib; sourceTree = "<group>"; };
167 E99E13AE1F33720600C78787 /* LabelCollectionViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LabelCollectionViewCell.h; sourceTree = "<group>"; }; 168 E99E13AE1F33720600C78787 /* LabelCollectionViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LabelCollectionViewCell.h; sourceTree = "<group>"; };
168 E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LabelCollectionViewCell.m; sourceTree = "<group>"; }; 169 E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LabelCollectionViewCell.m; sourceTree = "<group>"; };
169 E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LabelCollectionViewCell.xib; sourceTree = "<group>"; }; 170 E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LabelCollectionViewCell.xib; sourceTree = "<group>"; };
171 E9D9091F1F3D559D004CF99F /* TweetObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TweetObject.h; sourceTree = "<group>"; };
172 E9D909201F3D559D004CF99F /* TweetObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TweetObject.m; sourceTree = "<group>"; };
170 E9F73DC91F338A0F004A3A6F /* HistoryListTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryListTableViewCell.h; sourceTree = "<group>"; }; 173 E9F73DC91F338A0F004A3A6F /* HistoryListTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryListTableViewCell.h; sourceTree = "<group>"; };
171 E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryListTableViewCell.m; sourceTree = "<group>"; }; 174 E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryListTableViewCell.m; sourceTree = "<group>"; };
172 E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HistoryListTableViewCell.xib; sourceTree = "<group>"; }; 175 E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HistoryListTableViewCell.xib; sourceTree = "<group>"; };
173 /* End PBXFileReference section */ 176 /* End PBXFileReference section */
174 177
175 /* Begin PBXFrameworksBuildPhase section */ 178 /* Begin PBXFrameworksBuildPhase section */
176 6E84E36E1F27A700001EB88E /* Frameworks */ = { 179 6E84E36E1F27A700001EB88E /* Frameworks */ = {
177 isa = PBXFrameworksBuildPhase; 180 isa = PBXFrameworksBuildPhase;
178 buildActionMask = 2147483647; 181 buildActionMask = 2147483647;
179 files = ( 182 files = (
180 E997E0261F3AB66500709FB1 /* Social.framework in Frameworks */, 183 E997E0261F3AB66500709FB1 /* Social.framework in Frameworks */,
181 011799F0F2B47D80472673CE /* Pods_LifeLog.framework in Frameworks */, 184 011799F0F2B47D80472673CE /* Pods_LifeLog.framework in Frameworks */,
182 ); 185 );
183 runOnlyForDeploymentPostprocessing = 0; 186 runOnlyForDeploymentPostprocessing = 0;
184 }; 187 };
185 6E84E3871F27A703001EB88E /* Frameworks */ = { 188 6E84E3871F27A703001EB88E /* Frameworks */ = {
186 isa = PBXFrameworksBuildPhase; 189 isa = PBXFrameworksBuildPhase;
187 buildActionMask = 2147483647; 190 buildActionMask = 2147483647;
188 files = ( 191 files = (
189 ); 192 );
190 runOnlyForDeploymentPostprocessing = 0; 193 runOnlyForDeploymentPostprocessing = 0;
191 }; 194 };
192 6E84E3921F27A703001EB88E /* Frameworks */ = { 195 6E84E3921F27A703001EB88E /* Frameworks */ = {
193 isa = PBXFrameworksBuildPhase; 196 isa = PBXFrameworksBuildPhase;
194 buildActionMask = 2147483647; 197 buildActionMask = 2147483647;
195 files = ( 198 files = (
196 ); 199 );
197 runOnlyForDeploymentPostprocessing = 0; 200 runOnlyForDeploymentPostprocessing = 0;
198 }; 201 };
199 /* End PBXFrameworksBuildPhase section */ 202 /* End PBXFrameworksBuildPhase section */
200 203
201 /* Begin PBXGroup section */ 204 /* Begin PBXGroup section */
202 020C1721B642EF36F31E1BB4 /* Frameworks */ = { 205 020C1721B642EF36F31E1BB4 /* Frameworks */ = {
203 isa = PBXGroup; 206 isa = PBXGroup;
204 children = ( 207 children = (
205 E997E0251F3AB66500709FB1 /* Social.framework */, 208 E997E0251F3AB66500709FB1 /* Social.framework */,
206 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */, 209 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */,
207 ); 210 );
208 name = Frameworks; 211 name = Frameworks;
209 sourceTree = "<group>"; 212 sourceTree = "<group>";
210 }; 213 };
211 6E18CECF1F2E398C0029891F /* Login */ = { 214 6E18CECF1F2E398C0029891F /* Login */ = {
212 isa = PBXGroup; 215 isa = PBXGroup;
213 children = ( 216 children = (
214 9CA8AEE61F31BB1200C5FC74 /* ConfirmForgetPass */, 217 9CA8AEE61F31BB1200C5FC74 /* ConfirmForgetPass */,
215 6E18CED01F2E39DB0029891F /* LoginViewController.h */, 218 6E18CED01F2E39DB0029891F /* LoginViewController.h */,
216 6E18CED11F2E39DB0029891F /* LoginViewController.m */, 219 6E18CED11F2E39DB0029891F /* LoginViewController.m */,
217 6E18CED21F2E39DB0029891F /* LoginViewController.xib */, 220 6E18CED21F2E39DB0029891F /* LoginViewController.xib */,
218 ); 221 );
219 name = Login; 222 name = Login;
220 sourceTree = "<group>"; 223 sourceTree = "<group>";
221 }; 224 };
222 6E18CED51F2E3C0E0029891F /* ServerAPI */ = { 225 6E18CED51F2E3C0E0029891F /* ServerAPI */ = {
223 isa = PBXGroup; 226 isa = PBXGroup;
224 children = ( 227 children = (
225 6E18CED61F2E3C840029891F /* ServerAPI.h */, 228 6E18CED61F2E3C840029891F /* ServerAPI.h */,
226 6E18CED71F2E3C840029891F /* ServerAPI.m */, 229 6E18CED71F2E3C840029891F /* ServerAPI.m */,
227 ); 230 );
228 name = ServerAPI; 231 name = ServerAPI;
229 sourceTree = "<group>"; 232 sourceTree = "<group>";
230 }; 233 };
231 6E18CED91F2E40AE0029891F /* Model */ = { 234 6E18CED91F2E40AE0029891F /* Model */ = {
232 isa = PBXGroup; 235 isa = PBXGroup;
233 children = ( 236 children = (
234 6E18CEDA1F2E40F50029891F /* User.h */, 237 6E18CEDA1F2E40F50029891F /* User.h */,
235 6E18CEDB1F2E40F50029891F /* User.m */, 238 6E18CEDB1F2E40F50029891F /* User.m */,
236 6E18CEDD1F2E46570029891F /* Entities.h */, 239 6E18CEDD1F2E46570029891F /* Entities.h */,
237 E9373E481F35AA180059355A /* HistoryObject.h */, 240 E9373E481F35AA180059355A /* HistoryObject.h */,
238 E9373E491F35AA180059355A /* HistoryObject.m */, 241 E9373E491F35AA180059355A /* HistoryObject.m */,
239 E9373E4B1F361A230059355A /* HistoryGraphObject.h */, 242 E9373E4B1F361A230059355A /* HistoryGraphObject.h */,
240 E9373E4C1F361A230059355A /* HistoryGraphObject.m */, 243 E9373E4C1F361A230059355A /* HistoryGraphObject.m */,
244 E9D9091F1F3D559D004CF99F /* TweetObject.h */,
245 E9D909201F3D559D004CF99F /* TweetObject.m */,
241 ); 246 );
242 name = Model; 247 name = Model;
243 sourceTree = "<group>"; 248 sourceTree = "<group>";
244 }; 249 };
245 6E7F93391F35870F00EFBC71 /* TPKeyboardAvoiding */ = { 250 6E7F93391F35870F00EFBC71 /* TPKeyboardAvoiding */ = {
246 isa = PBXGroup; 251 isa = PBXGroup;
247 children = ( 252 children = (
248 6E7F933A1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.h */, 253 6E7F933A1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.h */,
249 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */, 254 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */,
250 6E7F933C1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.h */, 255 6E7F933C1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.h */,
251 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */, 256 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */,
252 6E7F933E1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.h */, 257 6E7F933E1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.h */,
253 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */, 258 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */,
254 6E7F93401F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.h */, 259 6E7F93401F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.h */,
255 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */, 260 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */,
256 ); 261 );
257 name = TPKeyboardAvoiding; 262 name = TPKeyboardAvoiding;
258 sourceTree = "<group>"; 263 sourceTree = "<group>";
259 }; 264 };
260 6E84E3681F27A700001EB88E = { 265 6E84E3681F27A700001EB88E = {
261 isa = PBXGroup; 266 isa = PBXGroup;
262 children = ( 267 children = (
263 6E84E3731F27A700001EB88E /* LifeLog */, 268 6E84E3731F27A700001EB88E /* LifeLog */,
264 6E84E38D1F27A703001EB88E /* LifeLogTests */, 269 6E84E38D1F27A703001EB88E /* LifeLogTests */,
265 6E84E3981F27A703001EB88E /* LifeLogUITests */, 270 6E84E3981F27A703001EB88E /* LifeLogUITests */,
266 6E84E3721F27A700001EB88E /* Products */, 271 6E84E3721F27A700001EB88E /* Products */,
267 DE8269E957EA47CD771BAB33 /* Pods */, 272 DE8269E957EA47CD771BAB33 /* Pods */,
268 020C1721B642EF36F31E1BB4 /* Frameworks */, 273 020C1721B642EF36F31E1BB4 /* Frameworks */,
269 ); 274 );
270 sourceTree = "<group>"; 275 sourceTree = "<group>";
271 }; 276 };
272 6E84E3721F27A700001EB88E /* Products */ = { 277 6E84E3721F27A700001EB88E /* Products */ = {
273 isa = PBXGroup; 278 isa = PBXGroup;
274 children = ( 279 children = (
275 6E84E3711F27A700001EB88E /* LifeLog.app */, 280 6E84E3711F27A700001EB88E /* LifeLog.app */,
276 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */, 281 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */,
277 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */, 282 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */,
278 ); 283 );
279 name = Products; 284 name = Products;
280 sourceTree = "<group>"; 285 sourceTree = "<group>";
281 }; 286 };
282 6E84E3731F27A700001EB88E /* LifeLog */ = { 287 6E84E3731F27A700001EB88E /* LifeLog */ = {
283 isa = PBXGroup; 288 isa = PBXGroup;
284 children = ( 289 children = (
285 6E18CED91F2E40AE0029891F /* Model */, 290 6E18CED91F2E40AE0029891F /* Model */,
286 6E18CED51F2E3C0E0029891F /* ServerAPI */, 291 6E18CED51F2E3C0E0029891F /* ServerAPI */,
287 6EDC8BEB1F2C2F3300765ACC /* Common */, 292 6EDC8BEB1F2C2F3300765ACC /* Common */,
288 6ECC406D1F2A5FA500AAEB97 /* Library */, 293 6ECC406D1F2A5FA500AAEB97 /* Library */,
289 E99E13A71F336F0C00C78787 /* CustomView */, 294 E99E13A71F336F0C00C78787 /* CustomView */,
290 6E84E3A81F27A8A9001EB88E /* ViewControllers */, 295 6E84E3A81F27A8A9001EB88E /* ViewControllers */,
291 6E84E3A71F27A887001EB88E /* AppDelegate */, 296 6E84E3A71F27A887001EB88E /* AppDelegate */,
292 6E84E3801F27A701001EB88E /* Assets.xcassets */, 297 6E84E3801F27A701001EB88E /* Assets.xcassets */,
293 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */, 298 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */,
294 6E84E3851F27A701001EB88E /* Info.plist */, 299 6E84E3851F27A701001EB88E /* Info.plist */,
295 6E84E3741F27A701001EB88E /* Supporting Files */, 300 6E84E3741F27A701001EB88E /* Supporting Files */,
296 ); 301 );
297 path = LifeLog; 302 path = LifeLog;
298 sourceTree = "<group>"; 303 sourceTree = "<group>";
299 }; 304 };
300 6E84E3741F27A701001EB88E /* Supporting Files */ = { 305 6E84E3741F27A701001EB88E /* Supporting Files */ = {
301 isa = PBXGroup; 306 isa = PBXGroup;
302 children = ( 307 children = (
303 6E84E3751F27A701001EB88E /* main.m */, 308 6E84E3751F27A701001EB88E /* main.m */,
304 6EF163091F29069300DA306C /* Localizable.strings */, 309 6EF163091F29069300DA306C /* Localizable.strings */,
305 ); 310 );
306 name = "Supporting Files"; 311 name = "Supporting Files";
307 sourceTree = "<group>"; 312 sourceTree = "<group>";
308 }; 313 };
309 6E84E38D1F27A703001EB88E /* LifeLogTests */ = { 314 6E84E38D1F27A703001EB88E /* LifeLogTests */ = {
310 isa = PBXGroup; 315 isa = PBXGroup;
311 children = ( 316 children = (
312 6E84E38E1F27A703001EB88E /* LifeLogTests.m */, 317 6E84E38E1F27A703001EB88E /* LifeLogTests.m */,
313 6E84E3901F27A703001EB88E /* Info.plist */, 318 6E84E3901F27A703001EB88E /* Info.plist */,
314 ); 319 );
315 path = LifeLogTests; 320 path = LifeLogTests;
316 sourceTree = "<group>"; 321 sourceTree = "<group>";
317 }; 322 };
318 6E84E3981F27A703001EB88E /* LifeLogUITests */ = { 323 6E84E3981F27A703001EB88E /* LifeLogUITests */ = {
319 isa = PBXGroup; 324 isa = PBXGroup;
320 children = ( 325 children = (
321 6E84E3991F27A703001EB88E /* LifeLogUITests.m */, 326 6E84E3991F27A703001EB88E /* LifeLogUITests.m */,
322 6E84E39B1F27A703001EB88E /* Info.plist */, 327 6E84E39B1F27A703001EB88E /* Info.plist */,
323 ); 328 );
324 path = LifeLogUITests; 329 path = LifeLogUITests;
325 sourceTree = "<group>"; 330 sourceTree = "<group>";
326 }; 331 };
327 6E84E3A71F27A887001EB88E /* AppDelegate */ = { 332 6E84E3A71F27A887001EB88E /* AppDelegate */ = {
328 isa = PBXGroup; 333 isa = PBXGroup;
329 children = ( 334 children = (
330 6E84E3771F27A701001EB88E /* AppDelegate.h */, 335 6E84E3771F27A701001EB88E /* AppDelegate.h */,
331 6E84E3781F27A701001EB88E /* AppDelegate.m */, 336 6E84E3781F27A701001EB88E /* AppDelegate.m */,
332 ); 337 );
333 name = AppDelegate; 338 name = AppDelegate;
334 sourceTree = "<group>"; 339 sourceTree = "<group>";
335 }; 340 };
336 6E84E3A81F27A8A9001EB88E /* ViewControllers */ = { 341 6E84E3A81F27A8A9001EB88E /* ViewControllers */ = {
337 isa = PBXGroup; 342 isa = PBXGroup;
338 children = ( 343 children = (
339 9CBDA0F71F2ECDFD0055DED1 /* BaseViewController */, 344 9CBDA0F71F2ECDFD0055DED1 /* BaseViewController */,
340 9CBDA0FB1F2F03490055DED1 /* Register */, 345 9CBDA0FB1F2F03490055DED1 /* Register */,
341 6E18CECF1F2E398C0029891F /* Login */, 346 6E18CECF1F2E398C0029891F /* Login */,
342 6E84E3AC1F27A954001EB88E /* SNS */, 347 6E84E3AC1F27A954001EB88E /* SNS */,
343 6E84E3C11F27AC89001EB88E /* Map */, 348 6E84E3C11F27AC89001EB88E /* Map */,
344 6E84E3AB1F27A946001EB88E /* Ranking */, 349 6E84E3AB1F27A946001EB88E /* Ranking */,
345 6E84E3AA1F27A924001EB88E /* History */, 350 6E84E3AA1F27A924001EB88E /* History */,
346 6E84E3A91F27A915001EB88E /* Home */, 351 6E84E3A91F27A915001EB88E /* Home */,
347 ); 352 );
348 name = ViewControllers; 353 name = ViewControllers;
349 sourceTree = "<group>"; 354 sourceTree = "<group>";
350 }; 355 };
351 6E84E3A91F27A915001EB88E /* Home */ = { 356 6E84E3A91F27A915001EB88E /* Home */ = {
352 isa = PBXGroup; 357 isa = PBXGroup;
353 children = ( 358 children = (
354 6E8DA0F31F2BAC0800CCE941 /* Today */, 359 6E8DA0F31F2BAC0800CCE941 /* Today */,
355 6E84E3AD1F27A975001EB88E /* HomeViewController.h */, 360 6E84E3AD1F27A975001EB88E /* HomeViewController.h */,
356 6E84E3AE1F27A975001EB88E /* HomeViewController.m */, 361 6E84E3AE1F27A975001EB88E /* HomeViewController.m */,
357 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */, 362 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */,
358 ); 363 );
359 name = Home; 364 name = Home;
360 sourceTree = "<group>"; 365 sourceTree = "<group>";
361 }; 366 };
362 6E84E3AA1F27A924001EB88E /* History */ = { 367 6E84E3AA1F27A924001EB88E /* History */ = {
363 isa = PBXGroup; 368 isa = PBXGroup;
364 children = ( 369 children = (
365 6E84E3B21F27A98B001EB88E /* HistoryViewController.h */, 370 6E84E3B21F27A98B001EB88E /* HistoryViewController.h */,
366 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */, 371 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */,
367 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */, 372 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */,
368 E9F73DC91F338A0F004A3A6F /* HistoryListTableViewCell.h */, 373 E9F73DC91F338A0F004A3A6F /* HistoryListTableViewCell.h */,
369 E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */, 374 E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */,
370 E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */, 375 E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */,
371 ); 376 );
372 name = History; 377 name = History;
373 sourceTree = "<group>"; 378 sourceTree = "<group>";
374 }; 379 };
375 6E84E3AB1F27A946001EB88E /* Ranking */ = { 380 6E84E3AB1F27A946001EB88E /* Ranking */ = {
376 isa = PBXGroup; 381 isa = PBXGroup;
377 children = ( 382 children = (
378 6E84E3B71F27A9A0001EB88E /* RankingViewController.h */, 383 6E84E3B71F27A9A0001EB88E /* RankingViewController.h */,
379 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */, 384 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */,
380 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */, 385 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */,
381 E9682E2B1F39675A00FE05A2 /* RankingTableViewCell.h */, 386 E9682E2B1F39675A00FE05A2 /* RankingTableViewCell.h */,
382 E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */, 387 E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */,
383 E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */, 388 E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */,
384 ); 389 );
385 name = Ranking; 390 name = Ranking;
386 sourceTree = "<group>"; 391 sourceTree = "<group>";
387 }; 392 };
388 6E84E3AC1F27A954001EB88E /* SNS */ = { 393 6E84E3AC1F27A954001EB88E /* SNS */ = {
389 isa = PBXGroup; 394 isa = PBXGroup;
390 children = ( 395 children = (
391 6E84E3BC1F27A9B1001EB88E /* SNSViewController.h */, 396 6E84E3BC1F27A9B1001EB88E /* SNSViewController.h */,
392 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */, 397 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */,
393 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */, 398 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */,
394 E968550E1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.h */, 399 E968550E1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.h */,
395 E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */, 400 E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */,
396 E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */, 401 E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */,
397 ); 402 );
398 name = SNS; 403 name = SNS;
399 sourceTree = "<group>"; 404 sourceTree = "<group>";
400 }; 405 };
401 6E84E3C11F27AC89001EB88E /* Map */ = { 406 6E84E3C11F27AC89001EB88E /* Map */ = {
402 isa = PBXGroup; 407 isa = PBXGroup;
403 children = ( 408 children = (
404 6E84E3C21F27ACAE001EB88E /* MapViewController.h */, 409 6E84E3C21F27ACAE001EB88E /* MapViewController.h */,
405 6E84E3C31F27ACAE001EB88E /* MapViewController.m */, 410 6E84E3C31F27ACAE001EB88E /* MapViewController.m */,
406 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */, 411 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */,
407 ); 412 );
408 name = Map; 413 name = Map;
409 sourceTree = "<group>"; 414 sourceTree = "<group>";
410 }; 415 };
411 6E8DA0F31F2BAC0800CCE941 /* Today */ = { 416 6E8DA0F31F2BAC0800CCE941 /* Today */ = {
412 isa = PBXGroup; 417 isa = PBXGroup;
413 children = ( 418 children = (
414 6E8DA0F41F2BAC3400CCE941 /* TodayViewController.h */, 419 6E8DA0F41F2BAC3400CCE941 /* TodayViewController.h */,
415 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */, 420 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */,
416 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */, 421 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */,
417 ); 422 );
418 name = Today; 423 name = Today;
419 sourceTree = "<group>"; 424 sourceTree = "<group>";
420 }; 425 };
421 6ECC406D1F2A5FA500AAEB97 /* Library */ = { 426 6ECC406D1F2A5FA500AAEB97 /* Library */ = {
422 isa = PBXGroup; 427 isa = PBXGroup;
423 children = ( 428 children = (
424 6E7F93391F35870F00EFBC71 /* TPKeyboardAvoiding */, 429 6E7F93391F35870F00EFBC71 /* TPKeyboardAvoiding */,
425 6ECC406E1F2A5FB200AAEB97 /* Category */, 430 6ECC406E1F2A5FB200AAEB97 /* Category */,
426 ); 431 );
427 name = Library; 432 name = Library;
428 sourceTree = "<group>"; 433 sourceTree = "<group>";
429 }; 434 };
430 6ECC406E1F2A5FB200AAEB97 /* Category */ = { 435 6ECC406E1F2A5FB200AAEB97 /* Category */ = {
431 isa = PBXGroup; 436 isa = PBXGroup;
432 children = ( 437 children = (
433 6ECC406F1F2A5FEB00AAEB97 /* NSDate+helper.h */, 438 6ECC406F1F2A5FEB00AAEB97 /* NSDate+helper.h */,
434 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */, 439 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */,
435 ); 440 );
436 name = Category; 441 name = Category;
437 sourceTree = "<group>"; 442 sourceTree = "<group>";
438 }; 443 };
439 6EDC8BEB1F2C2F3300765ACC /* Common */ = { 444 6EDC8BEB1F2C2F3300765ACC /* Common */ = {
440 isa = PBXGroup; 445 isa = PBXGroup;
441 children = ( 446 children = (
442 6EDC8BEC1F2C2FB800765ACC /* Utilities.h */, 447 6EDC8BEC1F2C2FB800765ACC /* Utilities.h */,
443 6EDC8BED1F2C2FB800765ACC /* Utilities.m */, 448 6EDC8BED1F2C2FB800765ACC /* Utilities.m */,
444 6EDC8BF21F2C68D700765ACC /* CMMotionActivityExtra.h */, 449 6EDC8BF21F2C68D700765ACC /* CMMotionActivityExtra.h */,
445 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */, 450 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */,
446 ); 451 );
447 name = Common; 452 name = Common;
448 sourceTree = "<group>"; 453 sourceTree = "<group>";
449 }; 454 };
450 9CA8AEE61F31BB1200C5FC74 /* ConfirmForgetPass */ = { 455 9CA8AEE61F31BB1200C5FC74 /* ConfirmForgetPass */ = {
451 isa = PBXGroup; 456 isa = PBXGroup;
452 children = ( 457 children = (
453 9CA8AEE71F31BB4600C5FC74 /* ConfirmForgetPassViewController.h */, 458 9CA8AEE71F31BB4600C5FC74 /* ConfirmForgetPassViewController.h */,
454 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */, 459 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */,
455 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */, 460 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */,
456 ); 461 );
457 name = ConfirmForgetPass; 462 name = ConfirmForgetPass;
458 sourceTree = "<group>"; 463 sourceTree = "<group>";
459 }; 464 };
460 9CBDA0F71F2ECDFD0055DED1 /* BaseViewController */ = { 465 9CBDA0F71F2ECDFD0055DED1 /* BaseViewController */ = {
461 isa = PBXGroup; 466 isa = PBXGroup;
462 children = ( 467 children = (
463 9CBDA0F81F2ECE2C0055DED1 /* BaseViewController.h */, 468 9CBDA0F81F2ECE2C0055DED1 /* BaseViewController.h */,
464 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */, 469 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */,
465 6E48AF0B1F2F9D3200C1D184 /* CustomTextField.h */, 470 6E48AF0B1F2F9D3200C1D184 /* CustomTextField.h */,
466 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */, 471 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */,
467 ); 472 );
468 name = BaseViewController; 473 name = BaseViewController;
469 sourceTree = "<group>"; 474 sourceTree = "<group>";
470 }; 475 };
471 9CBDA0FB1F2F03490055DED1 /* Register */ = { 476 9CBDA0FB1F2F03490055DED1 /* Register */ = {
472 isa = PBXGroup; 477 isa = PBXGroup;
473 children = ( 478 children = (
474 9CBDA0FC1F2F03810055DED1 /* RegisterViewController.h */, 479 9CBDA0FC1F2F03810055DED1 /* RegisterViewController.h */,
475 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */, 480 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */,
476 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */, 481 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */,
477 ); 482 );
478 name = Register; 483 name = Register;
479 sourceTree = "<group>"; 484 sourceTree = "<group>";
480 }; 485 };
481 DE8269E957EA47CD771BAB33 /* Pods */ = { 486 DE8269E957EA47CD771BAB33 /* Pods */ = {
482 isa = PBXGroup; 487 isa = PBXGroup;
483 children = ( 488 children = (
484 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */, 489 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */,
485 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */, 490 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */,
486 ); 491 );
487 name = Pods; 492 name = Pods;
488 sourceTree = "<group>"; 493 sourceTree = "<group>";
489 }; 494 };
490 E9373E441F35966D0059355A /* AutoTranslateView */ = { 495 E9373E441F35966D0059355A /* AutoTranslateView */ = {
491 isa = PBXGroup; 496 isa = PBXGroup;
492 children = ( 497 children = (
493 E9373E451F3596940059355A /* AutoTransLabel.h */, 498 E9373E451F3596940059355A /* AutoTransLabel.h */,
494 E9373E461F3596940059355A /* AutoTransLabel.m */, 499 E9373E461F3596940059355A /* AutoTransLabel.m */,
495 E96855081F3C444900317CEF /* AutoTransButton.h */, 500 E96855081F3C444900317CEF /* AutoTransButton.h */,
496 E96855091F3C444900317CEF /* AutoTransButton.m */, 501 E96855091F3C444900317CEF /* AutoTransButton.m */,
497 ); 502 );
498 name = AutoTranslateView; 503 name = AutoTranslateView;
499 sourceTree = "<group>"; 504 sourceTree = "<group>";
500 }; 505 };
501 E99E13A71F336F0C00C78787 /* CustomView */ = { 506 E99E13A71F336F0C00C78787 /* CustomView */ = {
502 isa = PBXGroup; 507 isa = PBXGroup;
503 children = ( 508 children = (
504 E9373E441F35966D0059355A /* AutoTranslateView */, 509 E9373E441F35966D0059355A /* AutoTranslateView */,
505 E99E13A81F336F1700C78787 /* CollectionView */, 510 E99E13A81F336F1700C78787 /* CollectionView */,
506 ); 511 );
507 name = CustomView; 512 name = CustomView;
508 sourceTree = "<group>"; 513 sourceTree = "<group>";
509 }; 514 };
510 E99E13A81F336F1700C78787 /* CollectionView */ = { 515 E99E13A81F336F1700C78787 /* CollectionView */ = {
511 isa = PBXGroup; 516 isa = PBXGroup;
512 children = ( 517 children = (
513 E99E13AE1F33720600C78787 /* LabelCollectionViewCell.h */, 518 E99E13AE1F33720600C78787 /* LabelCollectionViewCell.h */,
514 E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */, 519 E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */,
515 E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */, 520 E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */,
516 E99E13A91F336F3600C78787 /* CollectionView.h */, 521 E99E13A91F336F3600C78787 /* CollectionView.h */,
517 E99E13AA1F336F3600C78787 /* CollectionView.m */, 522 E99E13AA1F336F3600C78787 /* CollectionView.m */,
518 E99E13AC1F336F4500C78787 /* CollectionView.xib */, 523 E99E13AC1F336F4500C78787 /* CollectionView.xib */,
519 ); 524 );
520 name = CollectionView; 525 name = CollectionView;
521 sourceTree = "<group>"; 526 sourceTree = "<group>";
522 }; 527 };
523 /* End PBXGroup section */ 528 /* End PBXGroup section */
524 529
525 /* Begin PBXNativeTarget section */ 530 /* Begin PBXNativeTarget section */
526 6E84E3701F27A700001EB88E /* LifeLog */ = { 531 6E84E3701F27A700001EB88E /* LifeLog */ = {
527 isa = PBXNativeTarget; 532 isa = PBXNativeTarget;
528 buildConfigurationList = 6E84E39E1F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLog" */; 533 buildConfigurationList = 6E84E39E1F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLog" */;
529 buildPhases = ( 534 buildPhases = (
530 2BB22CAEC0728AA1E086BCE3 /* [CP] Check Pods Manifest.lock */, 535 2BB22CAEC0728AA1E086BCE3 /* [CP] Check Pods Manifest.lock */,
531 6E84E36D1F27A700001EB88E /* Sources */, 536 6E84E36D1F27A700001EB88E /* Sources */,
532 6E84E36E1F27A700001EB88E /* Frameworks */, 537 6E84E36E1F27A700001EB88E /* Frameworks */,
533 6E84E36F1F27A700001EB88E /* Resources */, 538 6E84E36F1F27A700001EB88E /* Resources */,
534 22F89B11794CEB4E265996AC /* [CP] Embed Pods Frameworks */, 539 22F89B11794CEB4E265996AC /* [CP] Embed Pods Frameworks */,
535 96653BDB2C24A87C2866C897 /* [CP] Copy Pods Resources */, 540 96653BDB2C24A87C2866C897 /* [CP] Copy Pods Resources */,
536 ); 541 );
537 buildRules = ( 542 buildRules = (
538 ); 543 );
539 dependencies = ( 544 dependencies = (
540 ); 545 );
541 name = LifeLog; 546 name = LifeLog;
542 productName = LifeLog; 547 productName = LifeLog;
543 productReference = 6E84E3711F27A700001EB88E /* LifeLog.app */; 548 productReference = 6E84E3711F27A700001EB88E /* LifeLog.app */;
544 productType = "com.apple.product-type.application"; 549 productType = "com.apple.product-type.application";
545 }; 550 };
546 6E84E3891F27A703001EB88E /* LifeLogTests */ = { 551 6E84E3891F27A703001EB88E /* LifeLogTests */ = {
547 isa = PBXNativeTarget; 552 isa = PBXNativeTarget;
548 buildConfigurationList = 6E84E3A11F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogTests" */; 553 buildConfigurationList = 6E84E3A11F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogTests" */;
549 buildPhases = ( 554 buildPhases = (
550 6E84E3861F27A703001EB88E /* Sources */, 555 6E84E3861F27A703001EB88E /* Sources */,
551 6E84E3871F27A703001EB88E /* Frameworks */, 556 6E84E3871F27A703001EB88E /* Frameworks */,
552 6E84E3881F27A703001EB88E /* Resources */, 557 6E84E3881F27A703001EB88E /* Resources */,
553 ); 558 );
554 buildRules = ( 559 buildRules = (
555 ); 560 );
556 dependencies = ( 561 dependencies = (
557 6E84E38C1F27A703001EB88E /* PBXTargetDependency */, 562 6E84E38C1F27A703001EB88E /* PBXTargetDependency */,
558 ); 563 );
559 name = LifeLogTests; 564 name = LifeLogTests;
560 productName = LifeLogTests; 565 productName = LifeLogTests;
561 productReference = 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */; 566 productReference = 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */;
562 productType = "com.apple.product-type.bundle.unit-test"; 567 productType = "com.apple.product-type.bundle.unit-test";
563 }; 568 };
564 6E84E3941F27A703001EB88E /* LifeLogUITests */ = { 569 6E84E3941F27A703001EB88E /* LifeLogUITests */ = {
565 isa = PBXNativeTarget; 570 isa = PBXNativeTarget;
566 buildConfigurationList = 6E84E3A41F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogUITests" */; 571 buildConfigurationList = 6E84E3A41F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogUITests" */;
567 buildPhases = ( 572 buildPhases = (
568 6E84E3911F27A703001EB88E /* Sources */, 573 6E84E3911F27A703001EB88E /* Sources */,
569 6E84E3921F27A703001EB88E /* Frameworks */, 574 6E84E3921F27A703001EB88E /* Frameworks */,
570 6E84E3931F27A703001EB88E /* Resources */, 575 6E84E3931F27A703001EB88E /* Resources */,
571 ); 576 );
572 buildRules = ( 577 buildRules = (
573 ); 578 );
574 dependencies = ( 579 dependencies = (
575 6E84E3971F27A703001EB88E /* PBXTargetDependency */, 580 6E84E3971F27A703001EB88E /* PBXTargetDependency */,
576 ); 581 );
577 name = LifeLogUITests; 582 name = LifeLogUITests;
578 productName = LifeLogUITests; 583 productName = LifeLogUITests;
579 productReference = 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */; 584 productReference = 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */;
580 productType = "com.apple.product-type.bundle.ui-testing"; 585 productType = "com.apple.product-type.bundle.ui-testing";
581 }; 586 };
582 /* End PBXNativeTarget section */ 587 /* End PBXNativeTarget section */
583 588
584 /* Begin PBXProject section */ 589 /* Begin PBXProject section */
585 6E84E3691F27A700001EB88E /* Project object */ = { 590 6E84E3691F27A700001EB88E /* Project object */ = {
586 isa = PBXProject; 591 isa = PBXProject;
587 attributes = { 592 attributes = {
588 LastUpgradeCheck = 0830; 593 LastUpgradeCheck = 0830;
589 ORGANIZATIONNAME = PhongNV; 594 ORGANIZATIONNAME = PhongNV;
590 TargetAttributes = { 595 TargetAttributes = {
591 6E84E3701F27A700001EB88E = { 596 6E84E3701F27A700001EB88E = {
592 CreatedOnToolsVersion = 8.3.3; 597 CreatedOnToolsVersion = 8.3.3;
593 DevelopmentTeam = UXU4V3VUN4; 598 DevelopmentTeam = UXU4V3VUN4;
594 ProvisioningStyle = Automatic; 599 ProvisioningStyle = Automatic;
595 }; 600 };
596 6E84E3891F27A703001EB88E = { 601 6E84E3891F27A703001EB88E = {
597 CreatedOnToolsVersion = 8.3.3; 602 CreatedOnToolsVersion = 8.3.3;
598 ProvisioningStyle = Automatic; 603 ProvisioningStyle = Automatic;
599 TestTargetID = 6E84E3701F27A700001EB88E; 604 TestTargetID = 6E84E3701F27A700001EB88E;
600 }; 605 };
601 6E84E3941F27A703001EB88E = { 606 6E84E3941F27A703001EB88E = {
602 CreatedOnToolsVersion = 8.3.3; 607 CreatedOnToolsVersion = 8.3.3;
603 ProvisioningStyle = Automatic; 608 ProvisioningStyle = Automatic;
604 TestTargetID = 6E84E3701F27A700001EB88E; 609 TestTargetID = 6E84E3701F27A700001EB88E;
605 }; 610 };
606 }; 611 };
607 }; 612 };
608 buildConfigurationList = 6E84E36C1F27A700001EB88E /* Build configuration list for PBXProject "LifeLog" */; 613 buildConfigurationList = 6E84E36C1F27A700001EB88E /* Build configuration list for PBXProject "LifeLog" */;
609 compatibilityVersion = "Xcode 3.2"; 614 compatibilityVersion = "Xcode 3.2";
610 developmentRegion = English; 615 developmentRegion = English;
611 hasScannedForEncodings = 0; 616 hasScannedForEncodings = 0;
612 knownRegions = ( 617 knownRegions = (
613 en, 618 en,
614 Base, 619 Base,
615 ); 620 );
616 mainGroup = 6E84E3681F27A700001EB88E; 621 mainGroup = 6E84E3681F27A700001EB88E;
617 productRefGroup = 6E84E3721F27A700001EB88E /* Products */; 622 productRefGroup = 6E84E3721F27A700001EB88E /* Products */;
618 projectDirPath = ""; 623 projectDirPath = "";
619 projectRoot = ""; 624 projectRoot = "";
620 targets = ( 625 targets = (
621 6E84E3701F27A700001EB88E /* LifeLog */, 626 6E84E3701F27A700001EB88E /* LifeLog */,
622 6E84E3891F27A703001EB88E /* LifeLogTests */, 627 6E84E3891F27A703001EB88E /* LifeLogTests */,
623 6E84E3941F27A703001EB88E /* LifeLogUITests */, 628 6E84E3941F27A703001EB88E /* LifeLogUITests */,
624 ); 629 );
625 }; 630 };
626 /* End PBXProject section */ 631 /* End PBXProject section */
627 632
628 /* Begin PBXResourcesBuildPhase section */ 633 /* Begin PBXResourcesBuildPhase section */
629 6E84E36F1F27A700001EB88E /* Resources */ = { 634 6E84E36F1F27A700001EB88E /* Resources */ = {
630 isa = PBXResourcesBuildPhase; 635 isa = PBXResourcesBuildPhase;
631 buildActionMask = 2147483647; 636 buildActionMask = 2147483647;
632 files = ( 637 files = (
633 9CBDA1001F2F03810055DED1 /* RegisterViewController.xib in Resources */, 638 9CBDA1001F2F03810055DED1 /* RegisterViewController.xib in Resources */,
634 6E18CED41F2E39DB0029891F /* LoginViewController.xib in Resources */, 639 6E18CED41F2E39DB0029891F /* LoginViewController.xib in Resources */,
635 E99E13AD1F336F4500C78787 /* CollectionView.xib in Resources */, 640 E99E13AD1F336F4500C78787 /* CollectionView.xib in Resources */,
636 6E84E3BB1F27A9A0001EB88E /* RankingViewController.xib in Resources */, 641 6E84E3BB1F27A9A0001EB88E /* RankingViewController.xib in Resources */,
637 9CA8AEEB1F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib in Resources */, 642 9CA8AEEB1F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib in Resources */,
638 6E84E3C01F27A9B1001EB88E /* SNSViewController.xib in Resources */, 643 6E84E3C01F27A9B1001EB88E /* SNSViewController.xib in Resources */,
639 E9682E2F1F39675A00FE05A2 /* RankingTableViewCell.xib in Resources */, 644 E9682E2F1F39675A00FE05A2 /* RankingTableViewCell.xib in Resources */,
640 6E8DA0F81F2BAC3500CCE941 /* TodayViewController.xib in Resources */, 645 6E8DA0F81F2BAC3500CCE941 /* TodayViewController.xib in Resources */,
641 6E84E3841F27A701001EB88E /* LaunchScreen.storyboard in Resources */, 646 6E84E3841F27A701001EB88E /* LaunchScreen.storyboard in Resources */,
642 6E84E3811F27A701001EB88E /* Assets.xcassets in Resources */, 647 6E84E3811F27A701001EB88E /* Assets.xcassets in Resources */,
643 6E84E3C61F27ACAE001EB88E /* MapViewController.xib in Resources */, 648 6E84E3C61F27ACAE001EB88E /* MapViewController.xib in Resources */,
644 6EF1630A1F29069300DA306C /* Localizable.strings in Resources */, 649 6EF1630A1F29069300DA306C /* Localizable.strings in Resources */,
645 6E84E3B11F27A975001EB88E /* HomeViewController.xib in Resources */, 650 6E84E3B11F27A975001EB88E /* HomeViewController.xib in Resources */,
646 6E84E3B61F27A98B001EB88E /* HistoryViewController.xib in Resources */, 651 6E84E3B61F27A98B001EB88E /* HistoryViewController.xib in Resources */,
647 E96855121F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib in Resources */, 652 E96855121F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib in Resources */,
648 E99E13B21F33720600C78787 /* LabelCollectionViewCell.xib in Resources */, 653 E99E13B21F33720600C78787 /* LabelCollectionViewCell.xib in Resources */,
649 E9F73DCD1F338A0F004A3A6F /* HistoryListTableViewCell.xib in Resources */, 654 E9F73DCD1F338A0F004A3A6F /* HistoryListTableViewCell.xib in Resources */,
650 ); 655 );
651 runOnlyForDeploymentPostprocessing = 0; 656 runOnlyForDeploymentPostprocessing = 0;
652 }; 657 };
653 6E84E3881F27A703001EB88E /* Resources */ = { 658 6E84E3881F27A703001EB88E /* Resources */ = {
654 isa = PBXResourcesBuildPhase; 659 isa = PBXResourcesBuildPhase;
655 buildActionMask = 2147483647; 660 buildActionMask = 2147483647;
656 files = ( 661 files = (
657 ); 662 );
658 runOnlyForDeploymentPostprocessing = 0; 663 runOnlyForDeploymentPostprocessing = 0;
659 }; 664 };
660 6E84E3931F27A703001EB88E /* Resources */ = { 665 6E84E3931F27A703001EB88E /* Resources */ = {
661 isa = PBXResourcesBuildPhase; 666 isa = PBXResourcesBuildPhase;
662 buildActionMask = 2147483647; 667 buildActionMask = 2147483647;
663 files = ( 668 files = (
664 ); 669 );
665 runOnlyForDeploymentPostprocessing = 0; 670 runOnlyForDeploymentPostprocessing = 0;
666 }; 671 };
667 /* End PBXResourcesBuildPhase section */ 672 /* End PBXResourcesBuildPhase section */
668 673
669 /* Begin PBXShellScriptBuildPhase section */ 674 /* Begin PBXShellScriptBuildPhase section */
670 22F89B11794CEB4E265996AC /* [CP] Embed Pods Frameworks */ = { 675 22F89B11794CEB4E265996AC /* [CP] Embed Pods Frameworks */ = {
671 isa = PBXShellScriptBuildPhase; 676 isa = PBXShellScriptBuildPhase;
672 buildActionMask = 2147483647; 677 buildActionMask = 2147483647;
673 files = ( 678 files = (
674 ); 679 );
675 inputPaths = ( 680 inputPaths = (
676 ); 681 );
677 name = "[CP] Embed Pods Frameworks"; 682 name = "[CP] Embed Pods Frameworks";
678 outputPaths = ( 683 outputPaths = (
679 ); 684 );
680 runOnlyForDeploymentPostprocessing = 0; 685 runOnlyForDeploymentPostprocessing = 0;
681 shellPath = /bin/sh; 686 shellPath = /bin/sh;
682 shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog-frameworks.sh\"\n"; 687 shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog-frameworks.sh\"\n";
683 showEnvVarsInLog = 0; 688 showEnvVarsInLog = 0;
684 }; 689 };
685 2BB22CAEC0728AA1E086BCE3 /* [CP] Check Pods Manifest.lock */ = { 690 2BB22CAEC0728AA1E086BCE3 /* [CP] Check Pods Manifest.lock */ = {
686 isa = PBXShellScriptBuildPhase; 691 isa = PBXShellScriptBuildPhase;
687 buildActionMask = 2147483647; 692 buildActionMask = 2147483647;
688 files = ( 693 files = (
689 ); 694 );
690 inputPaths = ( 695 inputPaths = (
691 ); 696 );
692 name = "[CP] Check Pods Manifest.lock"; 697 name = "[CP] Check Pods Manifest.lock";
693 outputPaths = ( 698 outputPaths = (
694 ); 699 );
695 runOnlyForDeploymentPostprocessing = 0; 700 runOnlyForDeploymentPostprocessing = 0;
696 shellPath = /bin/sh; 701 shellPath = /bin/sh;
697 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"; 702 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";
698 showEnvVarsInLog = 0; 703 showEnvVarsInLog = 0;
699 }; 704 };
700 96653BDB2C24A87C2866C897 /* [CP] Copy Pods Resources */ = { 705 96653BDB2C24A87C2866C897 /* [CP] Copy Pods Resources */ = {
701 isa = PBXShellScriptBuildPhase; 706 isa = PBXShellScriptBuildPhase;
702 buildActionMask = 2147483647; 707 buildActionMask = 2147483647;
703 files = ( 708 files = (
704 ); 709 );
705 inputPaths = ( 710 inputPaths = (
706 ); 711 );
707 name = "[CP] Copy Pods Resources"; 712 name = "[CP] Copy Pods Resources";
708 outputPaths = ( 713 outputPaths = (
709 ); 714 );
710 runOnlyForDeploymentPostprocessing = 0; 715 runOnlyForDeploymentPostprocessing = 0;
711 shellPath = /bin/sh; 716 shellPath = /bin/sh;
712 shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog-resources.sh\"\n"; 717 shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog-resources.sh\"\n";
713 showEnvVarsInLog = 0; 718 showEnvVarsInLog = 0;
714 }; 719 };
715 /* End PBXShellScriptBuildPhase section */ 720 /* End PBXShellScriptBuildPhase section */
716 721
717 /* Begin PBXSourcesBuildPhase section */ 722 /* Begin PBXSourcesBuildPhase section */
718 6E84E36D1F27A700001EB88E /* Sources */ = { 723 6E84E36D1F27A700001EB88E /* Sources */ = {
719 isa = PBXSourcesBuildPhase; 724 isa = PBXSourcesBuildPhase;
720 buildActionMask = 2147483647; 725 buildActionMask = 2147483647;
721 files = ( 726 files = (
722 6E18CED81F2E3C840029891F /* ServerAPI.m in Sources */, 727 6E18CED81F2E3C840029891F /* ServerAPI.m in Sources */,
723 6E7F93431F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m in Sources */, 728 6E7F93431F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m in Sources */,
724 6E7F93421F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m in Sources */, 729 6E7F93421F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m in Sources */,
725 E968550A1F3C444900317CEF /* AutoTransButton.m in Sources */, 730 E968550A1F3C444900317CEF /* AutoTransButton.m in Sources */,
726 9CBDA0FA1F2ECE2C0055DED1 /* BaseViewController.m in Sources */, 731 9CBDA0FA1F2ECE2C0055DED1 /* BaseViewController.m in Sources */,
727 6E8DA0F71F2BAC3400CCE941 /* TodayViewController.m in Sources */, 732 6E8DA0F71F2BAC3400CCE941 /* TodayViewController.m in Sources */,
728 6E7F93451F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m in Sources */, 733 6E7F93451F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m in Sources */,
729 E9682E2E1F39675A00FE05A2 /* RankingTableViewCell.m in Sources */, 734 E9682E2E1F39675A00FE05A2 /* RankingTableViewCell.m in Sources */,
735 E9D909211F3D559D004CF99F /* TweetObject.m in Sources */,
730 6E48AF0D1F2F9D3300C1D184 /* CustomTextField.m in Sources */, 736 6E48AF0D1F2F9D3300C1D184 /* CustomTextField.m in Sources */,
731 E99E13AB1F336F3600C78787 /* CollectionView.m in Sources */, 737 E99E13AB1F336F3600C78787 /* CollectionView.m in Sources */,
732 6E84E3B01F27A975001EB88E /* HomeViewController.m in Sources */, 738 6E84E3B01F27A975001EB88E /* HomeViewController.m in Sources */,
733 E9373E471F3596940059355A /* AutoTransLabel.m in Sources */, 739 E9373E471F3596940059355A /* AutoTransLabel.m in Sources */,
734 6E84E3791F27A701001EB88E /* AppDelegate.m in Sources */, 740 6E84E3791F27A701001EB88E /* AppDelegate.m in Sources */,
735 6E84E3BA1F27A9A0001EB88E /* RankingViewController.m in Sources */, 741 6E84E3BA1F27A9A0001EB88E /* RankingViewController.m in Sources */,
736 6E7F93441F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m in Sources */, 742 6E7F93441F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m in Sources */,
737 E9F73DCC1F338A0F004A3A6F /* HistoryListTableViewCell.m in Sources */, 743 E9F73DCC1F338A0F004A3A6F /* HistoryListTableViewCell.m in Sources */,
738 6EDC8BF41F2C68D700765ACC /* CMMotionActivityExtra.m in Sources */, 744 6EDC8BF41F2C68D700765ACC /* CMMotionActivityExtra.m in Sources */,
739 9CBDA0FF1F2F03810055DED1 /* RegisterViewController.m in Sources */, 745 9CBDA0FF1F2F03810055DED1 /* RegisterViewController.m in Sources */,
740 E9373E4A1F35AA180059355A /* HistoryObject.m in Sources */, 746 E9373E4A1F35AA180059355A /* HistoryObject.m in Sources */,
741 9CA8AEEA1F31BB4600C5FC74 /* ConfirmForgetPassViewController.m in Sources */, 747 9CA8AEEA1F31BB4600C5FC74 /* ConfirmForgetPassViewController.m in Sources */,
742 E99E13B11F33720600C78787 /* LabelCollectionViewCell.m in Sources */, 748 E99E13B11F33720600C78787 /* LabelCollectionViewCell.m in Sources */,
743 6EDC8BEE1F2C2FB800765ACC /* Utilities.m in Sources */, 749 6EDC8BEE1F2C2FB800765ACC /* Utilities.m in Sources */,
744 E96855111F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m in Sources */, 750 E96855111F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m in Sources */,
745 6E84E3C51F27ACAE001EB88E /* MapViewController.m in Sources */, 751 6E84E3C51F27ACAE001EB88E /* MapViewController.m in Sources */,
746 6E18CEDC1F2E40F50029891F /* User.m in Sources */, 752 6E18CEDC1F2E40F50029891F /* User.m in Sources */,
747 6ECC40711F2A5FEB00AAEB97 /* NSDate+helper.m in Sources */, 753 6ECC40711F2A5FEB00AAEB97 /* NSDate+helper.m in Sources */,
748 6E18CED31F2E39DB0029891F /* LoginViewController.m in Sources */, 754 6E18CED31F2E39DB0029891F /* LoginViewController.m in Sources */,
749 6E84E3761F27A701001EB88E /* main.m in Sources */, 755 6E84E3761F27A701001EB88E /* main.m in Sources */,
750 6E84E3B51F27A98B001EB88E /* HistoryViewController.m in Sources */, 756 6E84E3B51F27A98B001EB88E /* HistoryViewController.m in Sources */,
751 E9373E4D1F361A230059355A /* HistoryGraphObject.m in Sources */, 757 E9373E4D1F361A230059355A /* HistoryGraphObject.m in Sources */,
752 6E84E3BF1F27A9B1001EB88E /* SNSViewController.m in Sources */, 758 6E84E3BF1F27A9B1001EB88E /* SNSViewController.m in Sources */,
753 ); 759 );
754 runOnlyForDeploymentPostprocessing = 0; 760 runOnlyForDeploymentPostprocessing = 0;
755 }; 761 };
756 6E84E3861F27A703001EB88E /* Sources */ = { 762 6E84E3861F27A703001EB88E /* Sources */ = {
757 isa = PBXSourcesBuildPhase; 763 isa = PBXSourcesBuildPhase;
758 buildActionMask = 2147483647; 764 buildActionMask = 2147483647;
759 files = ( 765 files = (
760 6E84E38F1F27A703001EB88E /* LifeLogTests.m in Sources */, 766 6E84E38F1F27A703001EB88E /* LifeLogTests.m in Sources */,
761 ); 767 );
762 runOnlyForDeploymentPostprocessing = 0; 768 runOnlyForDeploymentPostprocessing = 0;
763 }; 769 };
764 6E84E3911F27A703001EB88E /* Sources */ = { 770 6E84E3911F27A703001EB88E /* Sources */ = {
765 isa = PBXSourcesBuildPhase; 771 isa = PBXSourcesBuildPhase;
766 buildActionMask = 2147483647; 772 buildActionMask = 2147483647;
767 files = ( 773 files = (
768 6E84E39A1F27A703001EB88E /* LifeLogUITests.m in Sources */, 774 6E84E39A1F27A703001EB88E /* LifeLogUITests.m in Sources */,
769 ); 775 );
770 runOnlyForDeploymentPostprocessing = 0; 776 runOnlyForDeploymentPostprocessing = 0;
771 }; 777 };
772 /* End PBXSourcesBuildPhase section */ 778 /* End PBXSourcesBuildPhase section */
773 779
774 /* Begin PBXTargetDependency section */ 780 /* Begin PBXTargetDependency section */
775 6E84E38C1F27A703001EB88E /* PBXTargetDependency */ = { 781 6E84E38C1F27A703001EB88E /* PBXTargetDependency */ = {
776 isa = PBXTargetDependency; 782 isa = PBXTargetDependency;
777 target = 6E84E3701F27A700001EB88E /* LifeLog */; 783 target = 6E84E3701F27A700001EB88E /* LifeLog */;
778 targetProxy = 6E84E38B1F27A703001EB88E /* PBXContainerItemProxy */; 784 targetProxy = 6E84E38B1F27A703001EB88E /* PBXContainerItemProxy */;
779 }; 785 };
780 6E84E3971F27A703001EB88E /* PBXTargetDependency */ = { 786 6E84E3971F27A703001EB88E /* PBXTargetDependency */ = {
781 isa = PBXTargetDependency; 787 isa = PBXTargetDependency;
782 target = 6E84E3701F27A700001EB88E /* LifeLog */; 788 target = 6E84E3701F27A700001EB88E /* LifeLog */;
783 targetProxy = 6E84E3961F27A703001EB88E /* PBXContainerItemProxy */; 789 targetProxy = 6E84E3961F27A703001EB88E /* PBXContainerItemProxy */;
784 }; 790 };
785 /* End PBXTargetDependency section */ 791 /* End PBXTargetDependency section */
786 792
787 /* Begin PBXVariantGroup section */ 793 /* Begin PBXVariantGroup section */
788 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */ = { 794 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */ = {
789 isa = PBXVariantGroup; 795 isa = PBXVariantGroup;
790 children = ( 796 children = (
791 6E84E3831F27A701001EB88E /* Base */, 797 6E84E3831F27A701001EB88E /* Base */,
792 ); 798 );
793 name = LaunchScreen.storyboard; 799 name = LaunchScreen.storyboard;
794 sourceTree = "<group>"; 800 sourceTree = "<group>";
795 }; 801 };
796 /* End PBXVariantGroup section */ 802 /* End PBXVariantGroup section */
797 803
798 /* Begin XCBuildConfiguration section */ 804 /* Begin XCBuildConfiguration section */
799 6E84E39C1F27A703001EB88E /* Debug */ = { 805 6E84E39C1F27A703001EB88E /* Debug */ = {
800 isa = XCBuildConfiguration; 806 isa = XCBuildConfiguration;
801 buildSettings = { 807 buildSettings = {
802 ALWAYS_SEARCH_USER_PATHS = NO; 808 ALWAYS_SEARCH_USER_PATHS = NO;
803 CLANG_ANALYZER_NONNULL = YES; 809 CLANG_ANALYZER_NONNULL = YES;
804 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 810 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
805 CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 811 CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
806 CLANG_CXX_LIBRARY = "libc++"; 812 CLANG_CXX_LIBRARY = "libc++";
807 CLANG_ENABLE_MODULES = YES; 813 CLANG_ENABLE_MODULES = YES;
808 CLANG_ENABLE_OBJC_ARC = YES; 814 CLANG_ENABLE_OBJC_ARC = YES;
809 CLANG_WARN_BOOL_CONVERSION = YES; 815 CLANG_WARN_BOOL_CONVERSION = YES;
810 CLANG_WARN_CONSTANT_CONVERSION = YES; 816 CLANG_WARN_CONSTANT_CONVERSION = YES;
811 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 817 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
812 CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 818 CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
813 CLANG_WARN_EMPTY_BODY = YES; 819 CLANG_WARN_EMPTY_BODY = YES;
814 CLANG_WARN_ENUM_CONVERSION = YES; 820 CLANG_WARN_ENUM_CONVERSION = YES;
815 CLANG_WARN_INFINITE_RECURSION = YES; 821 CLANG_WARN_INFINITE_RECURSION = YES;
816 CLANG_WARN_INT_CONVERSION = YES; 822 CLANG_WARN_INT_CONVERSION = YES;
817 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 823 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
818 CLANG_WARN_SUSPICIOUS_MOVE = YES; 824 CLANG_WARN_SUSPICIOUS_MOVE = YES;
819 CLANG_WARN_UNREACHABLE_CODE = YES; 825 CLANG_WARN_UNREACHABLE_CODE = YES;
820 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 826 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
821 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 827 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
822 COPY_PHASE_STRIP = NO; 828 COPY_PHASE_STRIP = NO;
823 DEBUG_INFORMATION_FORMAT = dwarf; 829 DEBUG_INFORMATION_FORMAT = dwarf;
824 ENABLE_STRICT_OBJC_MSGSEND = YES; 830 ENABLE_STRICT_OBJC_MSGSEND = YES;
825 ENABLE_TESTABILITY = YES; 831 ENABLE_TESTABILITY = YES;
826 GCC_C_LANGUAGE_STANDARD = gnu99; 832 GCC_C_LANGUAGE_STANDARD = gnu99;
827 GCC_DYNAMIC_NO_PIC = NO; 833 GCC_DYNAMIC_NO_PIC = NO;
828 GCC_NO_COMMON_BLOCKS = YES; 834 GCC_NO_COMMON_BLOCKS = YES;
829 GCC_OPTIMIZATION_LEVEL = 0; 835 GCC_OPTIMIZATION_LEVEL = 0;
830 GCC_PREPROCESSOR_DEFINITIONS = ( 836 GCC_PREPROCESSOR_DEFINITIONS = (
831 "DEBUG=1", 837 "DEBUG=1",
832 "$(inherited)", 838 "$(inherited)",
833 ); 839 );
834 GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 840 GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
835 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 841 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
836 GCC_WARN_UNDECLARED_SELECTOR = YES; 842 GCC_WARN_UNDECLARED_SELECTOR = YES;
837 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 843 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
838 GCC_WARN_UNUSED_FUNCTION = YES; 844 GCC_WARN_UNUSED_FUNCTION = YES;
839 GCC_WARN_UNUSED_VARIABLE = YES; 845 GCC_WARN_UNUSED_VARIABLE = YES;
840 IPHONEOS_DEPLOYMENT_TARGET = 10.3; 846 IPHONEOS_DEPLOYMENT_TARGET = 10.3;
841 MTL_ENABLE_DEBUG_INFO = YES; 847 MTL_ENABLE_DEBUG_INFO = YES;
842 ONLY_ACTIVE_ARCH = YES; 848 ONLY_ACTIVE_ARCH = YES;
843 SDKROOT = iphoneos; 849 SDKROOT = iphoneos;
844 TARGETED_DEVICE_FAMILY = "1,2"; 850 TARGETED_DEVICE_FAMILY = "1,2";
845 }; 851 };
846 name = Debug; 852 name = Debug;
847 }; 853 };
848 6E84E39D1F27A703001EB88E /* Release */ = { 854 6E84E39D1F27A703001EB88E /* Release */ = {
849 isa = XCBuildConfiguration; 855 isa = XCBuildConfiguration;
850 buildSettings = { 856 buildSettings = {
851 ALWAYS_SEARCH_USER_PATHS = NO; 857 ALWAYS_SEARCH_USER_PATHS = NO;
852 CLANG_ANALYZER_NONNULL = YES; 858 CLANG_ANALYZER_NONNULL = YES;
853 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 859 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
854 CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 860 CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
855 CLANG_CXX_LIBRARY = "libc++"; 861 CLANG_CXX_LIBRARY = "libc++";
856 CLANG_ENABLE_MODULES = YES; 862 CLANG_ENABLE_MODULES = YES;
857 CLANG_ENABLE_OBJC_ARC = YES; 863 CLANG_ENABLE_OBJC_ARC = YES;
858 CLANG_WARN_BOOL_CONVERSION = YES; 864 CLANG_WARN_BOOL_CONVERSION = YES;
859 CLANG_WARN_CONSTANT_CONVERSION = YES; 865 CLANG_WARN_CONSTANT_CONVERSION = YES;
860 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 866 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
861 CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 867 CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
862 CLANG_WARN_EMPTY_BODY = YES; 868 CLANG_WARN_EMPTY_BODY = YES;
863 CLANG_WARN_ENUM_CONVERSION = YES; 869 CLANG_WARN_ENUM_CONVERSION = YES;
864 CLANG_WARN_INFINITE_RECURSION = YES; 870 CLANG_WARN_INFINITE_RECURSION = YES;
865 CLANG_WARN_INT_CONVERSION = YES; 871 CLANG_WARN_INT_CONVERSION = YES;
866 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 872 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
867 CLANG_WARN_SUSPICIOUS_MOVE = YES; 873 CLANG_WARN_SUSPICIOUS_MOVE = YES;
868 CLANG_WARN_UNREACHABLE_CODE = YES; 874 CLANG_WARN_UNREACHABLE_CODE = YES;
869 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 875 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
870 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 876 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
871 COPY_PHASE_STRIP = NO; 877 COPY_PHASE_STRIP = NO;
872 DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 878 DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
873 ENABLE_NS_ASSERTIONS = NO; 879 ENABLE_NS_ASSERTIONS = NO;
874 ENABLE_STRICT_OBJC_MSGSEND = YES; 880 ENABLE_STRICT_OBJC_MSGSEND = YES;
875 GCC_C_LANGUAGE_STANDARD = gnu99; 881 GCC_C_LANGUAGE_STANDARD = gnu99;
876 GCC_NO_COMMON_BLOCKS = YES; 882 GCC_NO_COMMON_BLOCKS = YES;
877 GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 883 GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
878 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 884 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
879 GCC_WARN_UNDECLARED_SELECTOR = YES; 885 GCC_WARN_UNDECLARED_SELECTOR = YES;
880 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 886 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
881 GCC_WARN_UNUSED_FUNCTION = YES; 887 GCC_WARN_UNUSED_FUNCTION = YES;
882 GCC_WARN_UNUSED_VARIABLE = YES; 888 GCC_WARN_UNUSED_VARIABLE = YES;
883 IPHONEOS_DEPLOYMENT_TARGET = 10.3; 889 IPHONEOS_DEPLOYMENT_TARGET = 10.3;
884 MTL_ENABLE_DEBUG_INFO = NO; 890 MTL_ENABLE_DEBUG_INFO = NO;
885 SDKROOT = iphoneos; 891 SDKROOT = iphoneos;
886 TARGETED_DEVICE_FAMILY = "1,2"; 892 TARGETED_DEVICE_FAMILY = "1,2";
887 VALIDATE_PRODUCT = YES; 893 VALIDATE_PRODUCT = YES;
888 }; 894 };
889 name = Release; 895 name = Release;
890 }; 896 };
891 6E84E39F1F27A703001EB88E /* Debug */ = { 897 6E84E39F1F27A703001EB88E /* Debug */ = {
892 isa = XCBuildConfiguration; 898 isa = XCBuildConfiguration;
893 baseConfigurationReference = 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */; 899 baseConfigurationReference = 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */;
894 buildSettings = { 900 buildSettings = {
895 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 901 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
896 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 902 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
897 DEVELOPMENT_TEAM = ""; 903 DEVELOPMENT_TEAM = "";
898 INFOPLIST_FILE = LifeLog/Info.plist; 904 INFOPLIST_FILE = LifeLog/Info.plist;
899 IPHONEOS_DEPLOYMENT_TARGET = 9.0; 905 IPHONEOS_DEPLOYMENT_TARGET = 9.0;
900 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 906 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
901 OTHER_LDFLAGS = ( 907 OTHER_LDFLAGS = (
902 "$(inherited)", 908 "$(inherited)",
903 "-framework", 909 "-framework",
904 "\"CircleProgressBar\"", 910 "\"CircleProgressBar\"",
905 "-all_load", 911 "-all_load",
906 "-ObjC", 912 "-ObjC",
907 ); 913 );
908 PRODUCT_BUNDLE_IDENTIFIER = mobileworld.jp.lifelog; 914 PRODUCT_BUNDLE_IDENTIFIER = mobileworld.jp.lifelog;
909 PRODUCT_NAME = "$(TARGET_NAME)"; 915 PRODUCT_NAME = "$(TARGET_NAME)";
910 PROVISIONING_PROFILE = ""; 916 PROVISIONING_PROFILE = "";
911 PROVISIONING_PROFILE_SPECIFIER = ""; 917 PROVISIONING_PROFILE_SPECIFIER = "";
912 }; 918 };
913 name = Debug; 919 name = Debug;
914 }; 920 };
915 6E84E3A01F27A703001EB88E /* Release */ = { 921 6E84E3A01F27A703001EB88E /* Release */ = {
916 isa = XCBuildConfiguration; 922 isa = XCBuildConfiguration;
917 baseConfigurationReference = 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */; 923 baseConfigurationReference = 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */;
918 buildSettings = { 924 buildSettings = {
919 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 925 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
920 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 926 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
921 DEVELOPMENT_TEAM = ""; 927 DEVELOPMENT_TEAM = "";
922 INFOPLIST_FILE = LifeLog/Info.plist; 928 INFOPLIST_FILE = LifeLog/Info.plist;
923 IPHONEOS_DEPLOYMENT_TARGET = 9.0; 929 IPHONEOS_DEPLOYMENT_TARGET = 9.0;
924 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 930 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
925 OTHER_LDFLAGS = ( 931 OTHER_LDFLAGS = (
926 "$(inherited)", 932 "$(inherited)",
927 "-framework", 933 "-framework",
928 "\"CircleProgressBar\"", 934 "\"CircleProgressBar\"",
929 "-all_load", 935 "-all_load",
930 "-ObjC", 936 "-ObjC",
931 ); 937 );
932 PRODUCT_BUNDLE_IDENTIFIER = mobileworld.jp.lifelog; 938 PRODUCT_BUNDLE_IDENTIFIER = mobileworld.jp.lifelog;
933 PRODUCT_NAME = "$(TARGET_NAME)"; 939 PRODUCT_NAME = "$(TARGET_NAME)";
934 PROVISIONING_PROFILE = ""; 940 PROVISIONING_PROFILE = "";
935 PROVISIONING_PROFILE_SPECIFIER = ""; 941 PROVISIONING_PROFILE_SPECIFIER = "";
936 }; 942 };
937 name = Release; 943 name = Release;
938 }; 944 };
939 6E84E3A21F27A703001EB88E /* Debug */ = { 945 6E84E3A21F27A703001EB88E /* Debug */ = {
940 isa = XCBuildConfiguration; 946 isa = XCBuildConfiguration;
941 buildSettings = { 947 buildSettings = {
942 BUNDLE_LOADER = "$(TEST_HOST)"; 948 BUNDLE_LOADER = "$(TEST_HOST)";
943 INFOPLIST_FILE = LifeLogTests/Info.plist; 949 INFOPLIST_FILE = LifeLogTests/Info.plist;
944 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 950 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
945 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogTests; 951 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogTests;
946 PRODUCT_NAME = "$(TARGET_NAME)"; 952 PRODUCT_NAME = "$(TARGET_NAME)";
947 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LifeLog.app/LifeLog"; 953 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LifeLog.app/LifeLog";
948 }; 954 };
949 name = Debug; 955 name = Debug;
950 }; 956 };
951 6E84E3A31F27A703001EB88E /* Release */ = { 957 6E84E3A31F27A703001EB88E /* Release */ = {
952 isa = XCBuildConfiguration; 958 isa = XCBuildConfiguration;
953 buildSettings = { 959 buildSettings = {
954 BUNDLE_LOADER = "$(TEST_HOST)"; 960 BUNDLE_LOADER = "$(TEST_HOST)";
955 INFOPLIST_FILE = LifeLogTests/Info.plist; 961 INFOPLIST_FILE = LifeLogTests/Info.plist;
956 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 962 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
957 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogTests; 963 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogTests;
958 PRODUCT_NAME = "$(TARGET_NAME)"; 964 PRODUCT_NAME = "$(TARGET_NAME)";
959 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LifeLog.app/LifeLog"; 965 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LifeLog.app/LifeLog";
960 }; 966 };
961 name = Release; 967 name = Release;
962 }; 968 };
963 6E84E3A51F27A703001EB88E /* Debug */ = { 969 6E84E3A51F27A703001EB88E /* Debug */ = {
964 isa = XCBuildConfiguration; 970 isa = XCBuildConfiguration;
965 buildSettings = { 971 buildSettings = {
966 INFOPLIST_FILE = LifeLogUITests/Info.plist; 972 INFOPLIST_FILE = LifeLogUITests/Info.plist;
967 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 973 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
968 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogUITests; 974 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogUITests;
969 PRODUCT_NAME = "$(TARGET_NAME)"; 975 PRODUCT_NAME = "$(TARGET_NAME)";
970 TEST_TARGET_NAME = LifeLog; 976 TEST_TARGET_NAME = LifeLog;
971 }; 977 };
972 name = Debug; 978 name = Debug;
973 }; 979 };
974 6E84E3A61F27A703001EB88E /* Release */ = { 980 6E84E3A61F27A703001EB88E /* Release */ = {
975 isa = XCBuildConfiguration; 981 isa = XCBuildConfiguration;
976 buildSettings = { 982 buildSettings = {
977 INFOPLIST_FILE = LifeLogUITests/Info.plist; 983 INFOPLIST_FILE = LifeLogUITests/Info.plist;
978 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 984 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
979 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogUITests; 985 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogUITests;
980 PRODUCT_NAME = "$(TARGET_NAME)"; 986 PRODUCT_NAME = "$(TARGET_NAME)";
981 TEST_TARGET_NAME = LifeLog; 987 TEST_TARGET_NAME = LifeLog;
982 }; 988 };
983 name = Release; 989 name = Release;
984 }; 990 };
985 /* End XCBuildConfiguration section */ 991 /* End XCBuildConfiguration section */
986 992
987 /* Begin XCConfigurationList section */ 993 /* Begin XCConfigurationList section */
988 6E84E36C1F27A700001EB88E /* Build configuration list for PBXProject "LifeLog" */ = { 994 6E84E36C1F27A700001EB88E /* Build configuration list for PBXProject "LifeLog" */ = {
989 isa = XCConfigurationList; 995 isa = XCConfigurationList;
990 buildConfigurations = ( 996 buildConfigurations = (
991 6E84E39C1F27A703001EB88E /* Debug */, 997 6E84E39C1F27A703001EB88E /* Debug */,
992 6E84E39D1F27A703001EB88E /* Release */, 998 6E84E39D1F27A703001EB88E /* Release */,
993 ); 999 );
994 defaultConfigurationIsVisible = 0; 1000 defaultConfigurationIsVisible = 0;
995 defaultConfigurationName = Release; 1001 defaultConfigurationName = Release;
996 }; 1002 };
997 6E84E39E1F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLog" */ = { 1003 6E84E39E1F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLog" */ = {
998 isa = XCConfigurationList; 1004 isa = XCConfigurationList;
999 buildConfigurations = ( 1005 buildConfigurations = (
1000 6E84E39F1F27A703001EB88E /* Debug */, 1006 6E84E39F1F27A703001EB88E /* Debug */,
1001 6E84E3A01F27A703001EB88E /* Release */, 1007 6E84E3A01F27A703001EB88E /* Release */,
1002 ); 1008 );
1003 defaultConfigurationIsVisible = 0; 1009 defaultConfigurationIsVisible = 0;
1004 defaultConfigurationName = Release; 1010 defaultConfigurationName = Release;
1005 }; 1011 };
1006 6E84E3A11F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogTests" */ = { 1012 6E84E3A11F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogTests" */ = {
1007 isa = XCConfigurationList; 1013 isa = XCConfigurationList;
1008 buildConfigurations = ( 1014 buildConfigurations = (
1009 6E84E3A21F27A703001EB88E /* Debug */, 1015 6E84E3A21F27A703001EB88E /* Debug */,
1010 6E84E3A31F27A703001EB88E /* Release */, 1016 6E84E3A31F27A703001EB88E /* Release */,
1011 ); 1017 );
1012 defaultConfigurationIsVisible = 0; 1018 defaultConfigurationIsVisible = 0;
1013 defaultConfigurationName = Release; 1019 defaultConfigurationName = Release;
1014 }; 1020 };
1015 6E84E3A41F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogUITests" */ = { 1021 6E84E3A41F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogUITests" */ = {
1016 isa = XCConfigurationList; 1022 isa = XCConfigurationList;
1017 buildConfigurations = ( 1023 buildConfigurations = (
1018 6E84E3A51F27A703001EB88E /* Debug */, 1024 6E84E3A51F27A703001EB88E /* Debug */,
1019 6E84E3A61F27A703001EB88E /* Release */, 1025 6E84E3A61F27A703001EB88E /* Release */,
1020 ); 1026 );
1021 defaultConfigurationIsVisible = 0; 1027 defaultConfigurationIsVisible = 0;
1022 defaultConfigurationName = Release; 1028 defaultConfigurationName = Release;
1023 }; 1029 };
1024 /* End XCConfigurationList section */ 1030 /* End XCConfigurationList section */
1025 }; 1031 };
1026 rootObject = 6E84E3691F27A700001EB88E /* Project object */; 1032 rootObject = 6E84E3691F27A700001EB88E /* Project object */;
1027 } 1033 }
1028 1034
LifeLog/LifeLog/Entities.h
1 // 1 //
2 // Entities.h 2 // Entities.h
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by Nguyen Van Phong on 7/30/17. 5 // Created by Nguyen Van Phong on 7/30/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #ifndef Entities_h 9 #ifndef Entities_h
10 #define Entities_h 10 #define Entities_h
11 11
12 #import <MBProgressHUD/MBProgressHUD.h> 12 #import <MBProgressHUD/MBProgressHUD.h>
13 13
14 #import "TweetObject.h"
14 #import "HistoryGraphObject.h" 15 #import "HistoryGraphObject.h"
15 #import "HistoryObject.h" 16 #import "HistoryObject.h"
16 #import "User.h" 17 #import "User.h"
17 18
18 #endif /* Entities_h */ 19 #endif /* Entities_h */
19 20
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 25
26 [self setupView]; 26 [self setupView];
27 [self setupChartView]; 27 [self setupChartView];
28 28
29 _curDate = [NSDate date]; 29 _curDate = [NSDate date];
30 _curHisList = [[NSMutableArray alloc] init]; 30 _curHisList = [[NSMutableArray alloc] init];
31 31
32 [self callRequestToUpdateData]; 32 [self callRequestToUpdateData];
33 33
34 //register nib for table view 34 //register nib for table view
35 [self.tableListHistory registerNib:[UINib nibWithNibName:@"HistoryListTableViewCell" bundle:nil] forCellReuseIdentifier:@"HistoryListCell"]; 35 [self.tableListHistory registerNib:[UINib nibWithNibName:@"HistoryListTableViewCell" bundle:nil] forCellReuseIdentifier:@"HistoryListCell"];
36 } 36 }
37 37
38 - (void)viewDidAppear:(BOOL) animated 38 - (void)viewDidAppear:(BOOL) animated
39 { 39 {
40 [super viewDidAppear:animated]; 40 [super viewDidAppear:animated];
41 self.scrollView.contentSize = CGSizeMake(self.view.frame.size.width, 400); 41 self.scrollView.contentSize = CGSizeMake(self.view.frame.size.width, 400);
42 [self.scrollView setNeedsLayout]; 42 [self.scrollView setNeedsLayout];
43 [self.scrollView setNeedsUpdateConstraints]; 43 [self.scrollView setNeedsUpdateConstraints];
44 44
45 } 45 }
46 46
47 - (void)didReceiveMemoryWarning { 47 - (void)didReceiveMemoryWarning {
48 [super didReceiveMemoryWarning]; 48 [super didReceiveMemoryWarning];
49 // Dispose of any resources that can be recreated. 49 // Dispose of any resources that can be recreated.
50 } 50 }
51 51
52 - (void)setupView { 52 - (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]; 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 [self.viewCollectionType setButtonNumber:typeTitle.count]; 54 [self.viewCollectionType setButtonNumber:typeTitle.count];
55 [self.viewCollectionType setSpacing:2]; 55 [self.viewCollectionType setSpacing:2];
56 [self.viewCollectionType setArrayTitle:typeTitle]; 56 [self.viewCollectionType setArrayTitle:typeTitle];
57 self.viewCollectionType.changeCurrentIndex = ^(int index){ 57 self.viewCollectionType.changeCurrentIndex = ^(int index){
58 [self callRequestToUpdateData]; 58 [self callRequestToUpdateData];
59 }; 59 };
60 60
61 NSArray *modeTitle = [NSArray arrayWithObjects:NSLocalizedString(@"lifelog.history.mode.1", nil), NSLocalizedString(@"lifelog.history.mode.2", nil), NSLocalizedString(@"lifelog.history.mode.3", nil), nil]; 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 [self.viewCollectionMode setButtonNumber:modeTitle.count]; 62 [self.viewCollectionMode setButtonNumber:modeTitle.count];
63 [self.viewCollectionMode setSpacing:0]; 63 [self.viewCollectionMode setSpacing:0];
64 [self.viewCollectionMode setCornerRadius:0]; 64 [self.viewCollectionMode setCornerRadius:0];
65 [self.viewCollectionMode setNormalColor:[Utilities convertHecToColor:0x191919] highlightColor:[Utilities convertHecToColor:0x474747] textColor:[UIColor whiteColor]]; 65 [self.viewCollectionMode setNormalColor:[Utilities convertHecToColor:0x191919] highlightColor:[Utilities convertHecToColor:0x474747] textColor:[UIColor whiteColor]];
66 [self.viewCollectionMode setArrayTitle:modeTitle]; 66 [self.viewCollectionMode setArrayTitle:modeTitle];
67 self.viewCollectionMode.changeCurrentIndex = ^(int index){ 67 self.viewCollectionMode.changeCurrentIndex = ^(int index){
68 [self callRequestToUpdateData]; 68 [self callRequestToUpdateData];
69 }; 69 };
70 70
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]; 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 [self.viewCollectionShare setButtonNumber:typeTitle.count]; 72 [self.viewCollectionShare setButtonNumber:typeTitle.count];
73 [self.viewCollectionShare setSpacing:3]; 73 [self.viewCollectionShare setSpacing:3];
74 [self.viewCollectionShare setArrayTitle:shareTitle]; 74 [self.viewCollectionShare setArrayTitle:shareTitle];
75 [self.viewCollectionShare disableSelection]; 75 [self.viewCollectionShare disableSelection];
76 76
77 //add tap gesture for enable tap on gesture on CollectionView in ScrollView 77 //add tap gesture for enable tap on gesture on CollectionView in ScrollView
78 UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(gestureAction:)]; 78 UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(gestureAction:)];
79 [recognizer setNumberOfTapsRequired:1]; 79 [recognizer setNumberOfTapsRequired:1];
80 self.scrollView.userInteractionEnabled = YES; 80 self.scrollView.userInteractionEnabled = YES;
81 [self.scrollView addGestureRecognizer:recognizer]; 81 [self.scrollView addGestureRecognizer:recognizer];
82 } 82 }
83 83
84 - (void)setupChartView { 84 - (void)setupChartView {
85 self.viewBarChart.chartDescription.enabled = NO; 85 self.viewBarChart.chartDescription.enabled = NO;
86 self.viewBarChart.leftAxis.drawGridLinesEnabled = NO; 86 self.viewBarChart.leftAxis.drawGridLinesEnabled = NO;
87 self.viewBarChart.rightAxis.drawGridLinesEnabled = NO; 87 self.viewBarChart.rightAxis.drawGridLinesEnabled = NO;
88 self.viewBarChart.legend.enabled = NO; 88 self.viewBarChart.legend.enabled = NO;
89 89
90 ChartXAxis *xAxis = self.viewBarChart.xAxis; 90 ChartXAxis *xAxis = self.viewBarChart.xAxis;
91 xAxis.labelPosition = XAxisLabelPositionBottom; 91 xAxis.labelPosition = XAxisLabelPositionBottom;
92 xAxis.drawGridLinesEnabled = NO; 92 xAxis.drawGridLinesEnabled = NO;
93 xAxis.drawAxisLineEnabled = NO; 93 xAxis.drawAxisLineEnabled = NO;
94 xAxis.drawLabelsEnabled = YES; 94 xAxis.drawLabelsEnabled = YES;
95 xAxis.labelPosition = XAxisLabelPositionBottom; 95 xAxis.labelPosition = XAxisLabelPositionBottom;
96 xAxis.labelFont = [UIFont systemFontOfSize:10.f]; 96 xAxis.labelFont = [UIFont systemFontOfSize:10.f];
97 xAxis.labelTextColor = [UIColor whiteColor]; 97 xAxis.labelTextColor = [UIColor whiteColor];
98 xAxis.granularity = 1.0; // only intervals of 1 day 98 xAxis.granularity = 1.0; // only intervals of 1 day
99 xAxis.labelCount = 8; 99 xAxis.labelCount = 8;
100 100
101 self.viewBarChart.leftAxis.drawAxisLineEnabled = NO; 101 self.viewBarChart.leftAxis.drawAxisLineEnabled = NO;
102 self.viewBarChart.rightAxis.drawAxisLineEnabled = NO; 102 self.viewBarChart.rightAxis.drawAxisLineEnabled = NO;
103 } 103 }
104 104
105 -(void) updateView { 105 -(void) updateView {
106 self.lblStep.text = [NSString stringWithFormat:@"%d", _curHisObj.step]; 106 self.lblStep.text = [NSString stringWithFormat:@"%d", _curHisObj.step];
107 self.lblRemaining.text = [NSString stringWithFormat:@"%d", _curHisObj.missing]; 107 self.lblRemaining.text = [NSString stringWithFormat:@"%d", _curHisObj.missing];
108 self.lblPercent.text = [NSString stringWithFormat:@"%0.2f", _curHisObj.percent * 100]; 108 self.lblPercent.text = [NSString stringWithFormat:@"%0.2f", _curHisObj.percent * 100];
109 self.lblCalories.text = [NSString stringWithFormat:@"%0.2f", _curHisObj.calories]; 109 self.lblCalories.text = [NSString stringWithFormat:@"%0.2f", _curHisObj.calories];
110 self.lblDistance.text = [NSString stringWithFormat:@"%0.1f", _curHisObj.distance]; 110 self.lblDistance.text = [NSString stringWithFormat:@"%0.1f", _curHisObj.distance];
111 self.lblTime.text = _curHisObj.time; 111 self.lblTime.text = _curHisObj.time;
112 } 112 }
113 113
114 -(void) updateGraphView { 114 -(void) updateGraphView {
115 NSMutableArray *yVals = [[NSMutableArray alloc] init]; 115 NSMutableArray *yVals = [[NSMutableArray alloc] init];
116 for (int i = 0; i < _curHisGraphObj.arrayStep.count; i++) 116 for (int i = 0; i < _curHisGraphObj.arrayStep.count; i++)
117 { 117 {
118 [yVals addObject:[[BarChartDataEntry alloc] initWithX:i y:[[_curHisGraphObj.arrayStep objectAtIndex:i] doubleValue]]]; 118 [yVals addObject:[[BarChartDataEntry alloc] initWithX:i y:[[_curHisGraphObj.arrayStep objectAtIndex:i] doubleValue]]];
119 } 119 }
120 120
121 BarChartDataSet *set1 = nil; 121 BarChartDataSet *set1 = nil;
122 if (self.viewBarChart.data.dataSetCount > 0) 122 if (self.viewBarChart.data.dataSetCount > 0)
123 { 123 {
124 set1 = (BarChartDataSet *)self.viewBarChart.data.dataSets[0]; 124 set1 = (BarChartDataSet *)self.viewBarChart.data.dataSets[0];
125 set1.values = yVals; 125 set1.values = yVals;
126 [self.viewBarChart.data notifyDataChanged]; 126 [self.viewBarChart.data notifyDataChanged];
127 [self.viewBarChart notifyDataSetChanged]; 127 [self.viewBarChart notifyDataSetChanged];
128 } 128 }
129 else 129 else
130 { 130 {
131 set1 = [[BarChartDataSet alloc] initWithValues:yVals label:@""]; 131 set1 = [[BarChartDataSet alloc] initWithValues:yVals label:@""];
132 [set1 setColor:[UIColor whiteColor]]; 132 [set1 setColor:[UIColor whiteColor]];
133 133
134 NSMutableArray *dataSets = [[NSMutableArray alloc] init]; 134 NSMutableArray *dataSets = [[NSMutableArray alloc] init];
135 [dataSets addObject:set1]; 135 [dataSets addObject:set1];
136 136
137 BarChartData *data = [[BarChartData alloc] initWithDataSets:dataSets]; 137 BarChartData *data = [[BarChartData alloc] initWithDataSets:dataSets];
138 data.barWidth = 0.5f; 138 data.barWidth = 0.5f;
139 139
140 self.viewBarChart.data = data; 140 self.viewBarChart.data = data;
141 } 141 }
142 } 142 }
143 143
144 -(void) callRequestToUpdateData { 144 -(void) callRequestToUpdateData {
145 MBProgressHUD *hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true]; 145 MBProgressHUD *hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true];
146 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken]; 146 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken];
147 int type = self.viewCollectionType.getCurrentIndex; 147 int type = self.viewCollectionType.getCurrentIndex;
148 int mode = self.viewCollectionMode.getCurrentIndex + 1; 148 int mode = self.viewCollectionMode.getCurrentIndex + 1;
149 149
150 if(self.tableListHistory.alpha == 0.0) { 150 if(self.tableListHistory.alpha == 0.0) {
151 [[ServerAPI server] requestHistory:token atDate:_curDate withType:type andMode:mode CompletionHandler:^(HistoryObject *object, NSError *error) { 151 [[ServerAPI server] requestHistory:token atDate:_curDate withType:type andMode:mode CompletionHandler:^(HistoryObject *object, NSError *error) {
152 HistoryViewController __weak *weakSelf = self; 152 HistoryViewController __weak *weakSelf = self;
153 dispatch_async(dispatch_get_main_queue(), ^{
154 if(hudView != nil) {
155 [hudView hideAnimated:true];
156 }
157 });
153 if(error == nil) { 158 if(error == nil) {
154 _curHisObj = object; 159 _curHisObj = object;
155 dispatch_async(dispatch_get_main_queue(), ^{ 160 dispatch_async(dispatch_get_main_queue(), ^{
156 [hudView hideAnimated:true];
157 [weakSelf updateView]; 161 [weakSelf updateView];
158 }); 162 });
159 } 163 }
160 else { 164 else {
161 dispatch_async(dispatch_get_main_queue(), ^{ 165 dispatch_async(dispatch_get_main_queue(), ^{
162 [hudView hideAnimated:true];
163 NSString *message = [error.userInfo objectForKey:@"message"]; 166 NSString *message = [error.userInfo objectForKey:@"message"];
164 [Utilities showErrorMessage:message withViewController:weakSelf]; 167 [Utilities showErrorMessage:message withViewController:weakSelf];
165 }); 168 });
166 } 169 }
167 }]; 170 }];
168 171
169 [[ServerAPI server] requestHistoryGraph:token withType:type andMode:mode CompletionHandler:^(HistoryGraphObject *object, NSError *error) { 172 [[ServerAPI server] requestHistoryGraph:token withType:type andMode:mode CompletionHandler:^(HistoryGraphObject *object, NSError *error) {
170 HistoryViewController __weak *weakSelf = self; 173 HistoryViewController __weak *weakSelf = self;
171 if(error == nil) { 174 if(error == nil) {
172 _curHisGraphObj = object; 175 _curHisGraphObj = object;
173 dispatch_async(dispatch_get_main_queue(), ^{ 176 dispatch_async(dispatch_get_main_queue(), ^{
174 [self updateGraphView]; 177 [self updateGraphView];
175 }); 178 });
176 } 179 }
177 else { 180 else {
178 dispatch_async(dispatch_get_main_queue(), ^{ 181 dispatch_async(dispatch_get_main_queue(), ^{
179 NSString *message = [error.userInfo objectForKey:@"message"]; 182 NSString *message = [error.userInfo objectForKey:@"message"];
180 [Utilities showErrorMessage:message withViewController:weakSelf]; 183 [Utilities showErrorMessage:message withViewController:weakSelf];
181 }); 184 });
182 } 185 }
183 }]; 186 }];
184 } 187 }
185 else { 188 else {
186 [[ServerAPI server] requestHistoryList:token withType:type andMode:mode AtPage:1 CompletionHandler:^(NSMutableArray *object, NSError *error) { 189 [[ServerAPI server] requestHistoryList:token withType:type andMode:mode AtPage:1 CompletionHandler:^(NSMutableArray *object, NSError *error) {
187 HistoryViewController __weak *weakSelf = self; 190 HistoryViewController __weak *weakSelf = self;
191 dispatch_async(dispatch_get_main_queue(), ^{
192 if(hudView != nil) {
193 [hudView hideAnimated:true];
194 }
195 });
188 if(error == nil) { 196 if(error == nil) {
189 _curHisList = object; 197 _curHisList = object;
190 dispatch_async(dispatch_get_main_queue(), ^{ 198 dispatch_async(dispatch_get_main_queue(), ^{
191 [hudView hideAnimated:true];
192 [weakSelf.tableListHistory reloadData]; 199 [weakSelf.tableListHistory reloadData];
193 }); 200 });
194 } 201 }
195 else { 202 else {
196 dispatch_async(dispatch_get_main_queue(), ^{ 203 dispatch_async(dispatch_get_main_queue(), ^{
197 [hudView hideAnimated:true];
198 NSString *message = [error.userInfo objectForKey:@"message"]; 204 NSString *message = [error.userInfo objectForKey:@"message"];
199 [Utilities showErrorMessage:message withViewController:weakSelf]; 205 [Utilities showErrorMessage:message withViewController:weakSelf];
200 }); 206 });
201 } 207 }
202 }]; 208 }];
203 } 209 }
204 } 210 }
205 211
206 #pragma mark IBAction 212 #pragma mark IBAction
207 -(void) swipeAction:(UISwipeGestureRecognizer *)sender { 213 -(void) swipeAction:(UISwipeGestureRecognizer *)sender {
208 bool alphaValue = self.scrollView.alpha == 1.0 ? 1.0 : 0.0; 214 bool alphaValue = self.scrollView.alpha == 1.0 ? 1.0 : 0.0;
209 [UIView animateWithDuration:0.5 animations:^{ 215 [UIView animateWithDuration:0.5 animations:^{
210 self.tableListHistory.alpha = alphaValue; 216 self.tableListHistory.alpha = alphaValue;
211 self.scrollView.alpha = 1.0 - alphaValue; 217 self.scrollView.alpha = 1.0 - alphaValue;
212 } completion:^(BOOL completed) { 218 } completion:^(BOOL completed) {
213 [self callRequestToUpdateData]; 219 [self callRequestToUpdateData];
214 }]; 220 }];
215 } 221 }
216 222
217 -(void)gestureAction:(UITapGestureRecognizer *) sender 223 -(void)gestureAction:(UITapGestureRecognizer *) sender
218 { 224 {
219 CGPoint touchLocation = [sender locationOfTouch:0 inView:self.viewCollectionShare]; 225 CGPoint touchLocation = [sender locationOfTouch:0 inView:self.viewCollectionShare];
220 NSIndexPath *indexPath = [self.viewCollectionShare.collectionView indexPathForItemAtPoint:touchLocation]; 226 NSIndexPath *indexPath = [self.viewCollectionShare.collectionView indexPathForItemAtPoint:touchLocation];
221 NSString * content = @"Finish 500 steps"; 227 NSString * content = @"Finish 500 steps";
222 HistoryViewController __weak *weakSelf = self; 228 HistoryViewController __weak *weakSelf = self;
223 if(indexPath != NULL) { 229 if(indexPath != NULL) {
224 switch (indexPath.row) { 230 switch (indexPath.row) {
225 case 0: //share facebook 231 case 0: //share facebook
226 [Utilities shareFacebook:content withViewController:weakSelf]; 232 [Utilities shareFacebook:content withViewController:weakSelf];
227 break; 233 break;
228 case 1: //share twitter 234 case 1: //share twitter
229 [Utilities shareTwitter:content withViewController:weakSelf]; 235 [Utilities shareTwitter:content withViewController:weakSelf];
230 break; 236 break;
231 case 2 : //share line 237 case 2 : //share line
232 [Utilities shareLine:content withViewController:weakSelf]; 238 [Utilities shareLine:content withViewController:weakSelf];
233 break; 239 break;
234 case 3: // share email 240 case 3: // share email
235 [Utilities shareEmail:content withViewController:weakSelf]; 241 [Utilities shareEmail:content withViewController:weakSelf];
236 break; 242 break;
237 default: 243 default:
238 break; 244 break;
239 } 245 }
240 } 246 }
241 } 247 }
242 248
243 #pragma mark UITableView Delegate 249 #pragma mark UITableView Delegate
244 - (NSInteger) numberOfSectionsInTableView:(UITableView *)tableView { 250 - (NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
245 if(_curHisList == nil || _curHisList.count == 0) { 251 if(_curHisList == nil || _curHisList.count == 0) {
246 UILabel * noDataLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, tableView.frame.size.height)]; 252 UILabel * noDataLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, tableView.frame.size.height)];
247 noDataLabel.text = @"No data available"; 253 noDataLabel.text = @"No data available";
248 noDataLabel.backgroundColor = [UIColor clearColor]; 254 noDataLabel.backgroundColor = [UIColor clearColor];
249 noDataLabel.textColor = [UIColor whiteColor]; 255 noDataLabel.textColor = [UIColor whiteColor];
250 noDataLabel.textAlignment = NSTextAlignmentCenter; 256 noDataLabel.textAlignment = NSTextAlignmentCenter;
251 tableView.backgroundView = noDataLabel; 257 tableView.backgroundView = noDataLabel;
252 tableView.backgroundView.layer.zPosition -= 1; 258 tableView.backgroundView.layer.zPosition -= 1;
253 return 0; 259 return 0;
254 } 260 }
255 tableView.backgroundView = nil; 261 tableView.backgroundView = nil;
256 return 1; 262 return 1;
257 } 263 }
258 264
259 - (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 265 - (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
260 return _curHisList.count; 266 return _curHisList.count;
261 } 267 }
262 268
263 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 269 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
264 HistoryListTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"HistoryListCell"]; 270 HistoryListTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"HistoryListCell"];
265 HistoryObject * obj = [_curHisList objectAtIndex:indexPath.row]; 271 HistoryObject * obj = [_curHisList objectAtIndex:indexPath.row];
266 cell.lblStep.text = [NSString stringWithFormat:@"%d", obj.step]; 272 cell.lblStep.text = [NSString stringWithFormat:@"%d", obj.step];
267 cell.lblPower.text = [NSString stringWithFormat:@"%0.2f", obj.calories]; 273 cell.lblPower.text = [NSString stringWithFormat:@"%0.2f", obj.calories];
268 cell.lblDistance.text = [NSString stringWithFormat:@"%0.1f", obj.distance]; 274 cell.lblDistance.text = [NSString stringWithFormat:@"%0.1f", obj.distance];
269 cell.lblDuration.text = obj.time; 275 cell.lblDuration.text = obj.time;
270 return cell; 276 return cell;
LifeLog/LifeLog/SNSRecentTopicTableViewCell.h
1 // 1 //
2 // SNSRecentTopicTableViewCell.h 2 // SNSRecentTopicTableViewCell.h
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by nvtu on 8/10/17. 5 // Created by nvtu on 8/10/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 10
11 @interface SNSRecentTopicTableViewCell : UITableViewCell 11 @interface SNSRecentTopicTableViewCell : UITableViewCell
12 12
13 @property (weak, nonatomic) IBOutlet UIImageView *imgAvatar; 13 @property (weak, nonatomic) IBOutlet UIImageView *imgAvatar;
14 @property (weak, nonatomic) IBOutlet UILabel *lblDateTime; 14 @property (weak, nonatomic) IBOutlet UILabel *lblDateTime;
15 @property (weak, nonatomic) IBOutlet UILabel *lblLocation; 15 @property (weak, nonatomic) IBOutlet UILabel *lblUsername;
16 @property (weak, nonatomic) IBOutlet UILabel *lblDes; 16 @property (weak, nonatomic) IBOutlet UILabel *lblDes;
17 @property (weak, nonatomic) IBOutlet UILabel *lblMode; 17 @property (weak, nonatomic) IBOutlet UILabel *lblMode;
18 @property (weak, nonatomic) IBOutlet UILabel *lblDistance; 18 @property (weak, nonatomic) IBOutlet UILabel *lblDistance;
19 @property (weak, nonatomic) IBOutlet UILabel *lblDuration; 19 @property (weak, nonatomic) IBOutlet UILabel *lblDuration;
20 20
21 @end 21 @end
22 22
LifeLog/LifeLog/SNSRecentTopicTableViewCell.xib
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12121" systemVersion="16A323" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> 2 <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12121" systemVersion="16A323" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
3 <device id="retina4_7" orientation="portrait"> 3 <device id="retina4_7" orientation="portrait">
4 <adaptation id="fullscreen"/> 4 <adaptation id="fullscreen"/>
5 </device> 5 </device>
6 <dependencies> 6 <dependencies>
7 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/> 7 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
8 <capability name="Aspect ratio constraints" minToolsVersion="5.1"/>
9 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> 8 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
10 </dependencies> 9 </dependencies>
11 <objects> 10 <objects>
12 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> 11 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
13 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> 12 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
14 <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="RecentTopicCell" rowHeight="100" id="KGk-i7-Jjw" customClass="SNSRecentTopicTableViewCell"> 13 <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="RecentTopicCell" rowHeight="100" id="KGk-i7-Jjw" customClass="SNSRecentTopicTableViewCell">
15 <rect key="frame" x="0.0" y="0.0" width="320" height="100"/> 14 <rect key="frame" x="0.0" y="0.0" width="320" height="100"/>
16 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> 15 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
17 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM"> 16 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
18 <rect key="frame" x="0.0" y="0.0" width="320" height="99.5"/> 17 <rect key="frame" x="0.0" y="0.0" width="320" height="100"/>
19 <autoresizingMask key="autoresizingMask"/> 18 <autoresizingMask key="autoresizingMask"/>
20 <subviews> 19 <subviews>
21 <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="avatar_default" translatesAutoresizingMaskIntoConstraints="NO" id="ybP-aK-loM"> 20 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="avatar_default" translatesAutoresizingMaskIntoConstraints="NO" id="ybP-aK-loM">
22 <rect key="frame" x="8" y="17.5" width="50" height="65"/> 21 <rect key="frame" x="8" y="10" width="50" height="80"/>
23 <constraints> 22 <constraints>
24 <constraint firstAttribute="width" secondItem="ybP-aK-loM" secondAttribute="height" multiplier="10:13" id="6rL-og-ZNA"/>
25 <constraint firstAttribute="width" constant="50" id="Bkh-J5-a8V"/> 23 <constraint firstAttribute="width" constant="50" id="Bkh-J5-a8V"/>
24 <constraint firstAttribute="height" constant="80" id="C55-ta-Dpa"/>
26 </constraints> 25 </constraints>
27 </imageView> 26 </imageView>
28 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Sv2-7A-ngx"> 27 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Sv2-7A-ngx">
29 <rect key="frame" x="66" y="8" width="120" height="15"/> 28 <rect key="frame" x="66" y="8" width="120" height="15"/>
30 <constraints> 29 <constraints>
31 <constraint firstAttribute="width" constant="120" id="KgG-xx-rd2"/> 30 <constraint firstAttribute="width" constant="120" id="KgG-xx-rd2"/>
32 <constraint firstAttribute="height" constant="15" id="tb0-2N-6dg"/> 31 <constraint firstAttribute="height" constant="15" id="tb0-2N-6dg"/>
33 </constraints> 32 </constraints>
34 <string key="text" base64-UTF8="YES"> 33 <string key="text" base64-UTF8="YES">
35 MDE3LzAxLzI144CA44CAMTE6MjIAA 34 MDE3LzAxLzI144CA44CAMTE6MjIAA
36 </string> 35 </string>
37 <fontDescription key="fontDescription" type="system" pointSize="12"/> 36 <fontDescription key="fontDescription" type="system" pointSize="12"/>
38 <nil key="textColor"/> 37 <nil key="textColor"/>
39 <nil key="highlightedColor"/> 38 <nil key="highlightedColor"/>
40 </label> 39 </label>
41 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="w7w-q1-yZi"> 40 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="w7w-q1-yZi">
42 <rect key="frame" x="66" y="76.5" width="76.5" height="15"/> 41 <rect key="frame" x="66" y="76.5" width="76.5" height="15"/>
43 <constraints> 42 <constraints>
44 <constraint firstAttribute="height" constant="15" id="Gdv-rY-LV2"/> 43 <constraint firstAttribute="height" constant="15" id="Gdv-rY-LV2"/>
45 </constraints> 44 </constraints>
46 <string key="text" base64-UTF8="YES"> 45 <string key="text" base64-UTF8="YES">
47 44Op44Oz44OL44Oz44KwAA 46 44Op44Oz44OL44Oz44KwAA
48 </string> 47 </string>
49 <fontDescription key="fontDescription" type="system" pointSize="12"/> 48 <fontDescription key="fontDescription" type="system" pointSize="12"/>
50 <nil key="textColor"/> 49 <nil key="textColor"/>
51 <nil key="highlightedColor"/> 50 <nil key="highlightedColor"/>
52 </label> 51 </label>
53 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0:24:12" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JHq-wA-TUm"> 52 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0:24:12" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JHq-wA-TUm">
54 <rect key="frame" x="235.5" y="76.5" width="76.5" height="15"/> 53 <rect key="frame" x="235.5" y="76.5" width="76.5" height="15"/>
55 <constraints> 54 <constraints>
56 <constraint firstAttribute="height" constant="15" id="NOM-ku-c4b"/> 55 <constraint firstAttribute="height" constant="15" id="NOM-ku-c4b"/>
57 </constraints> 56 </constraints>
58 <fontDescription key="fontDescription" type="system" pointSize="12"/> 57 <fontDescription key="fontDescription" type="system" pointSize="12"/>
59 <nil key="textColor"/> 58 <nil key="textColor"/>
60 <nil key="highlightedColor"/> 59 <nil key="highlightedColor"/>
61 </label> 60 </label>
62 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Kato" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3XR-JQ-EfG"> 61 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Kato" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3XR-JQ-EfG">
63 <rect key="frame" x="192" y="8" width="128" height="15"/> 62 <rect key="frame" x="192" y="8" width="128" height="15"/>
64 <constraints> 63 <constraints>
65 <constraint firstAttribute="height" constant="15" id="wEn-nY-4f9"/> 64 <constraint firstAttribute="height" constant="15" id="wEn-nY-4f9"/>
66 </constraints> 65 </constraints>
67 <fontDescription key="fontDescription" type="system" pointSize="12"/> 66 <fontDescription key="fontDescription" type="system" pointSize="12"/>
68 <nil key="textColor"/> 67 <nil key="textColor"/>
69 <nil key="highlightedColor"/> 68 <nil key="highlightedColor"/>
70 </label> 69 </label>
71 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="今日は、ジムマシンで走りました。ちょっとゆっくり目で走ってみました。" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rfd-Mx-5Wv"> 70 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="今日は、ジムマシンで走りました。ちょっとゆっくり目で走ってみました。" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rfd-Mx-5Wv">
72 <rect key="frame" x="66" y="28" width="246" height="45.5"/> 71 <rect key="frame" x="66" y="28" width="246" height="45.5"/>
73 <fontDescription key="fontDescription" type="system" pointSize="12"/> 72 <fontDescription key="fontDescription" type="system" pointSize="12"/>
74 <nil key="textColor"/> 73 <nil key="textColor"/>
75 <nil key="highlightedColor"/> 74 <nil key="highlightedColor"/>
76 </label> 75 </label>
77 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="3my-zj-mjo"> 76 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="3my-zj-mjo">
78 <rect key="frame" x="0.0" y="98" width="320" height="2"/> 77 <rect key="frame" x="0.0" y="98" width="320" height="2"/>
79 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/> 78 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
80 <constraints> 79 <constraints>
81 <constraint firstAttribute="height" constant="2" id="hLK-fr-eKj"/> 80 <constraint firstAttribute="height" constant="2" id="hLK-fr-eKj"/>
82 </constraints> 81 </constraints>
83 </view> 82 </view>
84 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Qs8-Mr-CzW"> 83 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Qs8-Mr-CzW">
85 <rect key="frame" x="150.5" y="76.5" width="77" height="15"/> 84 <rect key="frame" x="150.5" y="76.5" width="77" height="15"/>
86 <constraints> 85 <constraints>
87 <constraint firstAttribute="height" constant="15" id="14e-tA-Vna"/> 86 <constraint firstAttribute="height" constant="15" id="14e-tA-Vna"/>
88 </constraints> 87 </constraints>
89 <string key="text" base64-UTF8="YES"> 88 <string key="text" base64-UTF8="YES">
90 NzY1NSBtAA 89 NzY1NSBtAA
91 </string> 90 </string>
92 <fontDescription key="fontDescription" type="system" pointSize="12"/> 91 <fontDescription key="fontDescription" type="system" pointSize="12"/>
93 <nil key="textColor"/> 92 <nil key="textColor"/>
94 <nil key="highlightedColor"/> 93 <nil key="highlightedColor"/>
95 </label> 94 </label>
96 </subviews> 95 </subviews>
97 <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> 96 <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
98 <constraints> 97 <constraints>
99 <constraint firstItem="Sv2-7A-ngx" firstAttribute="leading" secondItem="ybP-aK-loM" secondAttribute="trailing" constant="8" id="1aY-jp-czy"/> 98 <constraint firstItem="Sv2-7A-ngx" firstAttribute="leading" secondItem="ybP-aK-loM" secondAttribute="trailing" constant="8" id="1aY-jp-czy"/>
100 <constraint firstAttribute="trailing" secondItem="JHq-wA-TUm" secondAttribute="trailing" constant="8" id="27p-rJ-RBo"/> 99 <constraint firstAttribute="trailing" secondItem="JHq-wA-TUm" secondAttribute="trailing" constant="8" id="27p-rJ-RBo"/>
101 <constraint firstItem="JHq-wA-TUm" firstAttribute="leading" secondItem="Qs8-Mr-CzW" secondAttribute="trailing" constant="8" id="7Nm-Gn-Bd7"/> 100 <constraint firstItem="JHq-wA-TUm" firstAttribute="leading" secondItem="Qs8-Mr-CzW" secondAttribute="trailing" constant="8" id="7Nm-Gn-Bd7"/>
102 <constraint firstItem="Qs8-Mr-CzW" firstAttribute="width" secondItem="w7w-q1-yZi" secondAttribute="width" id="89T-VG-8NX"/> 101 <constraint firstItem="Qs8-Mr-CzW" firstAttribute="width" secondItem="w7w-q1-yZi" secondAttribute="width" id="89T-VG-8NX"/>
103 <constraint firstItem="3my-zj-mjo" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="A4w-9G-PRn"/> 102 <constraint firstItem="3my-zj-mjo" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="A4w-9G-PRn"/>
104 <constraint firstItem="JHq-wA-TUm" firstAttribute="top" secondItem="rfd-Mx-5Wv" secondAttribute="bottom" constant="3" id="BB7-0q-BwH"/> 103 <constraint firstItem="JHq-wA-TUm" firstAttribute="top" secondItem="rfd-Mx-5Wv" secondAttribute="bottom" constant="3" id="BB7-0q-BwH"/>
105 <constraint firstItem="ybP-aK-loM" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="8" id="E0T-rm-dl4"/> 104 <constraint firstItem="ybP-aK-loM" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="8" id="E0T-rm-dl4"/>
106 <constraint firstAttribute="bottom" secondItem="Qs8-Mr-CzW" secondAttribute="bottom" constant="8" id="EAa-Bf-W0s"/> 105 <constraint firstAttribute="bottom" secondItem="Qs8-Mr-CzW" secondAttribute="bottom" constant="8" id="EAa-Bf-W0s"/>
107 <constraint firstAttribute="trailing" secondItem="3XR-JQ-EfG" secondAttribute="trailing" id="ITt-4A-dZf"/> 106 <constraint firstAttribute="trailing" secondItem="3XR-JQ-EfG" secondAttribute="trailing" id="ITt-4A-dZf"/>
108 <constraint firstItem="3XR-JQ-EfG" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="8" id="JnC-1w-zzm"/> 107 <constraint firstItem="3XR-JQ-EfG" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="8" id="JnC-1w-zzm"/>
109 <constraint firstItem="Sv2-7A-ngx" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="8" id="LtV-QN-jZm"/> 108 <constraint firstItem="Sv2-7A-ngx" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="8" id="LtV-QN-jZm"/>
110 <constraint firstAttribute="bottom" secondItem="w7w-q1-yZi" secondAttribute="bottom" constant="8" id="Mq8-bd-QS7"/> 109 <constraint firstAttribute="bottom" secondItem="w7w-q1-yZi" secondAttribute="bottom" constant="8" id="Mq8-bd-QS7"/>
111 <constraint firstAttribute="trailing" secondItem="3my-zj-mjo" secondAttribute="trailing" id="NYe-7c-w4q"/> 110 <constraint firstAttribute="trailing" secondItem="3my-zj-mjo" secondAttribute="trailing" id="NYe-7c-w4q"/>
112 <constraint firstItem="Qs8-Mr-CzW" firstAttribute="bottom" secondItem="w7w-q1-yZi" secondAttribute="bottom" id="XJe-fI-OWd"/> 111 <constraint firstItem="Qs8-Mr-CzW" firstAttribute="bottom" secondItem="w7w-q1-yZi" secondAttribute="bottom" id="XJe-fI-OWd"/>
113 <constraint firstAttribute="trailing" secondItem="rfd-Mx-5Wv" secondAttribute="trailing" constant="8" id="YM4-b4-Y3r"/> 112 <constraint firstAttribute="trailing" secondItem="rfd-Mx-5Wv" secondAttribute="trailing" constant="8" id="YM4-b4-Y3r"/>
114 <constraint firstItem="Qs8-Mr-CzW" firstAttribute="leading" secondItem="w7w-q1-yZi" secondAttribute="trailing" constant="8" id="YNv-fN-5J9"/> 113 <constraint firstItem="Qs8-Mr-CzW" firstAttribute="leading" secondItem="w7w-q1-yZi" secondAttribute="trailing" constant="8" id="YNv-fN-5J9"/>
115 <constraint firstItem="JHq-wA-TUm" firstAttribute="bottom" secondItem="w7w-q1-yZi" secondAttribute="bottom" id="bcB-ih-bcL"/> 114 <constraint firstItem="JHq-wA-TUm" firstAttribute="bottom" secondItem="w7w-q1-yZi" secondAttribute="bottom" id="bcB-ih-bcL"/>
116 <constraint firstItem="rfd-Mx-5Wv" firstAttribute="top" secondItem="3XR-JQ-EfG" secondAttribute="bottom" constant="5" id="gmY-fN-31L"/> 115 <constraint firstItem="rfd-Mx-5Wv" firstAttribute="top" secondItem="3XR-JQ-EfG" secondAttribute="bottom" constant="5" id="gmY-fN-31L"/>
117 <constraint firstItem="rfd-Mx-5Wv" firstAttribute="leading" secondItem="ybP-aK-loM" secondAttribute="trailing" constant="8" id="lv3-qx-SEc"/> 116 <constraint firstItem="rfd-Mx-5Wv" firstAttribute="leading" secondItem="ybP-aK-loM" secondAttribute="trailing" constant="8" id="lv3-qx-SEc"/>
118 <constraint firstItem="ybP-aK-loM" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="qWh-wM-2wu"/> 117 <constraint firstItem="ybP-aK-loM" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="qWh-wM-2wu"/>
119 <constraint firstAttribute="bottom" secondItem="3my-zj-mjo" secondAttribute="bottom" id="rIh-im-BkJ"/> 118 <constraint firstAttribute="bottom" secondItem="3my-zj-mjo" secondAttribute="bottom" id="rIh-im-BkJ"/>
120 <constraint firstItem="JHq-wA-TUm" firstAttribute="width" secondItem="w7w-q1-yZi" secondAttribute="width" id="twf-Rn-SmF"/> 119 <constraint firstItem="JHq-wA-TUm" firstAttribute="width" secondItem="w7w-q1-yZi" secondAttribute="width" id="twf-Rn-SmF"/>
121 <constraint firstItem="3XR-JQ-EfG" firstAttribute="leading" secondItem="Sv2-7A-ngx" secondAttribute="trailing" constant="6" id="twv-av-7dS"/> 120 <constraint firstItem="3XR-JQ-EfG" firstAttribute="leading" secondItem="Sv2-7A-ngx" secondAttribute="trailing" constant="6" id="twv-av-7dS"/>
122 <constraint firstItem="w7w-q1-yZi" firstAttribute="leading" secondItem="Sv2-7A-ngx" secondAttribute="leading" id="y33-i7-bXu"/> 121 <constraint firstItem="w7w-q1-yZi" firstAttribute="leading" secondItem="Sv2-7A-ngx" secondAttribute="leading" id="y33-i7-bXu"/>
123 </constraints> 122 </constraints>
124 </tableViewCellContentView> 123 </tableViewCellContentView>
125 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 124 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
126 <connections> 125 <connections>
127 <outlet property="imgAvatar" destination="ybP-aK-loM" id="olo-f0-GtK"/> 126 <outlet property="imgAvatar" destination="ybP-aK-loM" id="olo-f0-GtK"/>
128 <outlet property="lblDateTime" destination="Sv2-7A-ngx" id="OCS-je-WGl"/> 127 <outlet property="lblDateTime" destination="Sv2-7A-ngx" id="OCS-je-WGl"/>
129 <outlet property="lblDes" destination="rfd-Mx-5Wv" id="cHd-S3-6NO"/> 128 <outlet property="lblDes" destination="rfd-Mx-5Wv" id="cHd-S3-6NO"/>
130 <outlet property="lblDistance" destination="Qs8-Mr-CzW" id="19w-MP-GTq"/> 129 <outlet property="lblDistance" destination="Qs8-Mr-CzW" id="19w-MP-GTq"/>
131 <outlet property="lblDuration" destination="JHq-wA-TUm" id="cKs-J1-eJa"/> 130 <outlet property="lblDuration" destination="JHq-wA-TUm" id="cKs-J1-eJa"/>
132 <outlet property="lblLocation" destination="3XR-JQ-EfG" id="xnZ-Ab-KhF"/>
133 <outlet property="lblMode" destination="w7w-q1-yZi" id="uke-pj-NlL"/> 131 <outlet property="lblMode" destination="w7w-q1-yZi" id="uke-pj-NlL"/>
132 <outlet property="lblUsername" destination="3XR-JQ-EfG" id="Enq-ZC-f2b"/>
134 </connections> 133 </connections>
135 <point key="canvasLocation" x="25" y="113"/> 134 <point key="canvasLocation" x="25" y="113"/>
136 </tableViewCell> 135 </tableViewCell>
137 </objects> 136 </objects>
138 <resources> 137 <resources>
139 <image name="avatar_default" width="80" height="80"/> 138 <image name="avatar_default" width="80" height="80"/>
140 </resources> 139 </resources>
LifeLog/LifeLog/SNSViewController.h
1 // 1 //
2 // SNSViewController.h 2 // SNSViewController.h
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by Nguyen Van Phong on 7/25/17. 5 // Created by Nguyen Van Phong on 7/25/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import <UIKit/UIKit.h> 9 #import <UIKit/UIKit.h>
10 10
11 @interface SNSViewController : UIViewController 11 @interface SNSViewController : UIViewController<UITableViewDelegate, UITableViewDataSource> {
12 BOOL _firstTime;
13 BOOL _isLoading;
14 BOOL _isEndOfResult;
15 int _curPage;
16 NSMutableArray * _curTweetList;
17 }
12 18
13 @property (weak, nonatomic) IBOutlet UITableView *tableRecent; 19 @property (weak, nonatomic) IBOutlet UITableView *tableRecent;
14 20
15 @end 21 @end
16 22
LifeLog/LifeLog/SNSViewController.m
1 // 1 //
2 // SNSViewController.m 2 // SNSViewController.m
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by Nguyen Van Phong on 7/25/17. 5 // Created by Nguyen Van Phong on 7/25/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import "SNSViewController.h" 9 #import "SNSViewController.h"
10 #import "SNSRecentTopicTableViewCell.h" 10 #import "SNSRecentTopicTableViewCell.h"
11 #import "ServerAPI.h"
12 #import "Utilities.h"
13 #import <SDWebImage/UIImageView+WebCache.h>
11 14
12 @interface SNSViewController () 15 @interface SNSViewController ()
13 16
14 @end 17 @end
15 18
16 @implementation SNSViewController 19 @implementation SNSViewController
17 20
18 - (void)viewDidLoad { 21 - (void)viewDidLoad {
19 [super viewDidLoad]; 22 [super viewDidLoad];
20 // Do any additional setup after loading the view from its nib. 23 // Do any additional setup after loading the view from its nib.
21 self.title = NSLocalizedString(@"lifelog.tapbar.sns", nil); 24 self.title = NSLocalizedString(@"lifelog.tapbar.sns", nil);
25 _firstTime = true;
26 _curPage = 1;
27 _isEndOfResult = false;
22 28
29 _curTweetList = [[NSMutableArray alloc] init];
30
31 [self callRequestToUpdateData];
32
23 //register nib for table view 33 //register nib for table view
24 [self.tableRecent registerNib:[UINib nibWithNibName:@"SNSRecentTopicTableViewCell" bundle:nil] forCellReuseIdentifier:@"RecentTopicCell"]; 34 [self.tableRecent registerNib:[UINib nibWithNibName:@"SNSRecentTopicTableViewCell" bundle:nil] forCellReuseIdentifier:@"RecentTopicCell"];
25 } 35 }
26 36
27 - (void)didReceiveMemoryWarning { 37 - (void)didReceiveMemoryWarning {
28 [super didReceiveMemoryWarning]; 38 [super didReceiveMemoryWarning];
29 // Dispose of any resources that can be recreated. 39 // Dispose of any resources that can be recreated.
30 } 40 }
31 41
32 42
33 #pragma mark UITableView Delegate 43 #pragma mark UITableView Delegate
34 - (NSInteger) numberOfSectionsInTableView:(UITableView *)tableView { 44 - (NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
35 // if(_curHisList == nil || _curHisList.count == 0) { 45 if((_curTweetList == nil || _curTweetList.count == 0) && !_firstTime) {
36 // UILabel * noDataLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, tableView.frame.size.height)]; 46 UILabel * noDataLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, tableView.frame.size.height)];
37 // noDataLabel.text = @"No data available"; 47 noDataLabel.text = @"No data available";
38 // noDataLabel.backgroundColor = [UIColor clearColor]; 48 noDataLabel.backgroundColor = [UIColor clearColor];
39 // noDataLabel.textColor = [UIColor whiteColor]; 49 noDataLabel.textColor = [UIColor whiteColor];
40 // noDataLabel.textAlignment = NSTextAlignmentCenter; 50 noDataLabel.textAlignment = NSTextAlignmentCenter;
41 // tableView.backgroundView = noDataLabel; 51 tableView.backgroundView = noDataLabel;
42 // tableView.backgroundView.layer.zPosition -= 1; 52 tableView.backgroundView.layer.zPosition -= 1;
43 // return 0; 53 return 0;
44 // } 54 }
45 // tableView.backgroundView = nil; 55 tableView.backgroundView = nil;
46 return 1; 56 return 1;
47 } 57 }
48 58
49 - (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 59 - (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
50 return 6; 60 return _curTweetList.count;
51 } 61 }
52 62
53 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 63 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
54 SNSRecentTopicTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"RecentTopicCell"]; 64 SNSRecentTopicTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"RecentTopicCell"];
65 TweetObject *object = [_curTweetList objectAtIndex:indexPath.row];
66 if(object.avatarLink && ![object.avatarLink isKindOfClass:[NSNull class]]) {
67 [cell.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatarLink]]];
68 }
69 cell.lblDateTime.text = [Utilities stringFromDate:object.createDate withFormat:@"YYYY/MM/dd hh:mm"];
70 cell.lblUsername.text = object.userName;
71 cell.lblDes.text = object.content;
72 cell.lblMode.text = object.mode;
73 cell.lblDistance.text = [NSString stringWithFormat:@"%.0f m", object.distance];
74 cell.lblDuration.text = object.time;
55 return cell; 75 return cell;
76 }
77
78 - (void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
79 NSInteger lastRowIndex = [tableView numberOfRowsInSection:0] - 1;
80 if (indexPath.row == lastRowIndex) {
81 // This is the last cell
82 if(!_isLoading) {
83 _curPage += 1;
84 [self callRequestToUpdateData];
85 }
86 }
87 }
88 #pragma mark Private Function
89
90 -(void) callRequestToUpdateData {
91 _isLoading = true;
92 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken];
93 MBProgressHUD *hudView = nil;
94 if(_curPage == 1) {
95 hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true];
96 }
97 [[ServerAPI server] requestRecentlyTweetsList:token withPage:_curPage CompletionHandler:^(NSArray *array, NSError *error){
98 SNSViewController __weak *weakSelf = self;
99 _isLoading = false;
100 dispatch_async(dispatch_get_main_queue(), ^{
101 if(hudView != nil) {
102 [hudView hideAnimated:true];
103 }
104 });
105 if(error == nil) {
106 if(_curPage == 1) {
107 [_curTweetList removeAllObjects];
108 }
109 if(array.count != 0) {
110 [_curTweetList addObjectsFromArray:array];
111 dispatch_async(dispatch_get_main_queue(), ^{
112 [weakSelf.tableRecent reloadData];
113 });
114 }
115 else {
116 _isEndOfResult = true;
117 _curPage = MAX(1, _curPage - 1);
118 }
119 }
120 else {
121 _curPage = MAX(1, _curPage - 1);
122 dispatch_async(dispatch_get_main_queue(), ^{
123 NSString *message = [error.userInfo objectForKey:@"message"];
124 [Utilities showErrorMessage:message withViewController:weakSelf];
125 });
126 }
127
128 }];
129 }
130
131 -(void) resetData {
132 _isLoading = false;
133 _isEndOfResult = false;
134 _firstTime = true;
135 _curPage = 1;
56 } 136 }
57 137
58 @end 138 @end
59 139
LifeLog/LifeLog/ServerAPI.h
1 // 1 //
2 // ServerAPI.h 2 // ServerAPI.h
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by Nguyen Van Phong on 7/30/17. 5 // Created by Nguyen Van Phong on 7/30/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import <Foundation/Foundation.h> 9 #import <Foundation/Foundation.h>
10 #import "Entities.h" 10 #import "Entities.h"
11 11
12 extern NSString *const kServerAddress; 12 extern NSString *const kServerAddress;
13 extern NSString *const kUser; 13 extern NSString *const kUser;
14 extern NSString *const kToken; 14 extern NSString *const kToken;
15 15
16 @interface ServerAPI : NSObject 16 @interface ServerAPI : NSObject
17 + (instancetype) server; 17 + (instancetype) server;
18 @property (nonatomic, assign) NSTimeInterval timeOutInterval; 18 @property (nonatomic, assign) NSTimeInterval timeOutInterval;
19 - (void)loginWithEmail:(NSString *)email Password:(NSString *)password CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion; 19 - (void)loginWithEmail:(NSString *)email Password:(NSString *)password CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion;
20 - (void)registerUserWithParams:(NSDictionary *)params CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion; 20 - (void)registerUserWithParams:(NSDictionary *)params CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion;
21 - (void)uploadImage:(NSString *)token andImageData:(NSData *)data CompletionHandler:(void (^)(NSString *, NSError *)) completion; 21 - (void)uploadImage:(NSString *)token andImageData:(NSData *)data CompletionHandler:(void (^)(NSString *, NSError *)) completion;
22 - (void)forgetPass:(NSString *)email CompletionHandler:(void (^)(NSError *)) completion; 22 - (void)forgetPass:(NSString *)email CompletionHandler:(void (^)(NSError *)) completion;
23 - (void)confirmForgetPass:(NSString *)email withConfirm:(NSString *)confirm CompletionHandler:(void (^)(NSError *)) completion; 23 - (void)confirmForgetPass:(NSString *)email withConfirm:(NSString *)confirm CompletionHandler:(void (^)(NSError *)) completion;
24 24
25 #pragma mark - History Screen Function
25 - (void) requestHistory:(NSString *)token atDate:(NSDate *)date withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryObject *, NSError *)) completion; 26 - (void) requestHistory:(NSString *)token atDate:(NSDate *)date withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryObject *, NSError *)) completion;
26 - (void) requestHistoryGraph:(NSString *)token withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryGraphObject *, NSError *)) completion; 27 - (void) requestHistoryGraph:(NSString *)token withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryGraphObject *, NSError *)) completion;
27 - (void) requestHistoryList:(NSString *)token withType:(int)type andMode:(int) mode AtPage:(int) page CompletionHandler:(void (^)(NSMutableArray *, NSError *)) completion; 28 - (void) requestHistoryList:(NSString *)token withType:(int)type andMode:(int) mode AtPage:(int) page CompletionHandler:(void (^)(NSMutableArray *, NSError *)) completion;
29
30 #pragma mark - SNS Screen Function
31 - (void) requestRecentlyTweetsList:(NSString *)token withPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion;
28 @end 32 @end
29 33
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 if (message == nil) { 106 if (message == nil) {
107 message = @"Unknown error"; 107 message = @"Unknown error";
108 } 108 }
109 NSError *loginFaild = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 109 NSError *loginFaild = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
110 completion(nil, nil, loginFaild); 110 completion(nil, nil, loginFaild);
111 } 111 }
112 } 112 }
113 else 113 else
114 { 114 {
115 completion(nil, nil, error); 115 completion(nil, nil, error);
116 } 116 }
117 }]; 117 }];
118 } 118 }
119 119
120 // Register 120 // Register
121 - (void)registerUserWithParams:(NSDictionary *)params CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion { 121 - (void)registerUserWithParams:(NSDictionary *)params CompletionHandler: (void (^)(User *, NSString *, NSError *)) completion {
122 [self _request:[kServerAddress stringByAppendingFormat: @"register"] method:@"POST" token:@"" paras:params completion:^(NSData *data, NSError *error) { 122 [self _request:[kServerAddress stringByAppendingFormat: @"register"] method:@"POST" token:@"" paras:params completion:^(NSData *data, NSError *error) {
123 123
124 if (completion == NULL) { 124 if (completion == NULL) {
125 return ; 125 return ;
126 } 126 }
127 127
128 if (error == nil) 128 if (error == nil)
129 { 129 {
130 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 130 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
131 131
132 int status = [dataResult[@"status"] intValue]; 132 int status = [dataResult[@"status"] intValue];
133 if (status == 1) { // status = 1 success 133 if (status == 1) { // status = 1 success
134 NSString *token = dataResult[@"result"][@"token"]; 134 NSString *token = dataResult[@"result"][@"token"];
135 NSDictionary *dictUser = dataResult[@"result"][@"user"]; 135 NSDictionary *dictUser = dataResult[@"result"][@"user"];
136 User *user = [[User alloc] init]; 136 User *user = [[User alloc] init];
137 user.user_id = [NSString stringWithFormat:@"%@",dictUser[@"id"]]; 137 user.user_id = [NSString stringWithFormat:@"%@",dictUser[@"id"]];
138 user.username = [NSString stringWithFormat:@"%@",dictUser[@"username"]]; 138 user.username = [NSString stringWithFormat:@"%@",dictUser[@"username"]];
139 user.full_name = [NSString stringWithFormat:@"%@",dictUser[@"full_name"]]; 139 user.full_name = [NSString stringWithFormat:@"%@",dictUser[@"full_name"]];
140 user.nickname = [NSString stringWithFormat:@"%@",dictUser[@"nickname"]]; 140 user.nickname = [NSString stringWithFormat:@"%@",dictUser[@"nickname"]];
141 user.email = [NSString stringWithFormat:@"%@",dictUser[@"email"]]; 141 user.email = [NSString stringWithFormat:@"%@",dictUser[@"email"]];
142 user.password = [NSString stringWithFormat:@"%@",dictUser[@"password"]]; 142 user.password = [NSString stringWithFormat:@"%@",dictUser[@"password"]];
143 user.birthday = [NSString stringWithFormat:@"%@",dictUser[@"birthday"]]; 143 user.birthday = [NSString stringWithFormat:@"%@",dictUser[@"birthday"]];
144 user.address = [NSString stringWithFormat:@"%@",dictUser[@"address"]]; 144 user.address = [NSString stringWithFormat:@"%@",dictUser[@"address"]];
145 user.gender = [[NSString stringWithFormat:@"%@",dictUser[@"gender"]] intValue]; 145 user.gender = [[NSString stringWithFormat:@"%@",dictUser[@"gender"]] intValue];
146 user.height = [[NSString stringWithFormat:@"%@",dictUser[@"height"]] floatValue]; 146 user.height = [[NSString stringWithFormat:@"%@",dictUser[@"height"]] floatValue];
147 user.weight = [[NSString stringWithFormat:@"%@",dictUser[@"weight"]] floatValue]; 147 user.weight = [[NSString stringWithFormat:@"%@",dictUser[@"weight"]] floatValue];
148 user.user_description = [NSString stringWithFormat:@"%@",dictUser[@"description"]]; 148 user.user_description = [NSString stringWithFormat:@"%@",dictUser[@"description"]];
149 user.created_at = [NSString stringWithFormat:@"%@",dictUser[@"created_at"]]; 149 user.created_at = [NSString stringWithFormat:@"%@",dictUser[@"created_at"]];
150 user.physical_activity = [NSString stringWithFormat:@"%@",dictUser[@"physical_activity"]]; 150 user.physical_activity = [NSString stringWithFormat:@"%@",dictUser[@"physical_activity"]];
151 user.profile_image = [NSString stringWithFormat:@"%@",dictUser[@"profile_image"]]; 151 user.profile_image = [NSString stringWithFormat:@"%@",dictUser[@"profile_image"]];
152 user.updated_at = [NSString stringWithFormat:@"%@",dictUser[@"updated_at"]]; 152 user.updated_at = [NSString stringWithFormat:@"%@",dictUser[@"updated_at"]];
153 user.delete_flag = [[NSString stringWithFormat:@"%@",dictUser[@"delete_flag"]] intValue]; 153 user.delete_flag = [[NSString stringWithFormat:@"%@",dictUser[@"delete_flag"]] intValue];
154 user.fat_rate = [[NSString stringWithFormat:@"%@",dictUser[@"fat_rate"]] intValue]; 154 user.fat_rate = [[NSString stringWithFormat:@"%@",dictUser[@"fat_rate"]] intValue];
155 user.profiles_share = [[NSString stringWithFormat:@"%@",dictUser[@"profiles_share"]] intValue]; 155 user.profiles_share = [[NSString stringWithFormat:@"%@",dictUser[@"profiles_share"]] intValue];
156 user.remember_me = [[NSString stringWithFormat:@"%@",dictUser[@"remember_me"]] intValue]; 156 user.remember_me = [[NSString stringWithFormat:@"%@",dictUser[@"remember_me"]] intValue];
157 user.sound_notifications_share = [[NSString stringWithFormat:@"%@",dictUser[@"sound_notifications_share"]] intValue]; 157 user.sound_notifications_share = [[NSString stringWithFormat:@"%@",dictUser[@"sound_notifications_share"]] intValue];
158 user.spend_calo_in_day = [[NSString stringWithFormat:@"%@",dictUser[@"spend_calo_in_day"]] intValue]; 158 user.spend_calo_in_day = [[NSString stringWithFormat:@"%@",dictUser[@"spend_calo_in_day"]] intValue];
159 user.target = [[NSString stringWithFormat:@"%@",dictUser[@"target"]] intValue]; 159 user.target = [[NSString stringWithFormat:@"%@",dictUser[@"target"]] intValue];
160 completion(user, token, nil); 160 completion(user, token, nil);
161 } 161 }
162 else { // status = 0 error 162 else { // status = 0 error
163 NSString *message = dataResult[@"message"]; 163 NSString *message = dataResult[@"message"];
164 if (message == nil) { 164 if (message == nil) {
165 message = @"Unknown error"; 165 message = @"Unknown error";
166 } 166 }
167 NSError *loginFaild = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 167 NSError *loginFaild = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
168 completion(nil, nil, loginFaild); 168 completion(nil, nil, loginFaild);
169 } 169 }
170 } 170 }
171 else 171 else
172 { 172 {
173 completion(nil, nil, error); 173 completion(nil, nil, error);
174 } 174 }
175 }]; 175 }];
176 } 176 }
177 177
178 - (void)forgetPass:(NSString *)email CompletionHandler:(void (^)(NSError *)) completion { 178 - (void)forgetPass:(NSString *)email CompletionHandler:(void (^)(NSError *)) completion {
179 [self _request:[kServerAddress stringByAppendingFormat: @"forgetPass"] method:@"POST" token:@"" paras:@{@"email":email} completion:^(NSData *data, NSError *error) { 179 [self _request:[kServerAddress stringByAppendingFormat: @"forgetPass"] method:@"POST" token:@"" paras:@{@"email":email} completion:^(NSData *data, NSError *error) {
180 180
181 if (completion == NULL) { 181 if (completion == NULL) {
182 return ; 182 return ;
183 } 183 }
184 184
185 if (error == nil) 185 if (error == nil)
186 { 186 {
187 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 187 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
188 188
189 int status = [dataResult[@"status"] intValue]; 189 int status = [dataResult[@"status"] intValue];
190 if (status == 1) { // status = 1 success 190 if (status == 1) { // status = 1 success
191 completion(nil); 191 completion(nil);
192 } 192 }
193 else { // status = 0 error 193 else { // status = 0 error
194 NSString *message = dataResult[@"message"]; 194 NSString *message = dataResult[@"message"];
195 if (message == nil) { 195 if (message == nil) {
196 message = @"Unknown error"; 196 message = @"Unknown error";
197 } 197 }
198 NSError *forgetPass = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 198 NSError *forgetPass = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
199 completion(forgetPass); 199 completion(forgetPass);
200 } 200 }
201 } 201 }
202 else 202 else
203 { 203 {
204 completion(error); 204 completion(error);
205 } 205 }
206 }]; 206 }];
207 } 207 }
208 - (void)confirmForgetPass:(NSString *)email withConfirm:(NSString *)confirm CompletionHandler:(void (^)(NSError *)) completion { 208 - (void)confirmForgetPass:(NSString *)email withConfirm:(NSString *)confirm CompletionHandler:(void (^)(NSError *)) completion {
209 [self _request:[kServerAddress stringByAppendingFormat: @"forgetPass/confirm"] method:@"POST" token:@"" paras:@{@"email":email, @"code_confirm": confirm} completion:^(NSData *data, NSError *error) { 209 [self _request:[kServerAddress stringByAppendingFormat: @"forgetPass/confirm"] method:@"POST" token:@"" paras:@{@"email":email, @"code_confirm": confirm} completion:^(NSData *data, NSError *error) {
210 210
211 if (completion == NULL) { 211 if (completion == NULL) {
212 return ; 212 return ;
213 } 213 }
214 214
215 if (error == nil) 215 if (error == nil)
216 { 216 {
217 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 217 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
218 218
219 int status = [dataResult[@"status"] intValue]; 219 int status = [dataResult[@"status"] intValue];
220 if (status == 1) { // status = 1 success 220 if (status == 1) { // status = 1 success
221 completion(nil); 221 completion(nil);
222 } 222 }
223 else { // status = 0 error 223 else { // status = 0 error
224 NSString *message = dataResult[@"message"]; 224 NSString *message = dataResult[@"message"];
225 NSError *confirmForgetPass = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 225 NSError *confirmForgetPass = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
226 completion(confirmForgetPass); 226 completion(confirmForgetPass);
227 } 227 }
228 } 228 }
229 else 229 else
230 { 230 {
231 completion(error); 231 completion(error);
232 } 232 }
233 }]; 233 }];
234 } 234 }
235 235
236 - (void)uploadImage:(NSString *)token andImageData:(NSData *)data CompletionHandler:(void (^)(NSString *, NSError *)) completion { 236 - (void)uploadImage:(NSString *)token andImageData:(NSData *)data CompletionHandler:(void (^)(NSString *, NSError *)) completion {
237 NSDictionary *dict = nil; 237 NSDictionary *dict = nil;
238 NSString *base64Encoded = [data base64EncodedStringWithOptions:0]; 238 NSString *base64Encoded = [data base64EncodedStringWithOptions:0];
239 if (token != nil) { 239 if (token != nil) {
240 dict = @{@"token":token, @"img": base64Encoded}; 240 dict = @{@"token":token, @"img": base64Encoded};
241 } 241 }
242 else { 242 else {
243 dict = @{@"img": base64Encoded}; 243 dict = @{@"img": base64Encoded};
244 } 244 }
245 [self _request:[kServerAddress stringByAppendingFormat: @"upload-image"] method:@"POST" token:token paras:dict completion:^(NSData *data, NSError *error) { 245 [self _request:[kServerAddress stringByAppendingFormat: @"upload-image"] method:@"POST" token:token paras:dict completion:^(NSData *data, NSError *error) {
246 246
247 if (completion == NULL) { 247 if (completion == NULL) {
248 return ; 248 return ;
249 } 249 }
250 250
251 if (error == nil) 251 if (error == nil)
252 { 252 {
253 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 253 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
254 NSString *image_profile = [NSString stringWithFormat:@"%@", dataResult[@"message"]]; 254 NSString *image_profile = [NSString stringWithFormat:@"%@", dataResult[@"message"]];
255 completion(image_profile, nil); 255 completion(image_profile, nil);
256 } 256 }
257 else 257 else
258 { 258 {
259 completion(nil, error); 259 completion(nil, error);
260 } 260 }
261 }]; 261 }];
262 } 262 }
263 263
264 -(NSString *) convertIntToString : (int) type { 264 -(NSString *) convertIntToString : (int) type {
265 switch (type) { 265 switch (type) {
266 case 1: 266 case 1:
267 return @"week"; 267 return @"week";
268 break; 268 break;
269 case 2: 269 case 2:
270 return @"oneMonth"; 270 return @"oneMonth";
271 break; 271 break;
272 case 3: 272 case 3:
273 return @"threeMonth"; 273 return @"threeMonth";
274 break; 274 break;
275 case 4: 275 case 4:
276 return @"sixMonth"; 276 return @"sixMonth";
277 break; 277 break;
278 default: 278 default:
279 return @"today"; 279 return @"today";
280 break; 280 break;
281 } 281 }
282 } 282 }
283 283
284 #pragma mark - History Screen Function 284 #pragma mark - History Screen Function
285 - (void) requestHistory:(NSString *)token atDate:(NSDate *)date withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryObject *, NSError *)) completion { 285 - (void) requestHistory:(NSString *)token atDate:(NSDate *)date withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryObject *, NSError *)) completion {
286 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/history/%@/%d", [self convertIntToString:type], mode]; 286 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/history/%@/%d", [self convertIntToString:type], mode];
287 NSLog(@"requestHistory link %@", url); 287 NSLog(@"requestHistory link %@", url);
288 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) { 288 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) {
289 289
290 if (completion == NULL) { 290 if (completion == NULL) {
291 return ; 291 return ;
292 } 292 }
293 293
294 if (error == nil) 294 if (error == nil)
295 { 295 {
296 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 296 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
297 NSLog(@"%@", dataResult); 297 NSLog(@"%@", dataResult);
298 int status = [dataResult[@"status"] intValue]; 298 int status = [dataResult[@"status"] intValue];
299 if (status == 1) { // status = 1 success 299 if (status == 1) { // status = 1 success
300 HistoryObject * object = [[HistoryObject alloc] initWithData:dataResult[@"result"]]; 300 HistoryObject * object = [[HistoryObject alloc] initWithData:dataResult[@"result"]];
301 completion(object, nil); 301 completion(object, nil);
302 } 302 }
303 else { 303 else {
304 NSString *message = dataResult[@"message"]; 304 NSString *message = dataResult[@"message"];
305 if (message == nil) { 305 if (message == nil) {
306 message = @"Unknown error"; 306 message = @"Unknown error";
307 } 307 }
308 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 308 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
309 completion(nil, errorObject); 309 completion(nil, errorObject);
310 } 310 }
311 } 311 }
312 else 312 else
313 { 313 {
314 completion(nil, error); 314 completion(nil, error);
315 } 315 }
316 }]; 316 }];
317 } 317 }
318 318
319 - (void) requestHistoryGraph:(NSString *)token withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryGraphObject *, NSError *)) completion { 319 - (void) requestHistoryGraph:(NSString *)token withType:(int)type andMode:(int) mode CompletionHandler:(void (^)(HistoryGraphObject *, NSError *)) completion {
320 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/history/graph/%@/%d", [self convertIntToString:type], mode]; 320 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/history/graph/%@/%d", [self convertIntToString:type], mode];
321 NSLog(@"requestHistoryGraph link %@", url); 321 NSLog(@"requestHistoryGraph link %@", url);
322 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) { 322 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) {
323 323
324 if (completion == NULL) { 324 if (completion == NULL) {
325 return ; 325 return ;
326 } 326 }
327 327
328 if (error == nil) 328 if (error == nil)
329 { 329 {
330 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 330 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
331 NSLog(@"%@", dataResult); 331 NSLog(@"%@", dataResult);
332 int status = [dataResult[@"status"] intValue]; 332 int status = [dataResult[@"status"] intValue];
333 if (status == 1) { // status = 1 success 333 if (status == 1) { // status = 1 success
334 HistoryGraphObject * object = [[HistoryGraphObject alloc] initWithData:dataResult[@"result"]]; 334 HistoryGraphObject * object = [[HistoryGraphObject alloc] initWithData:dataResult[@"result"]];
335 completion(object, nil); 335 completion(object, nil);
336 } 336 }
337 else { 337 else {
338 NSString *message = dataResult[@"message"]; 338 NSString *message = dataResult[@"message"];
339 if (message == nil) { 339 if (message == nil) {
340 message = @"Unknown error"; 340 message = @"Unknown error";
341 } 341 }
342 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 342 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
343 completion(nil, errorObject); 343 completion(nil, errorObject);
344 } 344 }
345 } 345 }
346 else 346 else
347 { 347 {
348 completion(nil, error); 348 completion(nil, error);
349 } 349 }
350 }]; 350 }];
351 } 351 }
352 352
353 - (void) requestHistoryList:(NSString *)token withType:(int)type andMode:(int) mode AtPage:(int) page CompletionHandler:(void (^)(NSMutableArray *, NSError *)) completion { 353 - (void) requestHistoryList:(NSString *)token withType:(int)type andMode:(int) mode AtPage:(int) page CompletionHandler:(void (^)(NSArray *, NSError *)) completion {
354 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/history/list/%@/%d?page=%d&record=50", [self convertIntToString:type], mode, page]; 354 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/history/list/%@/%d?page=%d&record=50", [self convertIntToString:type], mode, page];
355 NSLog(@"requestHistoryList link %@", url); 355 NSLog(@"requestHistoryList link %@", url);
356 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) { 356 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) {
357 357
358 if (completion == NULL) { 358 if (completion == NULL) {
359 return ; 359 return ;
360 } 360 }
361 361
362 if (error == nil) 362 if (error == nil)
363 { 363 {
364 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error]; 364 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
365 NSLog(@"%@", dataResult); 365 NSLog(@"%@", dataResult);
366 int status = [dataResult[@"status"] intValue]; 366 int status = [dataResult[@"status"] intValue];
367 if (status == 1) { // status = 1 success 367 if (status == 1) { // status = 1 success
368 if(dataResult[@"result"] != nil) { 368 if(dataResult[@"result"] != nil) {
369 NSArray * array = dataResult[@"result"][@"data"]; 369 NSArray * array = dataResult[@"result"][@"data"];
370 NSMutableArray * arrayHistory = [[NSMutableArray alloc] init]; 370 NSMutableArray * arrayHistory = [[NSMutableArray alloc] init];
371 for(NSDictionary * dict in array) { 371 for(NSDictionary * dict in array) {
372 HistoryObject * object = [[HistoryObject alloc] initWithData:dict]; 372 HistoryObject * object = [[HistoryObject alloc] initWithData:dict];
373 [arrayHistory addObject:object]; 373 [arrayHistory addObject:object];
374 } 374 }
375 completion(arrayHistory, nil); 375 completion(arrayHistory, nil);
376 } 376 }
377 else { 377 else {
378 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}]; 378 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}];
379 completion(nil, errorObject); 379 completion(nil, errorObject);
380 } 380 }
381 } 381 }
382 else { 382 else {
383 NSString *message = dataResult[@"message"]; 383 NSString *message = dataResult[@"message"];
384 if (message == nil) { 384 if (message == nil) {
385 message = @"Unknown error"; 385 message = @"Unknown error";
386 } 386 }
387 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
388 completion(nil, errorObject);
389 }
390 }
391 else
392 {
393 completion(nil, error);
394 }
395 }];
396 }
397
398 #pragma mark - SNS Screen Function
399 - (void) requestRecentlyTweetsList:(NSString *)token withPage:(int)page CompletionHandler:(void (^)(NSArray *, NSError *)) completion {
400 NSString *url = [kServerAddress stringByAppendingFormat:@"/api/sns/%d", page];
401 NSLog(@"requestRecentlyTweetsList link %@", url);
402 [self _request:url method:@"GET" token:token paras:nil completion:^(NSData *data, NSError *error) {
403
404 if (completion == NULL) {
405 return ;
406 }
407
408 if (error == nil)
409 {
410 NSDictionary *dataResult = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error: &error];
411 NSLog(@"%@", dataResult);
412 int status = [dataResult[@"status"] intValue];
413 if (status == 1) { // status = 1 success
414 if(dataResult[@"result"] != nil) {
415 NSArray * array = dataResult[@"result"];
416 NSMutableArray * arrayTweets = [[NSMutableArray alloc] init];
417 for(NSDictionary * dict in array) {
418 TweetObject * object = [[TweetObject alloc] initWithData:dict];
419 [arrayTweets addObject:object];
420 }
421 completion(arrayTweets, nil);
422 }
423 else {
424 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":@"Unknown Error"}];
425 completion(nil, errorObject);
426 }
427 }
428 else {
429 NSString *message = dataResult[@"message"];
387 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}]; 430 NSError *errorObject = [NSError errorWithDomain:@"LifeLog_Domain" code:-1 userInfo:@{@"message":message}];
388 completion(nil, errorObject); 431 completion(nil, errorObject);
389 } 432 }
390 } 433 }
391 else 434 else
392 { 435 {
393 completion(nil, error); 436 completion(nil, error);
394 } 437 }
395 }]; 438 }];
396 } 439 }
397 440
398 #pragma mark - Private Function 441 #pragma mark - Private Function
399 - (NSData *) _encodeDictionary: (NSDictionary *) dictionary 442 - (NSData *) _encodeDictionary: (NSDictionary *) dictionary
400 { 443 {
401 NSMutableArray *parts = [[NSMutableArray alloc] init]; 444 NSMutableArray *parts = [[NSMutableArray alloc] init];
402 for (id key in dictionary) 445 for (id key in dictionary)
403 { 446 {
404 NSString *encodedValue = [[dictionary[key] description] urlencode]; 447 NSString *encodedValue = [[dictionary[key] description] urlencode];
405 NSString *encodedKey = [[key description] urlencode];//[[key description] stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]; 448 NSString *encodedKey = [[key description] urlencode];//[[key description] stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
406 NSString *part = [NSString stringWithFormat: @"%@=%@", encodedKey, encodedValue]; 449 NSString *part = [NSString stringWithFormat: @"%@=%@", encodedKey, encodedValue];
407 [parts addObject:part]; 450 [parts addObject:part];
408 } 451 }
409 NSString *encodedDictionary = [parts componentsJoinedByString:@"&"]; 452 NSString *encodedDictionary = [parts componentsJoinedByString:@"&"];
410 return [encodedDictionary dataUsingEncoding: NSUTF8StringEncoding]; 453 return [encodedDictionary dataUsingEncoding: NSUTF8StringEncoding];
411 } 454 }
412 455
413 - (void) _request:(NSString *)address method:(NSString *)method token:(NSString *) token paras:(NSDictionary *)paras completion:(void (^)(NSData *data, NSError *error))completion 456 - (void) _request:(NSString *)address method:(NSString *)method token:(NSString *) token paras:(NSDictionary *)paras completion:(void (^)(NSData *data, NSError *error))completion
414 { 457 {
415 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: [NSURL URLWithString:address]]; 458 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: [NSURL URLWithString:address]];
416 request.HTTPMethod = method; 459 request.HTTPMethod = method;
417 [request setValue: @"application/json" forHTTPHeaderField: @"Accept"]; 460 [request setValue: @"application/json" forHTTPHeaderField: @"Accept"];
418 [request setValue: @"application/json" forHTTPHeaderField: @"Content-Type"]; 461 [request setValue: @"application/json" forHTTPHeaderField: @"Content-Type"];
419 if(token != nil && ![token isEqual: @""]) { 462 if(token != nil && ![token isEqual: @""]) {
420 [request setValue: token forHTTPHeaderField: @"token"]; 463 [request setValue: token forHTTPHeaderField: @"token"];
421 } 464 }
422 [request setTimeoutInterval:self.timeOutInterval]; 465 [request setTimeoutInterval:self.timeOutInterval];
423 466
424 if (paras != nil) 467 if (paras != nil)
425 { 468 {
426 NSData *encodedData = [self _encodeDictionary: paras]; 469 NSData *encodedData = [self _encodeDictionary: paras];
427 [request setValue: [NSString stringWithFormat: @"%lu", (unsigned long) encodedData.length] forHTTPHeaderField: @"Content-Length"]; 470 [request setValue: [NSString stringWithFormat: @"%lu", (unsigned long) encodedData.length] forHTTPHeaderField: @"Content-Length"];
428 [request setValue: @"application/x-www-form-urlencoded charset=utf-8" forHTTPHeaderField: @"Content-Type"]; 471 [request setValue: @"application/x-www-form-urlencoded charset=utf-8" forHTTPHeaderField: @"Content-Type"];
429 [request setHTTPBody: encodedData]; 472 [request setHTTPBody: encodedData];
430 } 473 }
431 474
432 NSURLSession *session = [NSURLSession sharedSession]; 475 NSURLSession *session = [NSURLSession sharedSession];
433 NSURLSessionDataTask *task = [session dataTaskWithRequest:request 476 NSURLSessionDataTask *task = [session dataTaskWithRequest:request
434 completionHandler: 477 completionHandler:
435 ^(NSData *data, NSURLResponse *response, NSError *error) { 478 ^(NSData *data, NSURLResponse *response, NSError *error) {
436 if (completion == NULL) { 479 if (completion == NULL) {
437 return ; 480 return ;
438 } 481 }
439 if (error == nil) 482 if (error == nil)
440 { 483 {
441 completion(data, nil); 484 completion(data, nil);
442 } 485 }
443 else 486 else
444 { 487 {
445 completion(nil, error); 488 completion(nil, error);
446 } 489 }
447 }]; 490 }];
448 491
449 [task resume]; 492 [task resume];
450 } 493 }
451 494
452 @end 495 @end
453 496
LifeLog/LifeLog/TweetObject.h
File was created 1 //
2 // TweetObject.h
3 // LifeLog
4 //
5 // Created by nvtu on 8/11/17.
6 // Copyright © 2017 PhongNV. All rights reserved.
7 //
8
9 #import <Foundation/Foundation.h>
10
11 @interface TweetObject : NSObject
12
13 @property (nonatomic) int tweetID;
14 @property (nonatomic) int groupID;
15 @property (nonatomic) int userID;
16 @property (nonatomic) float distance;
17
18 @property (nonatomic, strong) NSString * content;
19 @property (nonatomic, strong) NSString * mode;
20 @property (nonatomic, strong) NSString * time;
21 @property (nonatomic, strong) NSString * userName;
22 @property (nonatomic, strong) NSString * avatarLink;
23 @property (nonatomic, strong) NSDate * createDate;
24
25 -(id) initWithData : (NSDictionary *) dict;
26
27 @end
28
LifeLog/LifeLog/TweetObject.m
File was created 1 //
2 // TweetObject.m
3 // LifeLog
4 //
5 // Created by nvtu on 8/11/17.
6 // Copyright © 2017 PhongNV. All rights reserved.
7 //
8
9 #import "TweetObject.h"
10 #import "Utilities.h"
11
12 @implementation TweetObject
13
14 -(id) initWithData : (NSDictionary *) dict {
15 if([dict objectForKey:@"id"] != nil) {
16 self.tweetID = [dict[@"id"] intValue];
17 }
18 if([dict objectForKey:@"group_id"] != nil) {
19 self.groupID = [dict[@"group_id"] intValue];
20 }
21 if([dict objectForKey:@"tweet_content"] != nil) {
22 self.content = dict[@"tweet_content"];
23 }
24 if([dict objectForKey:@"mode"] != nil) {
25 int modeInt = [dict[@"mode"] intValue];
26 switch (modeInt) {
27 case 2:
28 self.mode = @"running";
29 break;
30 case 3:
31 self.mode = @"bike";
32 break;
33 default:
34 self.mode = @"walking";
35 break;
36 }
37 }
38 if([dict objectForKey:@"distance"] != nil) {
39 self.distance = [dict[@"distance"] floatValue];
40 }
41 if([dict objectForKey:@"time"] != nil) {
42 self.time = dict[@"time"];
43 }
44 if([dict objectForKey:@"user_id"] != nil) {
45 self.userID = [dict[@"user_id"] intValue];
46 }
47 if([dict objectForKey:@"username"] != nil) {
48 self.userName = dict[@"username"];
49 }
50 if([dict objectForKey:@"profile_image"] != nil) {
51 self.avatarLink = dict[@"profile_image"];
52 }
53 if([dict objectForKey:@"created_at"] != nil) {
54 self.createDate = dict[@"created_at"];
55 }
56 if([dict objectForKey:@"created_at"] != nil) {
57 NSString *dateString = dict[@"created_at"];
58 self.createDate = [Utilities dateFromString:dateString withFormat:@"yyyy-MM-dd hh:mm:ss"];
59 }
60 else {
61 self.createDate = [NSDate date];
62 }
63 return self;
64 }
65
66 @end
67
LifeLog/LifeLog/Utilities.h
1 // 1 //
2 // Utilities.h 2 // Utilities.h
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by Nguyen Van Phong on 7/29/17. 5 // Created by Nguyen Van Phong on 7/29/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 <UIKit/UIKit.h> 10 #import <UIKit/UIKit.h>
11 11
12 @interface Utilities : NSObject 12 @interface Utilities : NSObject
13 + (NSString *)addCommaFromNumber:(NSInteger)number; 13 + (NSString *)addCommaFromNumber:(NSInteger)number;
14 + (UIColor *)convertHecToColor:(int) hex; 14 + (UIColor *)convertHecToColor:(int) hex;
15 + (void)showErrorMessage:(NSString *)message withViewController:(UIViewController *)vc; 15 + (void)showErrorMessage:(NSString *)message withViewController:(UIViewController *)vc;
16 + (NSString *) getImageLink : (NSString *) path;
16 17
17 //share function 18 //share function
18 + (void) shareFacebook : (NSString *) content withViewController:(UIViewController *)vc; 19 + (void) shareFacebook : (NSString *) content withViewController:(UIViewController *)vc;
19 + (void) shareTwitter : (NSString *) content withViewController:(UIViewController *)vc; 20 + (void) shareTwitter : (NSString *) content withViewController:(UIViewController *)vc;
20 + (void) shareLine : (NSString *) content withViewController:(UIViewController *)vc; 21 + (void) shareLine : (NSString *) content withViewController:(UIViewController *)vc;
21 + (void) shareEmail : (NSString *) content withViewController:(UIViewController *)vc; 22 + (void) shareEmail : (NSString *) content withViewController:(UIViewController *)vc;
23
24 //convert date time
25 + (NSDate *) dateFromString : (NSString *) dateString withFormat: (NSString *) format;
26 + (NSString *) stringFromDate : (NSDate *) date withFormat: (NSString *) format;
22 @end 27 @end
23 28
LifeLog/LifeLog/Utilities.m
1 // 1 //
2 // Utilities.m 2 // Utilities.m
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by Nguyen Van Phong on 7/29/17. 5 // Created by Nguyen Van Phong on 7/29/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import <Social/Social.h> 9 #import <Social/Social.h>
10 #import <LineKit/Line.h> 10 #import <LineKit/Line.h>
11 11
12 #import "Utilities.h" 12 #import "Utilities.h"
13 #import "ServerAPI.h"
13 14
14 @implementation Utilities 15 @implementation Utilities
15 + (NSString *)addCommaFromNumber:(NSInteger)number 16 + (NSString *)addCommaFromNumber:(NSInteger)number
16 { 17 {
17 NSNumberFormatter *fmt = [[NSNumberFormatter alloc] init]; 18 NSNumberFormatter *fmt = [[NSNumberFormatter alloc] init];
18 [fmt setNumberStyle:NSNumberFormatterDecimalStyle]; 19 [fmt setNumberStyle:NSNumberFormatterDecimalStyle];
19 [fmt setMaximumFractionDigits:0]; 20 [fmt setMaximumFractionDigits:0];
20 NSString *result = [fmt stringFromNumber:@(number)]; 21 NSString *result = [fmt stringFromNumber:@(number)];
21 return result; 22 return result;
22 } 23 }
23 24
24 + (UIColor *)convertHecToColor:(int) hex 25 + (UIColor *)convertHecToColor:(int) hex
25 { 26 {
26 return [UIColor colorWithRed:((float)((hex & 0xFF0000) >> 16))/255.0 \ 27 return [UIColor colorWithRed:((float)((hex & 0xFF0000) >> 16))/255.0 \
27 green:((float)((hex & 0xFF00) >> 8))/255.0 \ 28 green:((float)((hex & 0xFF00) >> 8))/255.0 \
28 blue:((float)(hex & 0xFF))/255.0 alpha:1.0]; 29 blue:((float)(hex & 0xFF))/255.0 alpha:1.0];
29 } 30 }
30 31
31 + (void)showErrorMessage:(NSString *)message withViewController:(UIViewController *)vc 32 + (void)showErrorMessage:(NSString *)message withViewController:(UIViewController *)vc
32 { 33 {
33 if (message.length > 0) { 34 if (message.length > 0) {
34 UIAlertController * alert= [UIAlertController 35 UIAlertController * alert= [UIAlertController
35 alertControllerWithTitle:@"Error" 36 alertControllerWithTitle:@"Error"
36 message:message 37 message:message
37 preferredStyle:UIAlertControllerStyleAlert]; 38 preferredStyle:UIAlertControllerStyleAlert];
38 39
39 UIAlertAction* ok = [UIAlertAction 40 UIAlertAction* ok = [UIAlertAction
40 actionWithTitle:@"OK" 41 actionWithTitle:@"OK"
41 style:UIAlertActionStyleDefault 42 style:UIAlertActionStyleDefault
42 handler:^(UIAlertAction * action) 43 handler:^(UIAlertAction * action)
43 { 44 {
44 [alert dismissViewControllerAnimated:YES completion:nil]; 45 [alert dismissViewControllerAnimated:YES completion:nil];
45 46
46 }]; 47 }];
47 48
48 [alert addAction:ok]; 49 [alert addAction:ok];
49 50
50 [vc presentViewController:alert animated:YES completion:nil]; 51 [vc presentViewController:alert animated:YES completion:nil];
51 } 52 }
52 } 53 }
53 54
55 + (NSString *) getImageLink : (NSString *) path {
56 NSString * link = kServerAddress;
57 return [link stringByAppendingString:path];
58 }
59
54 + (void) shareFacebook : (NSString *) content withViewController:(UIViewController *)vc { 60 + (void) shareFacebook : (NSString *) content withViewController:(UIViewController *)vc {
55 if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) 61 if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
56 { 62 {
57 SLComposeViewController *composeViewController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook]; 63 SLComposeViewController *composeViewController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
58 64
59 [composeViewController setInitialText:content]; 65 [composeViewController setInitialText:content];
60 [composeViewController setCompletionHandler:^(SLComposeViewControllerResult result) { 66 [composeViewController setCompletionHandler:^(SLComposeViewControllerResult result) {
61 67
62 switch (result) { 68 switch (result) {
63 case SLComposeViewControllerResultCancelled: 69 case SLComposeViewControllerResultCancelled:
64 NSLog(@"canceled"); 70 NSLog(@"canceled");
65 break; 71 break;
66 case SLComposeViewControllerResultDone: 72 case SLComposeViewControllerResultDone:
67 NSLog(@"done"); 73 NSLog(@"done");
68 break; 74 break;
69 default: 75 default:
70 break; 76 break;
71 } 77 }
72 }]; 78 }];
73 [vc presentViewController:composeViewController animated:YES completion:nil]; 79 [vc presentViewController:composeViewController animated:YES completion:nil];
74 } 80 }
75 else { 81 else {
76 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"App-Prefs:root=FACEBOOK"]]; 82 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"App-Prefs:root=FACEBOOK"]];
77 } 83 }
78 } 84 }
79 85
80 + (void) shareTwitter : (NSString *) content withViewController:(UIViewController *)vc { 86 + (void) shareTwitter : (NSString *) content withViewController:(UIViewController *)vc {
81 if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]) 87 if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter])
82 { 88 {
83 SLComposeViewController *composeViewController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter]; 89 SLComposeViewController *composeViewController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
84 90
85 [composeViewController setInitialText:content]; 91 [composeViewController setInitialText:content];
86 [composeViewController setCompletionHandler:^(SLComposeViewControllerResult result) { 92 [composeViewController setCompletionHandler:^(SLComposeViewControllerResult result) {
87 93
88 switch (result) { 94 switch (result) {
89 case SLComposeViewControllerResultCancelled: 95 case SLComposeViewControllerResultCancelled:
90 NSLog(@"canceled"); 96 NSLog(@"canceled");
91 break; 97 break;
92 case SLComposeViewControllerResultDone: 98 case SLComposeViewControllerResultDone:
93 NSLog(@"done"); 99 NSLog(@"done");
94 break; 100 break;
95 default: 101 default:
96 break; 102 break;
97 } 103 }
98 }]; 104 }];
99 [vc presentViewController:composeViewController animated:YES completion:nil]; 105 [vc presentViewController:composeViewController animated:YES completion:nil];
100 } 106 }
101 else { 107 else {
102 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"App-Prefs:root=TWITTER"]]; 108 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"App-Prefs:root=TWITTER"]];
103 } 109 }
104 } 110 }
105 111
106 + (void) shareLine : (NSString *) content withViewController:(UIViewController *)vc { 112 + (void) shareLine : (NSString *) content withViewController:(UIViewController *)vc {
107 if (![Line isLineInstalled]) { 113 if (![Line isLineInstalled]) {
108 [self showErrorMessage:@"Install Line app first" withViewController:vc]; 114 [self showErrorMessage:@"Install Line app first" withViewController:vc];
109 } 115 }
110 else { 116 else {
111 [Line shareText:content]; 117 [Line shareText:content];
112 } 118 }
113 } 119 }
114 120
115 + (void) shareEmail : (NSString *) content withViewController:(UIViewController *)vc { 121 + (void) shareEmail : (NSString *) content withViewController:(UIViewController *)vc {
116 NSString *urlEmail = @"mailto:?subject=Share from LifeLog&body="; 122 NSString *urlEmail = @"mailto:?subject=Share from LifeLog&body=";
117 urlEmail = [urlEmail stringByAppendingString:content]; 123 urlEmail = [urlEmail stringByAppendingString:content];
118 urlEmail = [urlEmail stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]]; 124 urlEmail = [urlEmail stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]];
119 [[UIApplication sharedApplication] openURL: [NSURL URLWithString: urlEmail]]; 125 [[UIApplication sharedApplication] openURL: [NSURL URLWithString: urlEmail]];
120 } 126 }
127
128 #pragma mark convert date time
129 + (NSDate *) dateFromString : (NSString *) dateString withFormat: (NSString *) format {
130 NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
131 [dateFormat setDateFormat:format];
132 NSDate *date = [dateFormat dateFromString:dateString];
133 if(date == NULL) {
134 return [NSDate date];
135 }
136 return date;
137 }
138
139 + (NSString *) stringFromDate : (NSDate *) date withFormat: (NSString *) format {
140 NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
141 [dateFormat setDateFormat:format];
142 NSString *dateString = [dateFormat stringFromDate:date];
143 return dateString;
144 }
145
121 @end 146 @end
122 147
1 platform :ios, '9.0' 1 platform :ios, '9.0'
2 use_frameworks! 2 use_frameworks!
3 3
4 target 'LifeLog' do 4 target 'LifeLog' do
5 pod 'CircleProgressBar' 5 pod 'CircleProgressBar'
6 pod 'MBProgressHUD', '~> 1.0.0' 6 pod 'MBProgressHUD', '~> 1.0.0'
7 pod 'Charts' 7 pod 'Charts'
8 pod 'LineKit' 8 pod 'LineKit'
9 pod 'SDWebImage'
9 end 10 end
10 11