mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
Added method configureWithBetaIdentifier:liveIdentifier:delegate.
This commit is contained in:
parent
d8bb3b07eb
commit
2f4dc46c57
@ -19,14 +19,23 @@
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
|
||||
@protocol CNSHockeyManagerDelegate <NSObject>
|
||||
|
||||
@optional
|
||||
- (BOOL)shouldUseLiveIdenfitier;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@interface CNSHockeyManager : NSObject {
|
||||
@private
|
||||
id delegate;
|
||||
NSString *appIdentifier;
|
||||
}
|
||||
|
||||
+ (CNSHockeyManager *)sharedHockeyManager;
|
||||
|
||||
- (void)configureWithIdentifier:(NSString *)appIdentifier delegate:(id)delegate;
|
||||
- (void)configureWithBetaIdentifier:(NSString *)betaIdentifier liveIdentifier:(NSString *)liveIdentifier delegate:(id)delegate;
|
||||
|
||||
@end
|
||||
|
@ -25,12 +25,18 @@
|
||||
|
||||
@interface CNSHockeyManager ()
|
||||
|
||||
- (BOOL)shouldUseLiveIdenfitier;
|
||||
|
||||
- (void)configureJMC;
|
||||
- (void)configureHockeyManager;
|
||||
- (void)configureQuincyManager;
|
||||
|
||||
@end
|
||||
|
||||
@implementation CNSHockeyManager
|
||||
|
||||
#pragma mark - Public Class Methods
|
||||
|
||||
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 40000
|
||||
+ (CNSHockeyManager *)sharedHockeyManager {
|
||||
static CNSHockeyManager *sharedInstance = nil;
|
||||
@ -71,6 +77,8 @@
|
||||
return (jmcClass) && ([jmcClass respondsToSelector:@selector(instance)]);
|
||||
}
|
||||
|
||||
#pragma mark - Private Class Methods
|
||||
|
||||
+ (void)disableJMCCrashReporter {
|
||||
id jmcClass = NSClassFromString(@"JMC");
|
||||
id jmcInstance = [jmcClass performSelector:@selector(instance)];
|
||||
@ -111,18 +119,53 @@
|
||||
[invocation invoke];
|
||||
}
|
||||
|
||||
#pragma mark - Public Instance Methods
|
||||
|
||||
- (void)configureWithIdentifier:(NSString *)newAppIdentifier delegate:(id)delegate {
|
||||
[appIdentifier release];
|
||||
appIdentifier = [newAppIdentifier copy];
|
||||
|
||||
// Crash Reporting
|
||||
[[BWQuincyManager sharedQuincyManager] setAppIdentifier:appIdentifier];
|
||||
[self configureQuincyManager];
|
||||
[self configureHockeyManager];
|
||||
}
|
||||
|
||||
// Distribution
|
||||
|
||||
- (void)configureWithBetaIdentifier:(NSString *)betaIdentifier liveIdentifier:(NSString *)liveIdentifier delegate:(id)delegate {
|
||||
[appIdentifier release];
|
||||
|
||||
if ([self shouldUseLiveIdenfitier]) {
|
||||
appIdentifier = [liveIdentifier copy];
|
||||
|
||||
[self configureQuincyManager];
|
||||
}
|
||||
else {
|
||||
appIdentifier = [betaIdentifier copy];
|
||||
|
||||
[self configureQuincyManager];
|
||||
[self configureHockeyManager];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Private Instance Methods
|
||||
|
||||
- (BOOL)shouldUseLiveIdenfitier {
|
||||
BOOL delegateResult = NO;
|
||||
if ([delegate respondsToSelector:@selector(shouldUseLiveIdenfitier)]) {
|
||||
delegateResult = [(NSObject <CNSHockeyManagerDelegate>*)delegate shouldUseLiveIdenfitier];
|
||||
}
|
||||
|
||||
return (delegateResult) || ([[BWHockeyManager sharedHockeyManager] isAppStoreEnvironment]);
|
||||
}
|
||||
|
||||
- (void)configureQuincyManager {
|
||||
[[BWQuincyManager sharedQuincyManager] setAppIdentifier:appIdentifier];
|
||||
}
|
||||
|
||||
- (void)configureHockeyManager {
|
||||
[[BWHockeyManager sharedHockeyManager] setAppIdentifier:appIdentifier];
|
||||
[[BWHockeyManager sharedHockeyManager] setCheckForTracker:YES];
|
||||
|
||||
// JMC
|
||||
// Only if JMC is part of the project
|
||||
if ([[self class] isJMCPresent]) {
|
||||
[[BWHockeyManager sharedHockeyManager] addObserver:self forKeyPath:@"trackerConfig" options:0 context:nil];
|
||||
[[self class] disableJMCCrashReporter];
|
||||
@ -168,6 +211,8 @@
|
||||
|
||||
- (void)dealloc {
|
||||
[appIdentifier release], appIdentifier = nil;
|
||||
delegate = nil;
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user