mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-07-31 23:47:01 +00:00
Add support for minimum OS Version check
App versions that require a newer OS Version than the current device provides will be ignored.
This commit is contained in:
parent
484cca06dc
commit
43db55de17
@ -1,5 +1,6 @@
|
||||
/*
|
||||
* Author: Peter Steinberger
|
||||
* Andreas Linde
|
||||
*
|
||||
* Copyright (c) 2012-2013 HockeyApp, Bit Stadium GmbH.
|
||||
* Copyright (c) 2011 Andreas Linde, Peter Steinberger.
|
||||
@ -34,6 +35,7 @@
|
||||
@property (nonatomic, copy) NSString *name;
|
||||
@property (nonatomic, copy) NSString *version;
|
||||
@property (nonatomic, copy) NSString *shortVersion;
|
||||
@property (nonatomic, copy) NSString *minOSVersion;
|
||||
@property (nonatomic, copy) NSString *notes;
|
||||
@property (nonatomic, copy) NSDate *date;
|
||||
@property (nonatomic, copy) NSNumber *size;
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
* Author: Peter Steinberger
|
||||
* Andreas Linde
|
||||
*
|
||||
* Copyright (c) 2012-2013 HockeyApp, Bit Stadium GmbH.
|
||||
* Copyright (c) 2011 Andreas Linde, Peter Steinberger.
|
||||
@ -43,6 +44,7 @@
|
||||
appVersionMetaInfo.name = [dict objectForKey:@"title"];
|
||||
appVersionMetaInfo.version = [dict objectForKey:@"version"];
|
||||
appVersionMetaInfo.shortVersion = [dict objectForKey:@"shortversion"];
|
||||
appVersionMetaInfo.minOSVersion = [dict objectForKey:@"minimum_os_version"];
|
||||
[appVersionMetaInfo setDateWithTimestamp:[[dict objectForKey:@"timestamp"] doubleValue]];
|
||||
appVersionMetaInfo.size = [dict objectForKey:@"appsize"];
|
||||
appVersionMetaInfo.notes = [dict objectForKey:@"notes"];
|
||||
@ -106,6 +108,8 @@
|
||||
return NO;
|
||||
if (![self isEqualComparingString:self.shortVersion withString:anAppVersionMetaInfo.shortVersion])
|
||||
return NO;
|
||||
if (![self isEqualComparingString:self.minOSVersion withString:anAppVersionMetaInfo.minOSVersion])
|
||||
return NO;
|
||||
if (![self isEqualComparingString:self.notes withString:anAppVersionMetaInfo.notes])
|
||||
return NO;
|
||||
if (![self isEqualComparingDate:self.date withDate:anAppVersionMetaInfo.date])
|
||||
@ -126,6 +130,7 @@
|
||||
[encoder encodeObject:self.name forKey:@"name"];
|
||||
[encoder encodeObject:self.version forKey:@"version"];
|
||||
[encoder encodeObject:self.shortVersion forKey:@"shortVersion"];
|
||||
[encoder encodeObject:self.minOSVersion forKey:@"minOSVersion"];
|
||||
[encoder encodeObject:self.notes forKey:@"notes"];
|
||||
[encoder encodeObject:self.date forKey:@"date"];
|
||||
[encoder encodeObject:self.size forKey:@"size"];
|
||||
@ -139,6 +144,7 @@
|
||||
self.name = [decoder decodeObjectForKey:@"name"];
|
||||
self.version = [decoder decodeObjectForKey:@"version"];
|
||||
self.shortVersion = [decoder decodeObjectForKey:@"shortVersion"];
|
||||
self.minOSVersion = [decoder decodeObjectForKey:@"minOSVersion"];
|
||||
self.notes = [decoder decodeObjectForKey:@"notes"];
|
||||
self.date = [decoder decodeObjectForKey:@"date"];
|
||||
self.size = [decoder decodeObjectForKey:@"size"];
|
||||
@ -197,9 +203,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
// a valid app needs at least following properties: name, version, date
|
||||
|
||||
// A valid app needs at least following properties: name, version, date
|
||||
- (BOOL)isValid {
|
||||
BOOL valid = [self.name length] && [self.version length] && self.date;
|
||||
BOOL valid = [self.name length] && [self.version length] && self.date;
|
||||
return valid;
|
||||
}
|
||||
|
||||
|
@ -735,7 +735,17 @@ typedef NS_ENUM(NSInteger, BITUpdateAlertViewTag) {
|
||||
for (NSDictionary *dict in feedArray) {
|
||||
BITAppVersionMetaInfo *appVersionMetaInfo = [BITAppVersionMetaInfo appVersionMetaInfoFromDict:dict];
|
||||
if ([appVersionMetaInfo isValid]) {
|
||||
[tmpAppVersions addObject:appVersionMetaInfo];
|
||||
// check if minOSVersion is set and this device qualifies
|
||||
BOOL deviceOSVersionQualifies = YES;
|
||||
if ([appVersionMetaInfo minOSVersion]) {
|
||||
NSComparisonResult comparissonResult = bit_versionCompare(appVersionMetaInfo.minOSVersion, [[UIDevice currentDevice] systemVersion]);
|
||||
if (comparissonResult == NSOrderedDescending) {
|
||||
deviceOSVersionQualifies = NO;
|
||||
}
|
||||
}
|
||||
|
||||
if (deviceOSVersionQualifies)
|
||||
[tmpAppVersions addObject:appVersionMetaInfo];
|
||||
} else {
|
||||
[self reportError:[NSError errorWithDomain:kBITUpdateErrorDomain
|
||||
code:BITUpdateAPIServerReturnedInvalidData
|
||||
|
Loading…
x
Reference in New Issue
Block a user