-
Notifications
You must be signed in to change notification settings - Fork 0
/
AppHelpers.m
133 lines (105 loc) · 3.95 KB
/
AppHelpers.m
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
#import "AppHelpers.h"
@implementation AppHelpers
+ (NSString *)formatDate:(NSDate *)date {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterMediumStyle];
NSString *result = [formatter stringFromDate:date];
[formatter release];
return result;
}
+ (NSDate *)parseDateTime:(NSString *)dateTimeString {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"];
[formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];
NSDate *result = [formatter dateFromString:dateTimeString];
[formatter release];
return result;
}
+ (NSString *)numberToCurrency:(NSString *)number {
if (number == nil) {
return @"$0.00";
}
NSDecimalNumber *decimalNumber =
[NSDecimalNumber decimalNumberWithString:number];
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[formatter setMinimumFractionDigits:2];
NSString *result = [formatter stringFromNumber:decimalNumber];
[formatter release];
return result;
}
+ (NSString *)penceToDollars:(NSString *)pence {
if (pence == nil) {
return @"$0.00";
}
NSDecimalNumber *penceNumber =
[NSDecimalNumber decimalNumberWithString:pence];
NSDecimalNumber *dollars =
[penceNumber decimalNumberByDividingBy:
[NSDecimalNumber decimalNumberWithString:@"100"]];
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setMinimumFractionDigits:2];
NSString *result = [formatter stringFromNumber:dollars];
[formatter release];
return result;
}
+ (NSString *)dollarsToPence:(NSString *)dollars {
if (dollars == nil) {
return @"$0.00";
}
NSDecimalNumber *dollarsNumber =
[NSDecimalNumber decimalNumberWithString:dollars];
NSDecimalNumber *pence =
[dollarsNumber decimalNumberByMultiplyingBy:
[NSDecimalNumber decimalNumberWithString:@"100"]];
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
NSString *result = [formatter stringFromNumber:pence];
[formatter release];
return result;
}
+ (UIBarButtonItem *)newCancelButton:(id)target {
return [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemCancel
target:target
action:@selector(cancel)];
}
+ (UIBarButtonItem *)newSaveButton:(id)target {
return [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemSave
target:target
action:@selector(save)];
}
+ (UITextField *)newTableCellTextField:(id)delegate {
UITextField *textField =
[[UITextField alloc] initWithFrame:CGRectMake(10, 10, 250, 25)];
textField.font = [UIFont systemFontOfSize:16];
textField.delegate = delegate;
textField.returnKeyType = UIReturnKeyDone;
textField.clearsOnBeginEditing = NO;
return textField;
}
+ (void)showAlert:(NSString *)title withMessage:(NSString *)message {
UIAlertView *alert =
[[UIAlertView alloc] initWithTitle:title
message:message
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
}
+ (void)showAlertWithError:(NSError *)error {
NSString *message =
[NSString stringWithFormat:@"Sorry, %@", [error localizedDescription]];
[self showAlert:@"Error" withMessage:message];
}
+ (void)handleRemoteError:(NSError *)error {
if ([error code] == 401) {
[self showAlert:@"Login Failed"
withMessage:@"Please check your username and password, and try again."];
} else {
[self showAlertWithError:error];
}
}
@end