From 01050ea4079acbc73cc126dd2261fc5dd0bec7d3 Mon Sep 17 00:00:00 2001 From: Andreas Linde Date: Fri, 18 Jan 2013 23:37:03 +0100 Subject: [PATCH] Fix bugs when changing require setters of BITFeedbackManager after the setup If the userName and userEmail delegates are implemented and the requireUserEmail or requireUserName are changed after that, then the user interface is shown even though the delegates define the values and the user shouldn't be able to change that. --- Classes/BITFeedbackManager.m | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Classes/BITFeedbackManager.m b/Classes/BITFeedbackManager.m index 2825dd17ae..f76b65a098 100644 --- a/Classes/BITFeedbackManager.m +++ b/Classes/BITFeedbackManager.m @@ -216,8 +216,8 @@ userIDForHockeyManager:[BITHockeyManager sharedHockeyManager] componentManager:self]; if (userID) { - self.userID = userID; availableViaDelegate = YES; + self.userID = userID; } } @@ -251,8 +251,8 @@ userEmailForHockeyManager:[BITHockeyManager sharedHockeyManager] componentManager:self]; if (userEmail) { - self.userEmail = userEmail; availableViaDelegate = YES; + self.userEmail = userEmail; self.requireUserEmail = BITFeedbackUserDataElementDontShow; } } @@ -264,6 +264,12 @@ [self updateUserIDUsingDelegate]; [self updateUserNameUsingDelegate]; [self updateUserEmailUsingDelegate]; + + // if both values are shown via the delegates, we never ever did ask and will never ever ask for user data + if (self.requireUserName == BITFeedbackUserDataElementDontShow && + self.requireUserEmail == BITFeedbackUserDataElementDontShow) { + self.didAskUserData = NO; + } } #pragma mark - Local Storage @@ -508,6 +514,8 @@ #pragma mark - User - (BOOL)askManualUserDataAvailable { + [self updateAppDefinedUserData]; + if (self.requireUserName == BITFeedbackUserDataElementDontShow && self.requireUserEmail == BITFeedbackUserDataElementDontShow) return NO; @@ -516,6 +524,8 @@ } - (BOOL)requireManualUserDataMissing { + [self updateAppDefinedUserData]; + if (self.requireUserName == BITFeedbackUserDataElementRequired && !self.userName) return YES; @@ -526,6 +536,8 @@ } - (BOOL)isManualUserDataAvailable { + [self updateAppDefinedUserData]; + if ((self.requireUserName != BITFeedbackUserDataElementDontShow && self.userName) || (self.requireUserEmail != BITFeedbackUserDataElementDontShow && self.userEmail)) return YES;