From f09ea53fbaa2aabdba9849c7c3841fcb80e4db77 Mon Sep 17 00:00:00 2001 From: Andreas Linde Date: Mon, 22 Oct 2012 01:10:18 +0200 Subject: [PATCH] Store the app identifier with the feedback thread. So in case they change by accident, new posts will cause a new thread in the current app to be created --- Classes/BITFeedbackManager.m | 15 +++++++++++++++ Classes/BITHockeyBaseManager.m | 3 +-- Classes/BITHockeyBaseManagerPrivate.h | 2 ++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/Classes/BITFeedbackManager.m b/Classes/BITFeedbackManager.m index 459bf566ae..a25c101a77 100644 --- a/Classes/BITFeedbackManager.m +++ b/Classes/BITFeedbackManager.m @@ -47,6 +47,7 @@ #define kBITFeedbackName @"HockeyFeedbackName" #define kBITFeedbackEmail @"HockeyFeedbackEmail" #define kBITFeedbackLastMessageID @"HockeyFeedbackLastMessageID" +#define kBITFeedbackAppID @"HockeyFeedbackAppID" @implementation BITFeedbackManager { @@ -320,6 +321,17 @@ if ([unarchiver containsValueForKey:kBITFeedbackToken]) self.token = [unarchiver decodeObjectForKey:kBITFeedbackToken]; + if ([unarchiver containsValueForKey:kBITFeedbackAppID]) { + NSString *appID = [unarchiver decodeObjectForKey:kBITFeedbackAppID]; + + // the stored thread is from another application identifier, so clear the token + // which will cause the new posts to create a new thread on the server for the + // current app identifier + if ([appID compare:self.appIdentifier] != NSOrderedSame) { + self.token = nil; + } + } + if ([unarchiver containsValueForKey:kBITFeedbackDateOfLastCheck]) self.lastCheck = [unarchiver decodeObjectForKey:kBITFeedbackDateOfLastCheck]; @@ -356,6 +368,9 @@ if (self.token) [archiver encodeObject:self.token forKey:kBITFeedbackToken]; + if (self.appIdentifier) + [archiver encodeObject:self.appIdentifier forKey:kBITFeedbackAppID]; + if (self.userID) [archiver encodeObject:self.userID forKey:kBITFeedbackUserID]; diff --git a/Classes/BITHockeyBaseManager.m b/Classes/BITHockeyBaseManager.m index 17db241d6e..67812a8a6c 100644 --- a/Classes/BITHockeyBaseManager.m +++ b/Classes/BITHockeyBaseManager.m @@ -26,7 +26,6 @@ NSDateFormatter *_rfc3339Formatter; - NSString *_appIdentifier; BOOL _isAppStoreEnvironment; } @@ -54,7 +53,7 @@ - (id)initWithAppIdentifier:(NSString *)appIdentifier isAppStoreEnvironemt:(BOOL)isAppStoreEnvironment { if ((self = [self init])) { - _appIdentifier = appIdentifier; + self.appIdentifier = appIdentifier; _isAppStoreEnvironment = isAppStoreEnvironment; } diff --git a/Classes/BITHockeyBaseManagerPrivate.h b/Classes/BITHockeyBaseManagerPrivate.h index e58a3e1f0b..50b30799a8 100644 --- a/Classes/BITHockeyBaseManagerPrivate.h +++ b/Classes/BITHockeyBaseManagerPrivate.h @@ -14,6 +14,8 @@ @interface BITHockeyBaseManager() +@property (nonatomic, retain) NSString *appIdentifier; + - (id)initWithAppIdentifier:(NSString *)appIdentifier isAppStoreEnvironemt:(BOOL)isAppStoreEnvironment; - (void)startManager;