| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282 |
- #import "BTUIKViewUtil.h"
- #import "BTUIKMasterCardVectorArtView.h"
- #import "BTUIKJCBVectorArtView.h"
- #import "BTUIKMaestroVectorArtView.h"
- #import "BTUIKVisaVectorArtView.h"
- #import "BTUIKDiscoverVectorArtView.h"
- #import "BTUIKUnknownCardVectorArtView.h"
- #import "BTUIKDinersClubVectorArtView.h"
- #import "BTUIKAmExVectorArtView.h"
- #import "BTUIKPayPalMonogramCardView.h"
- #import "BTUIKCoinbaseMonogramCardView.h"
- #import "BTUIKVenmoMonogramCardView.h"
- #import "BTUIKUnionPayVectorArtView.h"
- #import "BTUIKHipercardVectorArtView.h"
- #import "BTUIKHiperVectorArtView.h"
- #import "BTUIKApplePayMarkVectorArtView.h"
- #import "BTUIKLargeMasterCardVectorArtView.h"
- #import "BTUIKLargeJCBVectorArtView.h"
- #import "BTUIKLargeMaestroVectorArtView.h"
- #import "BTUIKLargeVisaVectorArtView.h"
- #import "BTUIKLargeDiscoverVectorArtView.h"
- #import "BTUIKLargeUnknownCardVectorArtView.h"
- #import "BTUIKLargeDinersClubVectorArtView.h"
- #import "BTUIKLargeAmExVectorArtView.h"
- #import "BTUIKLargePayPalMonogramCardView.h"
- #import "BTUIKLargeCoinbaseMonogramCardView.h"
- #import "BTUIKLargeVenmoMonogramCardView.h"
- #import "BTUIKLargeUnionPayVectorArtView.h"
- #import "BTUIKLargeHiperVectorArtView.h"
- #import "BTUIKLargeHipercardVectorArtView.h"
- #import "BTUIKLargeApplePayMarkVectorArtView.h"
- #import "BTUIKCVVBackVectorArtView.h"
- #import "BTUIKCVVFrontVectorArtView.h"
- @import AudioToolbox;
- @implementation BTUIKViewUtil
- + (BTUIKPaymentOptionType)paymentMethodTypeForCardType:(BTUIKCardType *)cardType {
- if (cardType == nil) {
- return BTUIKPaymentOptionTypeUnknown;
- }
- if ([cardType.brand isEqualToString:BTUIKLocalizedString(CARD_TYPE_AMERICAN_EXPRESS)]) {
- return BTUIKPaymentOptionTypeAMEX;
- } else if ([cardType.brand isEqualToString:BTUIKLocalizedString(CARD_TYPE_VISA)]) {
- return BTUIKPaymentOptionTypeVisa;
- } else if ([cardType.brand isEqualToString:BTUIKLocalizedString(CARD_TYPE_MASTER_CARD)]) {
- return BTUIKPaymentOptionTypeMasterCard;
- } else if ([cardType.brand isEqualToString:BTUIKLocalizedString(CARD_TYPE_DISCOVER)]) {
- return BTUIKPaymentOptionTypeDiscover;
- } else if ([cardType.brand isEqualToString:BTUIKLocalizedString(CARD_TYPE_JCB)]) {
- return BTUIKPaymentOptionTypeJCB;
- } else if ([cardType.brand isEqualToString:BTUIKLocalizedString(CARD_TYPE_MAESTRO)]) {
- return BTUIKPaymentOptionTypeMaestro;
- } else if ([cardType.brand isEqualToString:BTUIKLocalizedString(CARD_TYPE_DINERS_CLUB)]) {
- return BTUIKPaymentOptionTypeDinersClub;
- } else if ([cardType.brand isEqualToString:BTUIKLocalizedString(CARD_TYPE_UNION_PAY)]) {
- return BTUIKPaymentOptionTypeUnionPay;
- } else if ([cardType.brand isEqualToString:BTUIKLocalizedString(CARD_TYPE_HIPER)]) {
- return BTUIKPaymentOptionTypeHiper;
- } else if ([cardType.brand isEqualToString:BTUIKLocalizedString(CARD_TYPE_HIPERCARD)]) {
- return BTUIKPaymentOptionTypeHipercard;
- } else {
- return BTUIKPaymentOptionTypeUnknown;
- }
- }
- + (NSString *)nameForPaymentMethodType:(BTUIKPaymentOptionType)paymentMethodType {
- switch (paymentMethodType) {
- case BTUIKPaymentOptionTypeUnknown:
- return BTUIKLocalizedString(CARD_TYPE_GENERIC_CARD);
- case BTUIKPaymentOptionTypeAMEX:
- return BTUIKLocalizedString(CARD_TYPE_AMERICAN_EXPRESS);
- case BTUIKPaymentOptionTypeDinersClub:
- return BTUIKLocalizedString(CARD_TYPE_DINERS_CLUB);
- case BTUIKPaymentOptionTypeDiscover:
- return BTUIKLocalizedString(CARD_TYPE_DISCOVER);
- case BTUIKPaymentOptionTypeMasterCard:
- return BTUIKLocalizedString(CARD_TYPE_MASTER_CARD);
- case BTUIKPaymentOptionTypeVisa:
- return BTUIKLocalizedString(CARD_TYPE_VISA);
- case BTUIKPaymentOptionTypeJCB:
- return BTUIKLocalizedString(CARD_TYPE_JCB);
- case BTUIKPaymentOptionTypeLaser:
- return BTUIKLocalizedString(CARD_TYPE_GENERIC_CARD);
- case BTUIKPaymentOptionTypeMaestro:
- return BTUIKLocalizedString(CARD_TYPE_MAESTRO);
- case BTUIKPaymentOptionTypeUnionPay:
- return BTUIKLocalizedString(CARD_TYPE_UNION_PAY);
- case BTUIKPaymentOptionTypeHiper:
- return BTUIKLocalizedString(CARD_TYPE_HIPER);
- case BTUIKPaymentOptionTypeHipercard:
- return BTUIKLocalizedString(CARD_TYPE_HIPERCARD);
- case BTUIKPaymentOptionTypeSolo:
- return BTUIKLocalizedString(CARD_TYPE_GENERIC_CARD);
- case BTUIKPaymentOptionTypeSwitch:
- return BTUIKLocalizedString(CARD_TYPE_GENERIC_CARD);
- case BTUIKPaymentOptionTypeUKMaestro:
- return BTUIKLocalizedString(CARD_TYPE_MAESTRO);
- case BTUIKPaymentOptionTypePayPal:
- return BTUIKLocalizedString(PAYPAL);
- case BTUIKPaymentOptionTypeCoinbase:
- return BTUIKLocalizedString(BRANDING_COINBASE);
- case BTUIKPaymentOptionTypeVenmo:
- return BTUIKLocalizedString(BRANDING_VENMO);
- case BTUIKPaymentOptionTypeApplePay:
- return BTUIKLocalizedString(BRANDING_APPLE_PAY);
- }
- }
- + (void)vibrate {
- AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);
- }
- #pragma mark Icons
- + (BTUIKPaymentOptionType)paymentOptionTypeForPaymentInfoType:(NSString *)typeString {
- if ([typeString isEqualToString:@"Visa"]) {
- return BTUIKPaymentOptionTypeVisa;
- } else if ([typeString isEqualToString:@"MasterCard"]) {
- return BTUIKPaymentOptionTypeMasterCard;
- } else if ([typeString isEqualToString:@"Coinbase"]) {
- return BTUIKPaymentOptionTypeCoinbase;
- } else if ([typeString isEqualToString:@"PayPal"]) {
- return BTUIKPaymentOptionTypePayPal;
- } else if ([typeString isEqualToString:@"DinersClub"]) {
- return BTUIKPaymentOptionTypeDinersClub;
- } else if ([typeString isEqualToString:@"JCB"]) {
- return BTUIKPaymentOptionTypeJCB;
- } else if ([typeString isEqualToString:@"Maestro"]) {
- return BTUIKPaymentOptionTypeMaestro;
- } else if ([typeString isEqualToString:@"Discover"]) {
- return BTUIKPaymentOptionTypeDiscover;
- } else if ([typeString isEqualToString:@"UKMaestro"]) {
- return BTUIKPaymentOptionTypeUKMaestro;
- } else if ([typeString isEqualToString:@"AMEX"] || [typeString isEqualToString:@"American Express"]) {
- return BTUIKPaymentOptionTypeAMEX;
- } else if ([typeString isEqualToString:@"Solo"]) {
- return BTUIKPaymentOptionTypeSolo;
- } else if ([typeString isEqualToString:@"Laser"]) {
- return BTUIKPaymentOptionTypeLaser;
- } else if ([typeString isEqualToString:@"Switch"]) {
- return BTUIKPaymentOptionTypeSwitch;
- } else if ([typeString isEqualToString:@"UnionPay"]) {
- return BTUIKPaymentOptionTypeUnionPay;
- } else if ([typeString isEqualToString:@"Hiper"]) {
- return BTUIKPaymentOptionTypeHiper;
- } else if ([typeString isEqualToString:@"Hipercard"]) {
- return BTUIKPaymentOptionTypeHipercard;
- } else if ([typeString isEqualToString:@"Venmo"]) {
- return BTUIKPaymentOptionTypeVenmo;
- } else if ([typeString isEqualToString:@"ApplePay"]) {
- return BTUIKPaymentOptionTypeApplePay;
- } else {
- return BTUIKPaymentOptionTypeUnknown;
- }
- }
- + (BOOL)isPaymentOptionTypeACreditCard:(BTUIKPaymentOptionType)paymentOptionType {
- switch(paymentOptionType) {
- case BTUIKPaymentOptionTypeVisa:
- case BTUIKPaymentOptionTypeMasterCard:
- case BTUIKPaymentOptionTypeDinersClub:
- case BTUIKPaymentOptionTypeJCB:
- case BTUIKPaymentOptionTypeMaestro:
- case BTUIKPaymentOptionTypeDiscover:
- case BTUIKPaymentOptionTypeUKMaestro:
- case BTUIKPaymentOptionTypeAMEX:
- case BTUIKPaymentOptionTypeSolo:
- case BTUIKPaymentOptionTypeLaser:
- case BTUIKPaymentOptionTypeSwitch:
- case BTUIKPaymentOptionTypeUnionPay:
- case BTUIKPaymentOptionTypeHiper:
- case BTUIKPaymentOptionTypeHipercard:
- return YES;
- default:
- return NO;
- }
- }
- + (BTUIKVectorArtView *)vectorArtViewForPaymentInfoType:(NSString *)typeString {
- return [self vectorArtViewForPaymentOptionType:[self.class paymentOptionTypeForPaymentInfoType:typeString]];
- }
- + (BTUIKVectorArtView *)vectorArtViewForPaymentOptionType:(BTUIKPaymentOptionType)type {
- return [self vectorArtViewForPaymentOptionType:type size:BTUIKVectorArtSizeRegular];
- }
- + (BTUIKVectorArtView *)vectorArtViewForPaymentOptionType:(BTUIKPaymentOptionType)type size:(BTUIKVectorArtSize)size {
- switch (type) {
- case BTUIKPaymentOptionTypeVisa:
- return size == BTUIKVectorArtSizeRegular ? [BTUIKVisaVectorArtView new] : [BTUIKLargeVisaVectorArtView new];
- case BTUIKPaymentOptionTypeMasterCard:
- return size == BTUIKVectorArtSizeRegular ? [BTUIKMasterCardVectorArtView new] : [BTUIKLargeMasterCardVectorArtView new];
- case BTUIKPaymentOptionTypeCoinbase:
- return size == BTUIKVectorArtSizeRegular ? [BTUIKCoinbaseMonogramCardView new] : [BTUIKLargeCoinbaseMonogramCardView new];
- case BTUIKPaymentOptionTypePayPal:
- return size == BTUIKVectorArtSizeRegular ? [BTUIKPayPalMonogramCardView new] : [BTUIKLargePayPalMonogramCardView new];
- case BTUIKPaymentOptionTypeDinersClub:
- return size == BTUIKVectorArtSizeRegular ? [BTUIKDinersClubVectorArtView new] : [BTUIKLargeDinersClubVectorArtView new];
- case BTUIKPaymentOptionTypeJCB:
- return size == BTUIKVectorArtSizeRegular ? [BTUIKJCBVectorArtView new] : [BTUIKLargeJCBVectorArtView new];
- case BTUIKPaymentOptionTypeMaestro:
- return size == BTUIKVectorArtSizeRegular ? [BTUIKMaestroVectorArtView new] : [BTUIKLargeMaestroVectorArtView new];
- case BTUIKPaymentOptionTypeDiscover:
- return size == BTUIKVectorArtSizeRegular ? [BTUIKDiscoverVectorArtView new] : [BTUIKLargeDiscoverVectorArtView new];
- case BTUIKPaymentOptionTypeUKMaestro:
- return size == BTUIKVectorArtSizeRegular ? [BTUIKMaestroVectorArtView new] : [BTUIKLargeMaestroVectorArtView new];
- case BTUIKPaymentOptionTypeAMEX:
- return size == BTUIKVectorArtSizeRegular ? [BTUIKAmExVectorArtView new] : [BTUIKLargeAmExVectorArtView new];
- case BTUIKPaymentOptionTypeVenmo:
- return size == BTUIKVectorArtSizeRegular ? [BTUIKVenmoMonogramCardView new] : [BTUIKLargeVenmoMonogramCardView new];
- case BTUIKPaymentOptionTypeUnionPay:
- return size == BTUIKVectorArtSizeRegular ? [BTUIKUnionPayVectorArtView new] : [BTUIKLargeUnionPayVectorArtView new];
- case BTUIKPaymentOptionTypeHiper:
- return size == BTUIKVectorArtSizeRegular ? [BTUIKHiperVectorArtView new] : [BTUIKLargeHiperVectorArtView new];
- case BTUIKPaymentOptionTypeHipercard:
- return size == BTUIKVectorArtSizeRegular ? [BTUIKHipercardVectorArtView new] : [BTUIKLargeHipercardVectorArtView new];
- case BTUIKPaymentOptionTypeApplePay:
- // No large apple pay
- return [BTUIKApplePayMarkVectorArtView new];
- case BTUIKPaymentOptionTypeSolo:
- case BTUIKPaymentOptionTypeLaser:
- case BTUIKPaymentOptionTypeSwitch:
- case BTUIKPaymentOptionTypeUnknown:
- return size == BTUIKVectorArtSizeRegular ? [BTUIKUnknownCardVectorArtView new] : [BTUIKLargeUnknownCardVectorArtView new];
- }
- }
- + (BTUIKVectorArtView *)vectorArtViewForVisualAssetType:(BTUIKVisualAssetType)type {
- switch (type) {
- case BTUIKVisualAssetTypeCVVFront:
- return [BTUIKCVVFrontVectorArtView new];
- case BTUIKVisualAssetTypeCVVBack:
- return [BTUIKCVVBackVectorArtView new];
- case BTUIKVisualAssetTypeUnknown:
- return [BTUIKVectorArtView new];
- }
- }
- + (BOOL)isLanguageLayoutDirectionRightToLeft {
- return [UIApplication sharedApplication].userInterfaceLayoutDirection == UIUserInterfaceLayoutDirectionRightToLeft;
- }
- + (NSTextAlignment)naturalTextAlignment {
- return [self isLanguageLayoutDirectionRightToLeft] ? NSTextAlignmentRight : NSTextAlignmentLeft;
- }
- + (NSTextAlignment)naturalTextAlignmentInverse {
- return [self isLanguageLayoutDirectionRightToLeft] ? NSTextAlignmentLeft : NSTextAlignmentRight;
- }
- + (UIWindowScene *)activeWindowScene API_AVAILABLE(ios(13.0)) {
- for (UIScene *scene in UIApplication.sharedApplication.connectedScenes) {
- if (scene.activationState == UISceneActivationStateForegroundActive) {
- return (UIWindowScene *)scene;
- }
- }
- return nil;
- }
- + (BOOL)isOrientationLandscape {
- if (@available(iOS 13, *)) {
- return UIInterfaceOrientationIsLandscape([self activeWindowScene].interfaceOrientation);
- } else {
- return UIInterfaceOrientationIsLandscape(UIApplication.sharedApplication.statusBarOrientation);
- }
- }
- + (CGFloat)statusBarHeight {
- if (@available(iOS 13, *)) {
- return CGRectGetHeight([self activeWindowScene].statusBarManager.statusBarFrame);
- } else {
- return CGRectGetHeight(UIApplication.sharedApplication.statusBarFrame);
- }
- }
- @end
|