diff --git a/Classes/BITAppStoreHeader.h b/Classes/BITAppStoreHeader.h index b08ada493c..19b1033663 100644 --- a/Classes/BITAppStoreHeader.h +++ b/Classes/BITAppStoreHeader.h @@ -35,26 +35,10 @@ #define __IPHONE_6_1 60100 #endif - -/** - * Header style depending on the iOS version - */ -typedef NS_ENUM(NSUInteger, BITAppStoreHeaderStyle) { - /** - * Default is iOS 6 style - */ - BITAppStoreHeaderStyleDefault = 0, - /** - * Draw header in the iOS 7 style - */ - BITAppStoreHeaderStyleOS7 = 1 -}; - @interface BITAppStoreHeader : UIView @property (nonatomic, copy) NSString *headerText; @property (nonatomic, copy) NSString *subHeaderText; @property (nonatomic, strong) UIImage *iconImage; -@property (nonatomic, assign) BITAppStoreHeaderStyle style; @end diff --git a/Classes/BITAppStoreHeader.m b/Classes/BITAppStoreHeader.m index f9a487e092..1d1a9bbdc5 100644 --- a/Classes/BITAppStoreHeader.m +++ b/Classes/BITAppStoreHeader.m @@ -60,7 +60,6 @@ if ((self = [super initWithFrame:frame])) { self.autoresizingMask = UIViewAutoresizingFlexibleWidth; self.backgroundColor = kWhiteBackgroundColorDefault; - self.style = BITAppStoreHeaderStyleDefault; } return self; } @@ -70,25 +69,14 @@ - (void)drawRect:(CGRect)rect { CGRect bounds = self.bounds; - CGContextRef context = UIGraphicsGetCurrentContext(); - - if (self.style == BITAppStoreHeaderStyleDefault) { - // draw the gradient - NSArray *colors = [NSArray arrayWithObjects:(id)kDarkGrayColor.CGColor, (id)kLightGrayColor.CGColor, nil]; - CGGradientRef gradient = CGGradientCreateWithColors(CGColorGetColorSpace((__bridge CGColorRef)[colors objectAtIndex:0]), (__bridge CFArrayRef)colors, (CGFloat[2]){0, 1}); - CGPoint top = CGPointMake(CGRectGetMidX(bounds), bounds.size.height - 3); - CGPoint bottom = CGPointMake(CGRectGetMidX(bounds), CGRectGetMaxY(bounds)); - CGContextDrawLinearGradient(context, gradient, top, bottom, 0); - CGGradientRelease(gradient); - } else { - // draw the line - CGContextRef ctx = UIGraphicsGetCurrentContext(); - CGContextSetLineWidth(ctx, 1.0); - CGContextSetStrokeColorWithColor(ctx, kDarkGrayColor.CGColor); - CGContextMoveToPoint(ctx, 0, CGRectGetMaxY(bounds)); - CGContextAddLineToPoint( ctx, CGRectGetMaxX(bounds), CGRectGetMaxY(bounds)); - CGContextStrokePath(ctx); - } + + // draw the line + CGContextRef ctx = UIGraphicsGetCurrentContext(); + CGContextSetLineWidth(ctx, 1.0); + CGContextSetStrokeColorWithColor(ctx, kDarkGrayColor.CGColor); + CGContextMoveToPoint(ctx, 0, CGRectGetMaxY(bounds)); + CGContextAddLineToPoint( ctx, CGRectGetMaxX(bounds), CGRectGetMaxY(bounds)); + CGContextStrokePath(ctx); // icon [_iconImage drawAtPoint:CGPointMake(kImageLeftMargin, kImageTopMargin)]; @@ -98,8 +86,7 @@ - (void)layoutSubviews { - if (self.style == BITAppStoreHeaderStyleOS7) - self.backgroundColor = kWhiteBackgroundColorOS7; + self.backgroundColor = kWhiteBackgroundColorOS7; [super layoutSubviews]; @@ -151,10 +138,7 @@ // scale, make borders and reflection _iconImage = bit_imageToFitSize(anIconImage, CGSizeMake(kImageHeight, kImageHeight), YES); - CGFloat radius = kImageBorderRadius; - if (self.style == BITAppStoreHeaderStyleOS7) - radius = kImageBorderRadiusiOS7; - _iconImage = bit_roundedCornerImage(_iconImage, radius, 0.0); + _iconImage = bit_roundedCornerImage(_iconImage, kImageBorderRadiusiOS7, 0.0); [self setNeedsDisplay]; } diff --git a/Classes/BITFeedbackListViewCell.h b/Classes/BITFeedbackListViewCell.h index 8ac0da722b..f8947a50ec 100644 --- a/Classes/BITFeedbackListViewCell.h +++ b/Classes/BITFeedbackListViewCell.h @@ -39,21 +39,6 @@ @end - -/** - * Cell style depending on the iOS version - */ -typedef NS_ENUM(NSUInteger, BITFeedbackListViewCellPresentationStyle) { - /** - * Default is iOS 6 style - */ - BITFeedbackListViewCellPresentationStyleDefault = 0, - /** - * Draw cells in the iOS 7 style - */ - BITFeedbackListViewCellPresentationStyleOS7 = 1 -}; - /** * Cell background style */ @@ -73,8 +58,6 @@ typedef NS_ENUM(NSUInteger, BITFeedbackListViewCellBackgroundStyle) { @property (nonatomic, strong) BITFeedbackMessage *message; -@property (nonatomic) BITFeedbackListViewCellPresentationStyle style; - @property (nonatomic) BITFeedbackListViewCellBackgroundStyle backgroundStyle; @property (nonatomic, strong) BITAttributedLabel *labelText; diff --git a/Classes/BITFeedbackListViewCell.m b/Classes/BITFeedbackListViewCell.m index e04b076fde..9f0eaaff60 100644 --- a/Classes/BITFeedbackListViewCell.m +++ b/Classes/BITFeedbackListViewCell.m @@ -88,7 +88,6 @@ if (self) { // Initialization code _backgroundStyle = BITFeedbackListViewCellBackgroundStyleNormal; - _style = BITFeedbackListViewCellPresentationStyleDefault; _message = nil; @@ -164,17 +163,9 @@ - (UIColor *)backgroundColor { if (self.backgroundStyle == BITFeedbackListViewCellBackgroundStyleNormal) { - if (self.style == BITFeedbackListViewCellPresentationStyleDefault) { - return BACKGROUNDCOLOR_DEFAULT; - } else { - return BACKGROUNDCOLOR_DEFAULT_OS7; - } + return BACKGROUNDCOLOR_DEFAULT_OS7; } else { - if (self.style == BITFeedbackListViewCellPresentationStyleDefault) { - return BACKGROUNDCOLOR_ALTERNATE; - } else { - return BACKGROUNDCOLOR_ALTERNATE_OS7; - } + return BACKGROUNDCOLOR_ALTERNATE_OS7; } } @@ -274,9 +265,7 @@ self.accessoryBackgroundView.backgroundColor = [self backgroundColor]; } - if (self.style == BITFeedbackListViewCellPresentationStyleDefault) { - [self addSubview:self.accessoryBackgroundView]; - } else if (self.accessoryBackgroundView.superview){ + if (self.accessoryBackgroundView.superview){ [self.accessoryBackgroundView removeFromSuperview]; } self.contentView.backgroundColor = [self backgroundColor]; diff --git a/Classes/BITFeedbackListViewController.m b/Classes/BITFeedbackListViewController.m index e4d711bd37..710ca82777 100644 --- a/Classes/BITFeedbackListViewController.m +++ b/Classes/BITFeedbackListViewController.m @@ -138,19 +138,7 @@ self.tableView.dataSource = self; self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; [self.tableView setAutoresizingMask:UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth]; - if ([self.manager isPreiOS7Environment]) { - [self.tableView setBackgroundColor:[UIColor colorWithRed:0.82 green:0.84 blue:0.84 alpha:1]]; - [self.tableView setSeparatorColor:[UIColor colorWithRed:0.79 green:0.79 blue:0.79 alpha:1]]; - } else { - // [self.tableView setBackgroundColor:[UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1]]; - } - - if ([self.manager isPreiOS7Environment]) { - self.view.backgroundColor = DEFAULT_BACKGROUNDCOLOR; - } else { - // self.view.backgroundColor = DEFAULT_BACKGROUNDCOLOR_OS7; - } - + if ([UIRefreshControl class]) { self.refreshControl = [[UIRefreshControl alloc] init]; [self.refreshControl addTarget:self action:@selector(reloadList) forControlEvents:UIControlEventValueChanged]; @@ -488,17 +476,14 @@ } - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { - if (![self.manager isPreiOS7Environment]) { - if (section == 0) { - return 30; - } + if (section == 0) { + return 30; } - return [super tableView:tableView heightForHeaderInSection:section]; } - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { - if (![self.manager isPreiOS7Environment] && section == 0) { + if (section == 0) { UIView *containerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 30.0f)]; UILabel *textLabel = [[UILabel alloc] initWithFrame:CGRectMake(16.0f, 5.0f, self.view.frame.size.width - 32.0f, 25.0f)]; textLabel.text = [NSString stringWithFormat:BITHockeyLocalizedString(@"HockeyFeedbackListLastUpdated"), @@ -520,7 +505,7 @@ static NSString *ButtonBottomIdentifier = @"ButtonBottomCell"; static NSString *ButtonDeleteIdentifier = @"ButtonDeleteCell"; - if (indexPath.section == 0 && indexPath.row == 1 && ![self.manager isPreiOS7Environment]) { + if (indexPath.section == 0 && indexPath.row == 1) { UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:LastUpdateIdentifier]; if (!cell) { @@ -537,8 +522,6 @@ return cell; } else if (indexPath.section == 0 || indexPath.section >= 2) { - CGFloat topGap = 0.0f; - UITableViewCell *cell = nil; NSString *identifier = nil; @@ -559,49 +542,24 @@ cell.textLabel.font = [UIFont systemFontOfSize:14]; cell.textLabel.numberOfLines = 0; cell.accessoryType = UITableViewCellAccessoryNone; - - if ([self.manager isPreiOS7Environment]) { - cell.selectionStyle = UITableViewCellSelectionStyleNone; - } else { - cell.selectionStyle = UITableViewCellSelectionStyleGray; - } + cell.selectionStyle = UITableViewCellSelectionStyleGray; } // button NSString *titleString = nil; - SEL actionSelector = nil; UIColor *titleColor = BIT_RGBCOLOR(35, 111, 251); if ([self.view respondsToSelector:@selector(tintColor)]){ titleColor = self.view.tintColor; } - - UIButton *button = nil; - if ([self.manager isPreiOS7Environment]) { - button = [UIButton buttonWithType:UIButtonTypeCustom]; - button.autoresizingMask = UIViewAutoresizingFlexibleWidth; - UIImage *stretchableButton = [bit_imageNamed(@"buttonRoundedRegular.png", BITHOCKEYSDK_BUNDLE) stretchableImageWithLeftCapWidth:10 topCapHeight:0]; - UIImage *stretchableHighlightedButton = [bit_imageNamed(@"buttonRoundedRegularHighlighted.png", BITHOCKEYSDK_BUNDLE) stretchableImageWithLeftCapWidth:10 topCapHeight:0]; - [button setBackgroundImage:stretchableButton forState:UIControlStateNormal]; - [button setBackgroundImage:stretchableHighlightedButton forState:UIControlStateHighlighted]; - - [[button titleLabel] setShadowOffset:CGSizeMake(0, 1)]; - [[button titleLabel] setFont:[UIFont boldSystemFontOfSize:14.0]]; - - [button setTitleColor:BUTTON_TEXTCOLOR forState:UIControlStateNormal]; - [button setTitleShadowColor:BUTTON_TEXTCOLOR_SHADOW forState:UIControlStateNormal]; - } - + if (indexPath.section == 0) { - topGap = 22; if ([self.manager numberOfMessages] == 0) { titleString = BITHockeyLocalizedString(@"HockeyFeedbackListButtonWriteFeedback"); } else { titleString = BITHockeyLocalizedString(@"HockeyFeedbackListButtonWriteResponse"); } - actionSelector = @selector(newFeedbackAction:); } else if (indexPath.section == _userButtonSection) { - topGap = 6.0f; if ([self.manager requireUserName] == BITFeedbackUserDataElementRequired || ([self.manager requireUserName] == BITFeedbackUserDataElementOptional && [self.manager userName] != nil) ) { @@ -615,65 +573,14 @@ } else { titleString = BITHockeyLocalizedString(@"HockeyFeedbackListButtonUserDataSetEmail"); } - actionSelector = @selector(setUserDataAction:); } else { - topGap = 0.0f; - if ([self.manager isPreiOS7Environment]) { - [[button titleLabel] setShadowOffset:CGSizeMake(0, -1)]; - UIImage *stretchableDeleteButton = [bit_imageNamed(@"buttonRoundedDelete.png", BITHOCKEYSDK_BUNDLE) stretchableImageWithLeftCapWidth:10 topCapHeight:0]; - UIImage *stretchableDeleteHighlightedButton = [bit_imageNamed(@"buttonRoundedDeleteHighlighted.png", BITHOCKEYSDK_BUNDLE) stretchableImageWithLeftCapWidth:10 topCapHeight:0]; - [button setBackgroundImage:stretchableDeleteButton forState:UIControlStateNormal]; - [button setBackgroundImage:stretchableDeleteHighlightedButton forState:UIControlStateHighlighted]; - - [button setTitleColor:BUTTON_DELETE_TEXTCOLOR forState:UIControlStateNormal]; - [button setTitleShadowColor:BUTTON_DELETE_TEXTCOLOR_SHADOW forState:UIControlStateNormal]; - } - titleString = BITHockeyLocalizedString(@"HockeyFeedbackListButtonDeleteAllMessages"); titleColor = BIT_RGBCOLOR(251, 35, 35); - actionSelector = @selector(deleteAllMessagesAction:); } - - if ([self.manager isPreiOS7Environment]) { - if (titleString) - [button setTitle:titleString forState:UIControlStateNormal]; - if (actionSelector) - [button addTarget:self action:actionSelector forControlEvents:UIControlEventTouchUpInside]; - - [button setFrame: CGRectMake( 10.0f, topGap + 12.0f, cell.frame.size.width - 20.0f, 42.0f)]; - [cell addSubview:button]; - } else { - cell.textLabel.text = titleString; - cell.textLabel.textColor = titleColor; - } - - if ([self.manager isPreiOS7Environment]) { - // status label or shadow lines - if (indexPath.section == 0) { - UILabel *statusLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 6, cell.frame.size.width, 28)]; - - statusLabel.font = [UIFont systemFontOfSize:10]; - statusLabel.textColor = DEFAULT_TEXTCOLOR; - statusLabel.textAlignment = NSTextAlignmentCenter; - if ([self.manager isPreiOS7Environment]) { - statusLabel.backgroundColor = DEFAULT_BACKGROUNDCOLOR; - } else { - statusLabel.backgroundColor = DEFAULT_BACKGROUNDCOLOR_OS7; - } - statusLabel.autoresizingMask = UIViewAutoresizingFlexibleWidth; - - statusLabel.text = [NSString stringWithFormat:BITHockeyLocalizedString(@"HockeyFeedbackListLastUpdated"), - [self.manager lastCheck] ? [self.lastUpdateDateFormatter stringFromDate:[self.manager lastCheck]] : BITHockeyLocalizedString(@"HockeyFeedbackListNeverUpdated")]; - - [cell addSubview:statusLabel]; - } else if (indexPath.section == 2) { - UIView *lineView1 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, cell.frame.size.width, 1)]; - lineView1.backgroundColor = BORDER_COLOR; - lineView1.autoresizingMask = UIViewAutoresizingFlexibleWidth; - [cell addSubview:lineView1]; - } - } - + + cell.textLabel.text = titleString; + cell.textLabel.textColor = titleColor; + return cell; } else { BITFeedbackListViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; @@ -689,13 +596,7 @@ } else { cell.backgroundStyle = BITFeedbackListViewCellBackgroundStyleNormal; } - - if ([self.manager isPreiOS7Environment]) { - cell.style = BITFeedbackListViewCellPresentationStyleDefault; - } else { - cell.style = BITFeedbackListViewCellPresentationStyleOS7; - } - + BITFeedbackMessage *message = [self.manager messageAtIndex:indexPath.row]; cell.message = message; cell.labelText.delegate = self; @@ -733,10 +634,7 @@ } } - if ( - [self.manager isPreiOS7Environment] || - (![self.manager isPreiOS7Environment] && indexPath.row != 0) - ) { + if (indexPath.row != 0) { UIView *lineView1 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, cell.frame.size.width, 1)]; lineView1.backgroundColor = BORDER_COLOR; lineView1.autoresizingMask = UIViewAutoresizingFlexibleWidth; @@ -790,16 +688,10 @@ - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { if (indexPath.section == 0 ) { - if ([self.manager isPreiOS7Environment]) - return 87; - else - return 44; + return 44; } if (indexPath.section >= 2) { - if ([self.manager isPreiOS7Environment]) - return 65; - else - return 44; + return 44; } BITFeedbackMessage *message = [self.manager messageAtIndex:indexPath.row]; @@ -809,14 +701,12 @@ } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { - if (![self.manager isPreiOS7Environment]) { - if (indexPath.section == 0) { - [self newFeedbackAction:self]; - } else if (indexPath.section == _userButtonSection) { - [self setUserDataAction:self]; - } else if (indexPath.section == _deleteButtonSection) { - [self deleteAllMessagesAction:self]; - } + if (indexPath.section == 0) { + [self newFeedbackAction:self]; + } else if (indexPath.section == _userButtonSection) { + [self setUserDataAction:self]; + } else if (indexPath.section == _deleteButtonSection) { + [self deleteAllMessagesAction:self]; } } diff --git a/Classes/BITFeedbackManager.m b/Classes/BITFeedbackManager.m index 8c7de86928..d8d7e48776 100644 --- a/Classes/BITFeedbackManager.m +++ b/Classes/BITFeedbackManager.m @@ -209,11 +209,7 @@ typedef void (^BITLatestImageFetchCompletionBlock)(UIImage *_Nonnull latestImage } - (BITFeedbackListViewController *)feedbackListViewController:(BOOL)modal { - if ([self isPreiOS7Environment]) { - return [[BITFeedbackListViewController alloc] initWithModalStyle:modal]; - } else { - return [[BITFeedbackListViewController alloc] initWithStyle:UITableViewStyleGrouped modal:modal]; - } + return [[BITFeedbackListViewController alloc] initWithStyle:UITableViewStyleGrouped modal:modal]; } - (void)showFeedbackListView { @@ -1218,19 +1214,13 @@ typedef void (^BITLatestImageFetchCompletionBlock)(UIImage *_Nonnull latestImage } - (void)setObservationModeOnScreenshotEnabled:(BOOL)observationModeOnScreenshotEnabled { - if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1) { - // Enable/disable screenshot notification - if (observationModeOnScreenshotEnabled) { - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(screenshotNotificationReceived:) name:UIApplicationUserDidTakeScreenshotNotification object:nil]; - BITHockeyLogVerbose(@"Added observer for UIApplocationUserDidTakeScreenshotNotification."); - } else { - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationUserDidTakeScreenshotNotification object:nil]; - BITHockeyLogVerbose(@"Removed observer for UIApplocationUserDidTakeScreenshotNotification."); - } + // Enable/disable screenshot notification + if (observationModeOnScreenshotEnabled) { + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(screenshotNotificationReceived:) name:UIApplicationUserDidTakeScreenshotNotification object:nil]; + BITHockeyLogVerbose(@"Added observer for UIApplocationUserDidTakeScreenshotNotification."); } else { - if (observationModeOnScreenshotEnabled) { - BITHockeyLogWarning(@"BITFeedbackObservationModeOnScreenshot requires iOS 7 or later."); - } + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationUserDidTakeScreenshotNotification object:nil]; + BITHockeyLogVerbose(@"Removed observer for UIApplocationUserDidTakeScreenshotNotification."); } _observationModeOnScreenshotEnabled = observationModeOnScreenshotEnabled; diff --git a/Classes/BITHockeyBaseManager.m b/Classes/BITHockeyBaseManager.m index 7f0aacc710..db61a24fc1 100644 --- a/Classes/BITHockeyBaseManager.m +++ b/Classes/BITHockeyBaseManager.m @@ -57,13 +57,7 @@ - (instancetype)init { if ((self = [super init])) { _serverURL = BITHOCKEYSDK_URL; - - if ([self isPreiOS7Environment]) { - _barStyle = UIBarStyleBlackOpaque; - self.navigationBarTintColor = BIT_RGBCOLOR(25, 25, 25); - } else { - _barStyle = UIBarStyleDefault; - } + _barStyle = UIBarStyleDefault; _modalPresentationStyle = UIModalPresentationFormSheet; NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; @@ -94,10 +88,6 @@ return bit_encodeAppIdentifier(_appIdentifier); } -- (BOOL)isPreiOS7Environment { - return bit_isPreiOS7Environment(); -} - - (NSString *)getDevicePlatform { size_t size; sysctlbyname("hw.machine", NULL, &size, NULL, 0); @@ -184,10 +174,8 @@ navController.navigationBar.tintColor = self.navigationBarTintColor; } else { // in case of iOS 7 we overwrite the tint color on the navigation bar - if (![self isPreiOS7Environment]) { - if ([UIWindow instancesRespondToSelector:NSSelectorFromString(@"tintColor")]) { - [navController.navigationBar setTintColor:BIT_RGBCOLOR(0, 122, 255)]; - } + if ([UIWindow instancesRespondToSelector:NSSelectorFromString(@"tintColor")]) { + [navController.navigationBar setTintColor:BIT_RGBCOLOR(0, 122, 255)]; } } navController.modalPresentationStyle = modalPresentationStyle; diff --git a/Classes/BITHockeyBaseManagerPrivate.h b/Classes/BITHockeyBaseManagerPrivate.h index 8a3470f5bd..b65e16e6af 100644 --- a/Classes/BITHockeyBaseManagerPrivate.h +++ b/Classes/BITHockeyBaseManagerPrivate.h @@ -43,9 +43,6 @@ - (void)startManager; -/** Check if the device is running an iOS version previous to iOS 7 */ -- (BOOL)isPreiOS7Environment; - /** * by default, just logs the message * diff --git a/Classes/BITHockeyHelper.h b/Classes/BITHockeyHelper.h index f30b539128..ab11be4abf 100644 --- a/Classes/BITHockeyHelper.h +++ b/Classes/BITHockeyHelper.h @@ -57,10 +57,8 @@ NSString *bit_mainBundleIdentifier(void); NSString *bit_encodeAppIdentifier(NSString *inputString); NSString *bit_appIdentifierToGuid(NSString *appIdentifier); NSString *bit_appName(NSString *placeHolderString); -NSString *bit_UUIDPreiOS6(void); NSString *bit_UUID(void); NSString *bit_appAnonID(BOOL forceNewAnonID); -BOOL bit_isPreiOS7Environment(void); BOOL bit_isPreiOS8Environment(void); BOOL bit_isPreiOS10Environment(void); BOOL bit_isAppStoreReceiptSandbox(void); diff --git a/Classes/BITHockeyHelper.m b/Classes/BITHockeyHelper.m index 01487d8498..09b2318733 100644 --- a/Classes/BITHockeyHelper.m +++ b/Classes/BITHockeyHelper.m @@ -210,27 +210,8 @@ NSString *bit_appName(NSString *placeHolderString) { return appName; } -NSString *bit_UUIDPreiOS6(void) { - // Create a new UUID - CFUUIDRef uuidObj = CFUUIDCreate(nil); - - // Get the string representation of the UUID - NSString *resultUUID = (NSString*)CFBridgingRelease(CFUUIDCreateString(nil, uuidObj)); - CFRelease(uuidObj); - - return resultUUID; -} - NSString *bit_UUID(void) { - NSString *resultUUID = nil; - - if ([NSUUID class]) { - resultUUID = [[NSUUID UUID] UUIDString]; - } else { - resultUUID = bit_UUIDPreiOS6(); - } - - return resultUUID; + return [[NSUUID UUID] UUIDString]; } NSString *bit_appAnonID(BOOL forceNewAnonID) { @@ -283,26 +264,6 @@ NSString *bit_appAnonID(BOOL forceNewAnonID) { #pragma mark Environment detection -BOOL bit_isPreiOS7Environment(void) { - static BOOL isPreiOS7Environment = YES; - static dispatch_once_t checkOS; - - dispatch_once(&checkOS, ^{ - // NSFoundationVersionNumber_iOS_6_1 = 993.00 - // We hardcode this, so compiling with iOS 6 is possible while still being able to detect the correct environment - - // runtime check according to - // https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/TransitionGuide/SupportingEarlieriOS.html - if (floor(NSFoundationVersionNumber) <= 993.00) { - isPreiOS7Environment = YES; - } else { - isPreiOS7Environment = NO; - } - }); - - return isPreiOS7Environment; -} - BOOL bit_isPreiOS8Environment(void) { static BOOL isPreiOS8Environment = YES; static dispatch_once_t checkOS8; @@ -374,11 +335,6 @@ BITEnvironment bit_currentAppEnvironment(void) { return BITEnvironmentOther; } - // TestFlight is only supported from iOS 8 onwards, so at this point we have to be in the AppStore - if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) { - return BITEnvironmentAppStore; - } - if (bit_isAppStoreReceiptSandbox()) { return BITEnvironmentTestFlight; } @@ -462,26 +418,7 @@ NSString *bit_base64String(NSData * data, unsigned long length) { // Return ISO 8601 string representation of the date NSString *bit_utcDateString(NSDate *date){ static NSDateFormatter *dateFormatter; - - // NSDateFormatter is not thread-safe prior to iOS 7 - if (bit_isPreiOS7Environment()) { - NSMutableDictionary *threadDictionary = [NSThread currentThread].threadDictionary; - dateFormatter = threadDictionary[kBITUtcDateFormatter]; - - if (!dateFormatter) { - dateFormatter = [NSDateFormatter new]; - NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; - dateFormatter.locale = enUSPOSIXLocale; - dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"; - dateFormatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0]; - threadDictionary[kBITUtcDateFormatter] = dateFormatter; - } - - NSString *dateString = [dateFormatter stringFromDate:date]; - - return dateString; - } - + static dispatch_once_t dateFormatterToken; dispatch_once(&dateFormatterToken, ^{ NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; @@ -623,13 +560,9 @@ NSString *bit_validAppIconStringFromIcons(NSBundle *resourceBundle, NSArray *ico NSString *currentBestMatch = nil; float currentBestMatchHeight = 0; float bestMatchHeight = 0; - - if (bit_isPreiOS7Environment()) { - bestMatchHeight = useiPadIcon ? (useHighResIcon ? 144 : 72) : (useHighResIcon ? 114 : 57); - } else { - bestMatchHeight = useiPadIcon ? (useHighResIcon ? 152 : 76) : 120; - } - + + bestMatchHeight = useiPadIcon ? (useHighResIcon ? 152 : 76) : 120; + for(NSString *icon in icons) { // Don't use imageNamed, otherwise unit tests won't find the fixture icon // and using imageWithContentsOfFile doesn't load @2x files with absolut paths (required in tests) diff --git a/Classes/BITImageAnnotationViewController.m b/Classes/BITImageAnnotationViewController.m index ba24fe34fe..c4a5493d50 100644 --- a/Classes/BITImageAnnotationViewController.m +++ b/Classes/BITImageAnnotationViewController.m @@ -356,12 +356,7 @@ typedef NS_ENUM(NSInteger, BITImageAnnotationViewControllerInteractionMode) { if (self.navigationController.navigationBar.alpha == 0 || self.navigationController.navigationBarHidden ){ [UIView animateWithDuration:0.35f animations:^{ - - if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1) { - [self.navigationController setNavigationBarHidden:NO animated:NO]; - } else { - self.navigationController.navigationBar.alpha = 1.0; - } + [self.navigationController setNavigationBarHidden:NO animated:NO]; if ([self respondsToSelector:@selector(prefersStatusBarHidden)]) { [self setNeedsStatusBarAppearanceUpdate]; @@ -378,12 +373,7 @@ typedef NS_ENUM(NSInteger, BITImageAnnotationViewControllerInteractionMode) { }]; } else { [UIView animateWithDuration:0.35f animations:^{ - - if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1) { - [self.navigationController setNavigationBarHidden:YES animated:NO]; - } else { - self.navigationController.navigationBar.alpha = 0.0; - } + [self.navigationController setNavigationBarHidden:YES animated:NO]; if ([self respondsToSelector:@selector(prefersStatusBarHidden)]) { [self setNeedsStatusBarAppearanceUpdate]; diff --git a/Classes/BITStoreButton.h b/Classes/BITStoreButton.h index eb607814da..1d25cf8315 100644 --- a/Classes/BITStoreButton.h +++ b/Classes/BITStoreButton.h @@ -56,14 +56,10 @@ * Button style depending on the iOS version */ typedef NS_ENUM(NSUInteger, BITStoreButtonStyle) { - /** - * Default is iOS 6 style - */ - BITStoreButtonStyleDefault = 0, /** * Draw buttons in the iOS 7 style */ - BITStoreButtonStyleOS7 = 1 + BITStoreButtonStyleOS7 = 0 }; diff --git a/Classes/BITStoreButton.m b/Classes/BITStoreButton.m index 40f3484aeb..b19316c333 100644 --- a/Classes/BITStoreButton.m +++ b/Classes/BITStoreButton.m @@ -96,13 +96,9 @@ // show white or gray text, depending on the state if (self.buttonData.isEnabled) { - if (self.style == BITStoreButtonStyleDefault) { - [self setTitleColor:BIT_RGBCOLOR(106, 106, 106) forState:UIControlStateNormal]; - } else { - [self setTitleColor:BIT_RGBCOLOR(35, 111, 251) forState:UIControlStateNormal]; - [_defaultBorderLayer setHidden:NO]; - [_inActiveBorderLayer setHidden:YES]; - } + [self setTitleColor:BIT_RGBCOLOR(35, 111, 251) forState:UIControlStateNormal]; + [_defaultBorderLayer setHidden:NO]; + [_inActiveBorderLayer setHidden:YES]; } else { [self setTitleColor:BIT_RGBCOLOR(148, 150, 151) forState:UIControlStateNormal]; if (self.style == BITStoreButtonStyleOS7) { @@ -176,24 +172,9 @@ _customPadding = padding; _style = style; - if (style == BITStoreButtonStyleDefault) { - // main gradient layer - CAGradientLayer *gradient = [CAGradientLayer layer]; - gradient.colors = @[(id)BIT_RGBCOLOR(243, 243, 243).CGColor, (id)BIT_RGBCOLOR(222, 222, 222).CGColor]; - gradient.locations = @[[NSNumber numberWithFloat:0.0], [NSNumber numberWithFloat:1.0]]; - gradient.frame = CGRectMake(0.0, 0.0, CGRectGetWidth(frame), CGRectGetHeight(frame)); - gradient.cornerRadius = 2.5; - gradient.needsDisplayOnBoundsChange = YES; - [self.layer addSublayer:gradient]; - } - // border layers for more sex! _defaultBorderLayer = [CALayer layer]; - if (style == BITStoreButtonStyleDefault) { - _defaultBorderLayer.borderColor = [BIT_RGBCOLOR(191, 191, 191) CGColor]; - } else { _defaultBorderLayer.borderColor = [BIT_RGBCOLOR(35, 111, 251) CGColor]; - } _defaultBorderLayer.borderWidth = 1.0; _defaultBorderLayer.frame = CGRectMake(0.0, 0.0, CGRectGetWidth(frame), CGRectGetHeight(frame)); _defaultBorderLayer.cornerRadius = 2.5; diff --git a/Classes/BITUpdateManager.m b/Classes/BITUpdateManager.m index 7cc4605599..7256d6e62a 100644 --- a/Classes/BITUpdateManager.m +++ b/Classes/BITUpdateManager.m @@ -535,10 +535,7 @@ typedef NS_ENUM(NSInteger, BITUpdateAlertViewTag) { BITHockeyLogDebug(@"INFO: Update view already visible, aborting"); return; } - - if ([self isPreiOS7Environment]) - self.barStyle = UIBarStyleBlack; - + BITUpdateViewController *updateViewController = [self hockeyViewController:YES]; if ([self hasNewerMandatoryVersion] || [self expiryDateReached]) { [updateViewController setMandatoryUpdate: YES]; diff --git a/Classes/BITUpdateViewController.m b/Classes/BITUpdateViewController.m index 64f81d5687..a1f9be7042 100644 --- a/Classes/BITUpdateViewController.m +++ b/Classes/BITUpdateViewController.m @@ -66,11 +66,7 @@ #pragma mark - Private - (UIColor *)backgroundColor { - if ([self.updateManager isPreiOS7Environment]) { - return BIT_RGBCOLOR(235, 235, 235); - } else { - return BIT_RGBCOLOR(255, 255, 255); - } + return BIT_RGBCOLOR(255, 255, 255); } - (void)restoreStoreButtonStateAnimated:(BOOL)animated { @@ -119,10 +115,8 @@ tableViewContentHeight += [self tableView:self.tableView heightForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]]; } tableViewContentHeight += self.tableView.tableHeaderView.frame.size.height; - if (![self.updateManager isPreiOS7Environment]) { - tableViewContentHeight += self.navigationController.navigationBar.frame.size.height; - tableViewContentHeight += [UIApplication sharedApplication].statusBarFrame.size.height; - } + tableViewContentHeight += self.navigationController.navigationBar.frame.size.height; + tableViewContentHeight += [UIApplication sharedApplication].statusBarFrame.size.height; NSUInteger footerViewSize = kMinPreviousVersionButtonHeight; NSUInteger frameHeight = self.view.frame.size.height; @@ -235,11 +229,7 @@ if ([appVersion.notes length] > 0) { cell.webViewContent = [NSString stringWithFormat:@"
%@%@
%@
%@
", [appVersion versionString], installed, dateAndSizeString, appVersion.notes]; } else { - if ([self.updateManager isPreiOS7Environment]) { - cell.webViewContent = [NSString stringWithFormat:@"%@%@
%@
%@
", [appVersion versionString], installed, dateAndSizeString, [appVersion notesOrEmptyString]]; @@ -312,35 +302,16 @@ [self.tableView addSubview:topView]; _appStoreHeader = [[BITAppStoreHeader alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, kAppStoreViewHeight)]; - if ([self.updateManager isPreiOS7Environment]) { - _appStoreHeader.style = BITAppStoreHeaderStyleDefault; - } else { - _appStoreHeader.style = BITAppStoreHeaderStyleOS7; - } [self updateAppStoreHeader]; NSString *iconFilename = bit_validAppIconFilename([NSBundle mainBundle], [NSBundle mainBundle]); if (iconFilename) { - BOOL addGloss = YES; - NSNumber *prerendered = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"UIPrerenderedIcon"]; - if (prerendered) { - addGloss = ![prerendered boolValue]; - } - - if (addGloss && [self.updateManager isPreiOS7Environment]) { - _appStoreHeader.iconImage = [self addGlossToImage:[UIImage imageNamed:iconFilename]]; - } else { - _appStoreHeader.iconImage = [UIImage imageNamed:iconFilename]; - } + _appStoreHeader.iconImage = [UIImage imageNamed:iconFilename]; } self.tableView.tableHeaderView = _appStoreHeader; - BITStoreButtonStyle buttonStyle = BITStoreButtonStyleDefault; - if (![self.updateManager isPreiOS7Environment]) { - buttonStyle = BITStoreButtonStyleOS7; - } - BITStoreButton *storeButton = [[BITStoreButton alloc] initWithPadding:CGPointMake(5, 58) style:buttonStyle]; + BITStoreButton *storeButton = [[BITStoreButton alloc] initWithPadding:CGPointMake(5, 58) style:BITStoreButtonStyleOS7]; storeButton.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin; storeButton.buttonDelegate = self; [self.tableView.tableHeaderView addSubview:storeButton]; diff --git a/Support/HockeySDKTests/BITHockeyHelperTests.m b/Support/HockeySDKTests/BITHockeyHelperTests.m index b106c01068..b17692c148 100644 --- a/Support/HockeySDKTests/BITHockeyHelperTests.m +++ b/Support/HockeySDKTests/BITHockeyHelperTests.m @@ -73,12 +73,6 @@ assertThatBool([resultString isEqualToString:@"Placeholder"], isTrue()); } -- (void)testUUIDPreiOS6 { - NSString *resultString = bit_UUIDPreiOS6(); - assertThat(resultString, notNilValue()); - assertThatInteger([resultString length], equalToInteger(36)); -} - - (void)testUUID { NSString *resultString = bit_UUID(); assertThat(resultString, notNilValue());