Blame view

BT Vendor/DateRangePickerViewController.m 7.5 KB
Imanol-Mikel Barba Sabariego authored
1
2
3
4
5
6
7
8
9
10
11
12
//
//  DateRangePickerViewController.m
//  DUREX Vendor Control
//
//  Created by Imanol Barba on 9/13/14.
//  Copyright (c) 2014 Emmoco. All rights reserved.
//

#import "DateRangePickerViewController.h"

@interface DateRangePickerViewController ()
Imanol-Mikel Barba Sabariego authored
13
@property uint8_t isExtended;
Imanol-Mikel Barba Sabariego authored
14
@property NSUInteger currentHeight;
Imanol-Mikel Barba Sabariego authored
15
Imanol-Mikel Barba Sabariego authored
16
17
18
19
20
21
22
23
@end

@implementation DateRangePickerViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
Imanol-Mikel Barba Sabariego authored
24
Imanol-Mikel Barba Sabariego authored
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
    }
    return self;
}

- (void)viewDidLoad
{
    self.view.backgroundColor=[[UIColor blackColor] colorWithAlphaComponent:.7];
    self.dateRangePickerView.layer.cornerRadius = 5;
    self.dateRangePickerView.layer.shadowOpacity = 0.8;
    self.dateRangePickerView.layer.shadowOffset = CGSizeMake(0.0f, 0.0f);

    //Fix transparency glitch on iPad
    [self.fromDate setDate:[NSDate dateWithTimeIntervalSince1970:NSTimeIntervalSince1970]];
    [self.fromDate setDate:[NSDate date]];
    [self.toDate setDate:[NSDate dateWithTimeIntervalSince1970:NSTimeIntervalSince1970]];
    [self.toDate setDate:[NSDate date]];
Imanol-Mikel Barba Sabariego authored
42
    [self setIsExtended:0];
Imanol-Mikel Barba Sabariego authored
43
44
    [self setCurrentHeight:[self scrollView].frame.size.height];
Imanol-Mikel Barba Sabariego authored
45
46
47
48
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
}
Imanol-Mikel Barba Sabariego authored
49
50
51
52
53
- (void) viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
}
Imanol-Mikel Barba Sabariego authored
54
55
56
57
58
59
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
Imanol-Mikel Barba Sabariego authored
60
61
62
- (void) parentViewControllerDidRotateWithOrientation: (UIDeviceOrientation) orientation
{
    NSLog(@"[DateRangePickerViewController.m]: Screen did rotate");
Imanol-Mikel Barba Sabariego authored
63
    [self resizeViewHeight:self.scrollView :self.currentHeight :FALSE :FALSE];
Imanol-Mikel Barba Sabariego authored
64
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) //iPhones need this fix
Imanol-Mikel Barba Sabariego authored
65
    {
Imanol-Mikel Barba Sabariego authored
66
67
68
69
70
71
72
73
74
75
76
77
        if([self.fromToggler isOn])
        {
            NSUInteger height = [self fromDate].frame.size.height;
            self.currentHeight -= (height + 20);
            [self toggleFromDate:self];
        }
        if([self.toToggler isOn])
        {
            NSUInteger height = [self toDate].frame.size.height;
            self.currentHeight -= (height + 20);
            [self toggleToDate:self];
        }
Imanol-Mikel Barba Sabariego authored
78
    }
Imanol-Mikel Barba Sabariego authored
79
80
81
82
83
84
85
86
87
88
89
90
}

- (void) parentViewControllerWillRotateToInterfaceOrientation: (UIInterfaceOrientation)toInterfaceOrientation duration: (NSTimeInterval)duration
{
    NSLog(@"[DateRangePickerViewController.m]: Screen will rotate");
}

- (void) expandScrollView
{

}
Imanol-Mikel Barba Sabariego authored
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
- (void)showAnimate
{
    self.view.transform = CGAffineTransformMakeScale(1.3, 1.3);
    self.view.alpha = 0;
    [UIView animateWithDuration:.25 animations:^{
        self.view.alpha = 1;
        self.view.transform = CGAffineTransformMakeScale(1, 1);
    }];
}

