-
Notifications
You must be signed in to change notification settings - Fork 28
Expand file tree
/
Copy pathUIImage+Paystack.m
More file actions
96 lines (80 loc) · 2.98 KB
/
UIImage+Paystack.m
File metadata and controls
96 lines (80 loc) · 2.98 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
//
// UIImage+Paystack.m
// Paystack
//
#import "UIImage+Paystack.h"
#define FAUXPAS_IGNORED_IN_METHOD(...)
// Dummy class for locating the framework bundle
@interface PSTCKBundleLocator : NSObject
@end
@implementation PSTCKBundleLocator
@end
@implementation UIImage (Paystack)
+ (UIImage *)pstck_amexCardImage {
return [UIImage pstck_brandImageForCardBrand:PSTCKCardBrandAmex];
}
+ (UIImage *)pstck_dinersClubCardImage {
return [UIImage pstck_brandImageForCardBrand:PSTCKCardBrandDinersClub];
}
+ (UIImage *)pstck_discoverCardImage {
return [UIImage pstck_brandImageForCardBrand:PSTCKCardBrandDiscover];
}
+ (UIImage *)pstck_jcbCardImage {
return [UIImage pstck_brandImageForCardBrand:PSTCKCardBrandJCB];
}
+ (UIImage *)pstck_masterCardCardImage {
return [UIImage pstck_brandImageForCardBrand:PSTCKCardBrandMasterCard];
}
+ (UIImage *)pstck_visaCardImage {
return [UIImage pstck_brandImageForCardBrand:PSTCKCardBrandVisa];
}
+ (UIImage *)pstck_unknownCardCardImage {
return [UIImage pstck_brandImageForCardBrand:PSTCKCardBrandUnknown];
}
+ (UIImage *)pstck_brandImageForCardBrand:(PSTCKCardBrand)brand {
FAUXPAS_IGNORED_IN_METHOD(APIAvailability);
NSString *imageName;
BOOL templateSupported = [[UIImage new] respondsToSelector:@selector(imageWithRenderingMode:)];
switch (brand) {
case PSTCKCardBrandAmex:
imageName = @"pstck_card_amex";
break;
case PSTCKCardBrandDinersClub:
imageName = @"pstck_card_diners";
break;
case PSTCKCardBrandDiscover:
imageName = @"pstck_card_discover";
break;
case PSTCKCardBrandJCB:
imageName = @"pstck_card_jcb";
break;
case PSTCKCardBrandMasterCard:
imageName = @"pstck_card_mastercard";
break;
case PSTCKCardBrandVerve:
imageName = @"pstck_card_verve";
break;
case PSTCKCardBrandUnknown:
imageName = templateSupported ? @"pstck_card_placeholder_template" : @"pstck_card_placeholder";
break;
case PSTCKCardBrandVisa:
imageName = @"pstck_card_visa";
}
UIImage *image = [UIImage pstck_safeImageNamed:imageName];
if (brand == PSTCKCardBrandUnknown && templateSupported) {
image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
}
return image;
}
+ (UIImage *)pstck_cvcImageForCardBrand:(PSTCKCardBrand)brand {
NSString *imageName = brand == PSTCKCardBrandAmex ? @"pstck_card_cvc_amex" : @"pstck_card_cvc";
return [UIImage pstck_safeImageNamed:imageName];
}
+ (UIImage *)pstck_safeImageNamed:(NSString *)imageName {
if ([[UIImage class] respondsToSelector:@selector(imageNamed:inBundle:compatibleWithTraitCollection:)]) {
return [UIImage imageNamed:imageName inBundle:[NSBundle bundleForClass:[PSTCKBundleLocator class]] compatibleWithTraitCollection:nil];
}
return [UIImage imageNamed:imageName];
}
@end
void linkUIImageCategory(void){}