|
|
@ -198,15 +198,6 @@ static NSString *mostRecentVersionInDict(NSDictionary *dictionary) |
|
|
|
return self; |
|
|
|
return self; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
- (id<iVersionDelegate>)delegate |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (_delegate == nil) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
_delegate = (id<iVersionDelegate>)[NSApplication sharedApplication].delegate; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return _delegate; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- (NSString *)inThisVersionTitle |
|
|
|
- (NSString *)inThisVersionTitle |
|
|
|
{ |
|
|
|
{ |
|
|
|
return _inThisVersionTitle ?: [self localizedStringForKey:iVersionInThisVersionTitleKey withDefault:@"New in this version"]; |
|
|
|
return _inThisVersionTitle ?: [self localizedStringForKey:iVersionInThisVersionTitleKey withDefault:@"New in this version"]; |
|
|
@ -433,18 +424,6 @@ static NSString *mostRecentVersionInDict(NSDictionary *dictionary) |
|
|
|
{ |
|
|
|
{ |
|
|
|
NSLog(@"iVersion update check failed because an unknown error occured"); |
|
|
|
NSLog(@"iVersion update check failed because an unknown error occured"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if ([self.delegate respondsToSelector:@selector(iVersionVersionCheckDidFailWithError:)]) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
[self.delegate iVersionVersionCheckDidFailWithError:self.downloadError]; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//deprecated code path |
|
|
|
|
|
|
|
else if ([self.delegate respondsToSelector:@selector(iVersionVersionCheckFailed:)]) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
NSLog(@"iVersionVersionCheckFailed: delegate method is deprecated, use iVersionVersionCheckDidFailWithError: instead"); |
|
|
|
|
|
|
|
[self.delegate performSelector:@selector(iVersionVersionCheckFailed:) withObject:self.downloadError]; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -453,36 +432,8 @@ static NSString *mostRecentVersionInDict(NSDictionary *dictionary) |
|
|
|
NSString *mostRecentVersion = mostRecentVersionInDict(self.remoteVersionsDict); |
|
|
|
NSString *mostRecentVersion = mostRecentVersionInDict(self.remoteVersionsDict); |
|
|
|
if (details) |
|
|
|
if (details) |
|
|
|
{ |
|
|
|
{ |
|
|
|
//inform delegate of new version |
|
|
|
|
|
|
|
if ([self.delegate respondsToSelector:@selector(iVersionDidDetectNewVersion:details:)]) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
[self.delegate iVersionDidDetectNewVersion:mostRecentVersion details:details]; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//deprecated code path |
|
|
|
|
|
|
|
else if ([self.delegate respondsToSelector:@selector(iVersionDetectedNewVersion:details:)]) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
NSLog(@"iVersionDetectedNewVersion:details: delegate method is deprecated, use iVersionDidDetectNewVersion:details: instead"); |
|
|
|
|
|
|
|
[self.delegate performSelector:@selector(iVersionDetectedNewVersion:details:) withObject:mostRecentVersion withObject:details]; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//check if ignored |
|
|
|
//check if ignored |
|
|
|
BOOL showDetails = ![self.ignoredVersion isEqualToString:mostRecentVersion] || self.previewMode; |
|
|
|
BOOL showDetails = ![self.ignoredVersion isEqualToString:mostRecentVersion] || self.previewMode; |
|
|
|
if (showDetails) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if ([self.delegate respondsToSelector:@selector(iVersionShouldDisplayNewVersion:details:)]) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
showDetails = [self.delegate iVersionShouldDisplayNewVersion:mostRecentVersion details:details]; |
|
|
|
|
|
|
|
if (!showDetails && self.verboseLogging) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
NSLog(@"iVersion did not display the new version because the iVersionShouldDisplayNewVersion:details: delegate method returned NO"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else if (self.verboseLogging) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
NSLog(@"iVersion did not display the new version because it was marked as ignored"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//show details |
|
|
|
//show details |
|
|
|
if (showDetails && !self.visibleRemoteAlert) |
|
|
|
if (showDetails && !self.visibleRemoteAlert) |
|
|
@ -500,10 +451,6 @@ static NSString *mostRecentVersionInDict(NSDictionary *dictionary) |
|
|
|
remindButton:[self showRemindButton]? self.remindButtonLabel: nil]; |
|
|
|
remindButton:[self showRemindButton]? self.remindButtonLabel: nil]; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else if ([self.delegate respondsToSelector:@selector(iVersionDidNotDetectNewVersion)]) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
[self.delegate iVersionDidNotDetectNewVersion]; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -541,17 +488,6 @@ static NSString *mostRecentVersionInDict(NSDictionary *dictionary) |
|
|
|
NSLog(@"iVersion debug mode is enabled - make sure you disable this for release"); |
|
|
|
NSLog(@"iVersion debug mode is enabled - make sure you disable this for release"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//confirm with delegate |
|
|
|
|
|
|
|
if ([self.delegate respondsToSelector:@selector(iVersionShouldCheckForNewVersion)]) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
BOOL shouldCheck = [self.delegate iVersionShouldCheckForNewVersion]; |
|
|
|
|
|
|
|
if (!shouldCheck && self.verboseLogging) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
NSLog(@"iVersion did not check for a new version because the iVersionShouldCheckForNewVersion delegate method returned NO"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return shouldCheck; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//perform the check |
|
|
|
//perform the check |
|
|
|
return YES; |
|
|
|
return YES; |
|
|
|
} |
|
|
|
} |
|
|
@ -767,10 +703,6 @@ static NSString *mostRecentVersionInDict(NSDictionary *dictionary) |
|
|
|
|
|
|
|
|
|
|
|
//get version details |
|
|
|
//get version details |
|
|
|
BOOL showDetails = !!self.versionDetails; |
|
|
|
BOOL showDetails = !!self.versionDetails; |
|
|
|
if (showDetails && [self.delegate respondsToSelector:@selector(iVersionShouldDisplayCurrentVersionDetails:)]) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
showDetails = [self.delegate iVersionShouldDisplayCurrentVersionDetails:self.versionDetails]; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//show details |
|
|
|
//show details |
|
|
|
if (showDetails && !self.visibleLocalAlert && !self.visibleRemoteAlert) |
|
|
|
if (showDetails && !self.visibleLocalAlert && !self.visibleRemoteAlert) |
|
|
@ -889,42 +821,17 @@ static NSString *mostRecentVersionInDict(NSDictionary *dictionary) |
|
|
|
{ |
|
|
|
{ |
|
|
|
//clear reminder |
|
|
|
//clear reminder |
|
|
|
self.lastReminded = nil; |
|
|
|
self.lastReminded = nil; |
|
|
|
|
|
|
|
|
|
|
|
//log event |
|
|
|
|
|
|
|
if ([self.delegate respondsToSelector:@selector(iVersionUserDidAttemptToDownloadUpdate:)]) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
[self.delegate iVersionUserDidAttemptToDownloadUpdate:latestVersion]; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (![self.delegate respondsToSelector:@selector(iVersionShouldOpenAppStore)] || |
|
|
|
|
|
|
|
[self.delegate iVersionShouldOpenAppStore]) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
//go to download page |
|
|
|
|
|
|
|
[self openAppPageInAppStore]; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
else if (buttonIndex == ignoreButtonIndex) |
|
|
|
else if (buttonIndex == ignoreButtonIndex) |
|
|
|
{ |
|
|
|
{ |
|
|
|
//ignore this version |
|
|
|
//ignore this version |
|
|
|
self.ignoredVersion = latestVersion; |
|
|
|
self.ignoredVersion = latestVersion; |
|
|
|
self.lastReminded = nil; |
|
|
|
self.lastReminded = nil; |
|
|
|
|
|
|
|
|
|
|
|
//log event |
|
|
|
|
|
|
|
if ([self.delegate respondsToSelector:@selector(iVersionUserDidIgnoreUpdate:)]) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
[self.delegate iVersionUserDidIgnoreUpdate:latestVersion]; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
else if (buttonIndex == remindButtonIndex) |
|
|
|
else if (buttonIndex == remindButtonIndex) |
|
|
|
{ |
|
|
|
{ |
|
|
|
//remind later |
|
|
|
//remind later |
|
|
|
self.lastReminded = [NSDate date]; |
|
|
|
self.lastReminded = [NSDate date]; |
|
|
|
|
|
|
|
|
|
|
|
//log event |
|
|
|
|
|
|
|
if ([self.delegate respondsToSelector:@selector(iVersionUserDidRequestReminderForUpdate:)]) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
[self.delegate iVersionUserDidRequestReminderForUpdate:latestVersion]; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//release alert |
|
|
|
//release alert |
|
|
|