- (void)removeAnimate
{
    [UIView animateWithDuration:.25 animations:^{
        self.view.transform = CGAffineTransformMakeScale(1.3, 1.3);
        self.view.alpha = 0.0;
    } completion:^(BOOL finished) {
        if (finished) {
            [self.view removeFromSuperview];
        }
    }];
}
Imanol-Mikel Barba Sabariego authored
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
- (void) moveUp: (UIView*) view : (NSUInteger) height
{
    CGPoint position = view.center;
    position.y -= height;
    [UIView beginAnimations:@"MoveUp" context:NULL];
    [UIView setAnimationDuration:0.5];
    view.center = position;
    [UIView commitAnimations];
}

- (void) moveDown: (UIView*) view : (NSUInteger) height
{
    CGPoint position = view.center;
    position.y += height;
    [UIView beginAnimations:@"MoveDown" context:NULL];
    [UIView setAnimationDuration:0.5];
    view.center = position;
    [UIView commitAnimations];
}
Imanol-Mikel Barba Sabariego authored
133
- (void) resizeViewHeight : (UIView*) view : (NSInteger) height : (Boolean) ignoreHeight : (Boolean) realResize
Imanol-Mikel Barba Sabariego authored
134
{
Imanol-Mikel Barba Sabariego authored
135
    NSLog(@"[DateRangePickerViewController.m]: currentHeight is %lu", (unsigned long)self.currentHeight);
Imanol-Mikel Barba Sabariego authored
136
    CGRect screenRect = [[UIScreen mainScreen] bounds];
Imanol-Mikel Barba Sabariego authored
137
138
    CGFloat screenHeight;
    if(UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation]))
Imanol-Mikel Barba Sabariego authored
139
    {
Imanol-Mikel Barba Sabariego authored
140
        screenHeight = screenRect.size.width;
Imanol-Mikel Barba Sabariego authored
141
    }
Imanol-Mikel Barba Sabariego authored
142
    else
Imanol-Mikel Barba Sabariego authored
143
    {
Imanol-Mikel Barba Sabariego authored
144
        screenHeight = screenRect.size.height;
Imanol-Mikel Barba Sabariego authored
145
    }
Imanol-Mikel Barba Sabariego authored
146
    if((height > (screenHeight-40)) && !ignoreHeight)
Imanol-Mikel Barba Sabariego authored
147
    {
Imanol-Mikel Barba Sabariego authored
148
149
        NSLog(@"[DateRangePickerViewController.m]: Screen height limit reached");
        height = screenHeight-40;
Imanol-Mikel Barba Sabariego authored
150
    }
Imanol-Mikel Barba Sabariego authored
151
152
153
154
155
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.5];
    view.frame = CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width,height);
    [UIView commitAnimations];
    if(realResize)
Imanol-Mikel Barba Sabariego authored
156
    {
Imanol-Mikel Barba Sabariego authored
157
158
159
160
161
162
163
164
        if(height < 0)
        {
            [self setIsExtended: [self isExtended] - 1];
        }
        else
        {
            [self setIsExtended: [self isExtended] + 1];
        }
Imanol-Mikel Barba Sabariego authored
165
    }
Imanol-Mikel Barba Sabariego authored
166
    [self.scrollView setContentSize:CGSizeMake([self scrolledView].frame.size.width,[self  currentHeight])];
Imanol-Mikel Barba Sabariego authored
167
    [self.scrollView flashScrollIndicators];
