mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-08-02 00:17:02 +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
|
* Author: Peter Steinberger
|
||||||
|
* Andreas Linde
|
||||||
*
|
*
|
||||||
* Copyright (c) 2012-2013 HockeyApp, Bit Stadium GmbH.
|
* Copyright (c) 2012-2013 HockeyApp, Bit Stadium GmbH.
|
||||||
* Copyright (c) 2011 Andreas Linde, Peter Steinberger.
|
* Copyright (c) 2011 Andreas Linde, Peter Steinberger.
|
||||||
@ -34,6 +35,7 @@
|
|||||||
@property (nonatomic, copy) NSString *name;
|
@property (nonatomic, copy) NSString *name;
|
||||||
@property (nonatomic, copy) NSString *version;
|
@property (nonatomic, copy) NSString *version;
|
||||||
@property (nonatomic, copy) NSString *shortVersion;
|
@property (nonatomic, copy) NSString *shortVersion;
|
||||||
|
@property (nonatomic, copy) NSString *minOSVersion;
|
||||||
@property (nonatomic, copy) NSString *notes;
|
@property (nonatomic, copy) NSString *notes;
|
||||||
@property (nonatomic, copy) NSDate *date;
|
@property (nonatomic, copy) NSDate *date;
|
||||||
@property (nonatomic, copy) NSNumber *size;
|
@property (nonatomic, copy) NSNumber *size;
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Author: Peter Steinberger
|
* Author: Peter Steinberger
|
||||||
|
* Andreas Linde
|
||||||
*
|
*
|
||||||
* Copyright (c) 2012-2013 HockeyApp, Bit Stadium GmbH.
|
* Copyright (c) 2012-2013 HockeyApp, Bit Stadium GmbH.
|
||||||
* Copyright (c) 2011 Andreas Linde, Peter Steinberger.
|
* Copyright (c) 2011 Andreas Linde, Peter Steinberger.
|
||||||
@ -43,6 +44,7 @@
|
|||||||
appVersionMetaInfo.name = [dict objectForKey:@"title"];
|
appVersionMetaInfo.name = [dict objectForKey:@"title"];
|
||||||
appVersionMetaInfo.version = [dict objectForKey:@"version"];
|
appVersionMetaInfo.version = [dict objectForKey:@"version"];
|
||||||
appVersionMetaInfo.shortVersion = [dict objectForKey:@"shortversion"];
|
appVersionMetaInfo.shortVersion = [dict objectForKey:@"shortversion"];
|
||||||
|
appVersionMetaInfo.minOSVersion = [dict objectForKey:@"minimum_os_version"];
|
||||||
[appVersionMetaInfo setDateWithTimestamp:[[dict objectForKey:@"timestamp"] doubleValue]];
|
[appVersionMetaInfo setDateWithTimestamp:[[dict objectForKey:@"timestamp"] doubleValue]];
|
||||||
appVersionMetaInfo.size = [dict objectForKey:@"appsize"];
|
appVersionMetaInfo.size = [dict objectForKey:@"appsize"];
|
||||||
appVersionMetaInfo.notes = [dict objectForKey:@"notes"];
|
appVersionMetaInfo.notes = [dict objectForKey:@"notes"];
|
||||||
@ -106,6 +108,8 @@
|
|||||||
return NO;
|
return NO;
|
||||||
if (![self isEqualComparingString:self.shortVersion withString:anAppVersionMetaInfo.shortVersion])
|
if (![self isEqualComparingString:self.shortVersion withString:anAppVersionMetaInfo.shortVersion])
|
||||||
return NO;
|
return NO;
|
||||||
|
if (![self isEqualComparingString:self.minOSVersion withString:anAppVersionMetaInfo.minOSVersion])
|
||||||
|
return NO;
|
||||||
if (![self isEqualComparingString:self.notes withString:anAppVersionMetaInfo.notes])
|
if (![self isEqualComparingString:self.notes withString:anAppVersionMetaInfo.notes])
|
||||||
return NO;
|
return NO;
|
||||||
if (![self isEqualComparingDate:self.date withDate:anAppVersionMetaInfo.date])
|
if (![self isEqualComparingDate:self.date withDate:anAppVersionMetaInfo.date])
|
||||||
@ -126,6 +130,7 @@
|
|||||||
[encoder encodeObject:self.name forKey:@"name"];
|
[encoder encodeObject:self.name forKey:@"name"];
|
||||||
[encoder encodeObject:self.version forKey:@"version"];
|
[encoder encodeObject:self.version forKey:@"version"];
|
||||||
[encoder encodeObject:self.shortVersion forKey:@"shortVersion"];
|
[encoder encodeObject:self.shortVersion forKey:@"shortVersion"];
|
||||||
|
[encoder encodeObject:self.minOSVersion forKey:@"minOSVersion"];
|
||||||
[encoder encodeObject:self.notes forKey:@"notes"];
|
[encoder encodeObject:self.notes forKey:@"notes"];
|
||||||
[encoder encodeObject:self.date forKey:@"date"];
|
[encoder encodeObject:self.date forKey:@"date"];
|
||||||
[encoder encodeObject:self.size forKey:@"size"];
|
[encoder encodeObject:self.size forKey:@"size"];
|
||||||
@ -139,6 +144,7 @@
|
|||||||
self.name = [decoder decodeObjectForKey:@"name"];
|
self.name = [decoder decodeObjectForKey:@"name"];
|
||||||
self.version = [decoder decodeObjectForKey:@"version"];
|
self.version = [decoder decodeObjectForKey:@"version"];
|
||||||
self.shortVersion = [decoder decodeObjectForKey:@"shortVersion"];
|
self.shortVersion = [decoder decodeObjectForKey:@"shortVersion"];
|
||||||
|
self.minOSVersion = [decoder decodeObjectForKey:@"minOSVersion"];
|
||||||
self.notes = [decoder decodeObjectForKey:@"notes"];
|
self.notes = [decoder decodeObjectForKey:@"notes"];
|
||||||
self.date = [decoder decodeObjectForKey:@"date"];
|
self.date = [decoder decodeObjectForKey:@"date"];
|
||||||
self.size = [decoder decodeObjectForKey:@"size"];
|
self.size = [decoder decodeObjectForKey:@"size"];
|
||||||
@ -197,7 +203,8 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 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)isValid {
|
||||||
BOOL valid = [self.name length] && [self.version length] && self.date;
|
BOOL valid = [self.name length] && [self.version length] && self.date;
|
||||||
return valid;
|
return valid;
|
||||||
|
@ -735,7 +735,17 @@ typedef NS_ENUM(NSInteger, BITUpdateAlertViewTag) {
|
|||||||
for (NSDictionary *dict in feedArray) {
|
for (NSDictionary *dict in feedArray) {
|
||||||
BITAppVersionMetaInfo *appVersionMetaInfo = [BITAppVersionMetaInfo appVersionMetaInfoFromDict:dict];
|
BITAppVersionMetaInfo *appVersionMetaInfo = [BITAppVersionMetaInfo appVersionMetaInfoFromDict:dict];
|
||||||
if ([appVersionMetaInfo isValid]) {
|
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 {
|
} else {
|
||||||
[self reportError:[NSError errorWithDomain:kBITUpdateErrorDomain
|
[self reportError:[NSError errorWithDomain:kBITUpdateErrorDomain
|
||||||
code:BITUpdateAPIServerReturnedInvalidData
|
code:BITUpdateAPIServerReturnedInvalidData
|
||||||
|
Loading…
x
Reference in New Issue
Block a user