RankingViewController.m
5.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
//
// RankingViewController.m
// LifeLog
//
// Created by Nguyen Van Phong on 7/25/17.
// Copyright © 2017 PhongNV. All rights reserved.
//
#import "RankingViewController.h"
#import "RankingTableViewCell.h"
#import "ServerAPI.h"
#import "Utilities.h"
@interface RankingViewController ()
@end
@implementation RankingViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
self.title = NSLocalizedString(@"lifelog.rank.title", nil);
[self setupView];
_startDate = [NSDate date];
_endDate = _startDate;
self.lblDateTime.text = [Utilities stringFromDate:_endDate withFormat:@"YYYY年MM月dd日 EEEE" locale:@"ja_JP"];
//register nib for table view
[self.tableBase registerNib:[UINib nibWithNibName:@"RankingTableViewCell" bundle:nil] forCellReuseIdentifier:@"RankCell"];
[self callRequestToUpdateData];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark Setup and Update View
- (void)setupView {
NSArray *timeTitle = [NSArray arrayWithObjects:NSLocalizedString(@"lifelog.rank.time.1", nil), NSLocalizedString(@"lifelog.rank.time.2", nil), NSLocalizedString(@"lifelog.rank.time.3", nil), NSLocalizedString(@"lifelog.rank.time.4", nil), nil];
[self.viewCollectionTime setButtonNumber:timeTitle.count];
[self.viewCollectionTime setSpacing:1];
[self.viewCollectionTime setArrayTitle:timeTitle];
self.viewCollectionTime.changeCurrentIndex = ^(int index){
[self changeDate];
};
NSArray *modeTitle = [NSArray arrayWithObjects:NSLocalizedString(@"lifelog.rank.mode.1", nil), NSLocalizedString(@"lifelog.rank.mode.2", nil), NSLocalizedString(@"lifelog.rank.mode.3", nil), NSLocalizedString(@"lifelog.rank.mode.4", nil), nil];
[self.viewCollectionMode setButtonNumber:modeTitle.count];
[self.viewCollectionMode setSpacing:1];
[self.viewCollectionMode setArrayTitle:modeTitle];
self.viewCollectionMode.changeCurrentIndex = ^(int index){
[self callRequestToUpdateData];
};
NSArray *typeTitle = [NSArray arrayWithObjects:NSLocalizedString(@"lifelog.rank.type.1", nil), NSLocalizedString(@"lifelog.rank.type.2", nil), NSLocalizedString(@"lifelog.rank.type.3", nil), NSLocalizedString(@"lifelog.rank.type.4", nil), nil];
[self.viewCollectionType setButtonNumber:typeTitle.count];
[self.viewCollectionType setSpacing:1];
[self.viewCollectionType setArrayTitle:typeTitle];
self.viewCollectionMode.changeCurrentIndex = ^(int index){
[self callRequestToUpdateData];
};
}
#pragma mark IBAction function
- (IBAction)clickBackward:(UIButton *)sender {
_endDate = [_endDate dateByAddingTimeInterval:-86400];
[self changeDate];
}
- (IBAction)clickForward:(UIButton *)sender {
_endDate = [_endDate dateByAddingTimeInterval:86400];
[self changeDate];
}
#pragma mark UITableView Delegate
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
RankingTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"RankCell"];
[cell setRankingData:[_curDataList objectAtIndex:indexPath.row]];
return cell;
}
#pragma mark Private function
- (void)callRequestToUpdateData {
[super callRequestToUpdateData];
NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken];
MBProgressHUD *hudView = nil;
int mode = self.viewCollectionMode.getCurrentIndex + 1;
//dont have all
mode = fmin(mode, 3);
if(_curPage == 1 && !self.refreshControl.isRefreshing) {
hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true];
}
[[ServerAPI server] requestRankingList:token startDate:_startDate endDate:_endDate mode:mode page:_curPage CompletionHandler:^(NSArray *array, NSError *error){
dispatch_async(dispatch_get_main_queue(), ^{
if(hudView != nil) {
[hudView hideAnimated:true];
}
});
RankingViewController __weak *weakSelf = self;
[weakSelf updateTableData:array error:error];
}];
}
- (void) changeDate {
switch (self.viewCollectionTime.getCurrentIndex) {
case 1:
_startDate = [_endDate dateByAddingTimeInterval:-86400 * 7];
break;
case 2:
_startDate = [_endDate dateByAddingTimeInterval:-86400 * 30];
break;
case 3:
_startDate = [_endDate dateByAddingTimeInterval:-86400 * 365];
break;
default:
_startDate = _endDate;
break;
}
if(_startDate == _endDate) {
self.lblDateTime.text = [Utilities stringFromDate:_endDate withFormat:@"YYYY年MM月dd日 EEEE" locale:@"ja_JP"];
}
else {
NSString * startDateString = [Utilities stringFromDate:_startDate withFormat:@"YYYY年MM月dd日" locale:@"ja_JP"];
NSString * endDateString = [Utilities stringFromDate:_endDate withFormat:@"YYYY年MM月dd日" locale:@"ja_JP"];
self.lblDateTime.text = [NSString stringWithFormat:@"%@-%@", startDateString, endDateString];
}
[self callRequestToUpdateData];
}
@end