Imanol-Mikel Barba Sabariego authored
168
169
}
Imanol-Mikel Barba Sabariego authored
170
171
- (IBAction)toggleFromDate:(id)sender
{
Imanol-Mikel Barba Sabariego authored
172
    NSUInteger height = [self fromDate].frame.size.height;
Imanol-Mikel Barba Sabariego authored
173
174
175
176
    if([[self fromToggler] isOn])
    {
        [[self fromDate] setEnabled:TRUE];
        [[self fromDate] setHidden:FALSE];
Imanol-Mikel Barba Sabariego authored
177
178
179
180
        [self moveDown:[self toToggler] :height];
        [self moveDown:[self toDate] :height];
        [self moveDown:[self doneButton] :height];
        [self moveDown:[self toLabel] :height];
Imanol-Mikel Barba Sabariego authored
181
        [self moveDown:self.cancelButton :height];
Imanol-Mikel Barba Sabariego authored
182
        [self setCurrentHeight:[self currentHeight] + height + 20];
Imanol-Mikel Barba Sabariego authored
183
        [self resizeViewHeight : [self scrollView] : [self currentHeight] : FALSE : TRUE];
Imanol-Mikel Barba Sabariego authored
184
185
186
187
188
    }
    else
    {
        [[self fromDate] setEnabled:FALSE];
        [[self fromDate] setHidden:TRUE];
Imanol-Mikel Barba Sabariego authored
189
190
191
192
        [self moveUp:[self toToggler] :height];
        [self moveUp:[self toDate] :height];
        [self moveUp:[self doneButton] :height];
        [self moveUp:[self toLabel] :height];
Imanol-Mikel Barba Sabariego authored
193
        [self moveUp:self.cancelButton :height];
Imanol-Mikel Barba Sabariego authored
194
        [self setCurrentHeight:[self currentHeight] - height - 20];
Imanol-Mikel Barba Sabariego authored
195
        [self resizeViewHeight : [self scrollView] : [self currentHeight] : FALSE : TRUE];
Imanol-Mikel Barba Sabariego authored
196
197
198
199
    }
}
- (IBAction)toggleToDate:(id)sender
{
Imanol-Mikel Barba Sabariego authored
200
    NSUInteger height = [self toDate].frame.size.height;
Imanol-Mikel Barba Sabariego authored
201
202
203
204
    if([[self toToggler] isOn])
    {
        [[self toDate] setEnabled:TRUE];
        [[self toDate] setHidden:FALSE];
Imanol-Mikel Barba Sabariego authored
205
        [self moveDown:[self doneButton] :height];
Imanol-Mikel Barba Sabariego authored
206
        [self moveDown:self.cancelButton :height];
Imanol-Mikel Barba Sabariego authored
207
        [self setCurrentHeight:[self currentHeight] + height + 20];
Imanol-Mikel Barba Sabariego authored
208
        [self resizeViewHeight : [self scrollView] : [self currentHeight] : FALSE : TRUE];
Imanol-Mikel Barba Sabariego authored
209
210
211
212
213
    }
    else
    {
        [[self toDate] setEnabled:FALSE];
        [[self toDate] setHidden:TRUE];
Imanol-Mikel Barba Sabariego authored
214
        [self moveUp:[self doneButton] :height];
Imanol-Mikel Barba Sabariego authored
215
        [self moveUp:self.cancelButton : height];
Imanol-Mikel Barba Sabariego authored
216
        [self setCurrentHeight:[self currentHeight] - height - 20];
Imanol-Mikel Barba Sabariego authored
217
        [self resizeViewHeight : [self scrollView] : [self currentHeight] : FALSE : TRUE];
Imanol-Mikel Barba Sabariego authored
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
    }
}

- (IBAction)closePopup:(id)sender
{
    NSDate *from = nil;
    NSDate *to = nil;
    if([[self fromToggler] isOn])
    {
        from = [[self fromDate] date];
    }
    if([[self toToggler] isOn])
    {
        to = [[self toDate] date];
    }
    [self.delegate passDateRangeViewController:self didFinishEnteringItem:from : to];
Imanol-Mikel Barba Sabariego authored
234
    [self.childDelegate removeChildFromParentController:self];
Imanol-Mikel Barba Sabariego authored
235
236
237
    [self removeAnimate];
}
Imanol-Mikel Barba Sabariego authored
238
239
240
241
242
243
- (IBAction)cancel:(id)sender
{
    [self.childDelegate removeChildFromParentController:self];
    [self removeAnimate];
}
Imanol-Mikel Barba Sabariego authored
244
245
246
- (void)showInView:(UIView *)aView animated:(BOOL)animated
{
    [aView addSubview:self.view];
Imanol-Mikel Barba Sabariego authored
247
248
    if (animated)
    {
Imanol-Mikel Barba Sabariego authored
249
250
251
252
253
        [self showAnimate];
    }
}

@end