add feedbackManager delegate that is informed about incoming feedback

fixes #30
This commit is contained in:
Stephan Diederich
2013-07-26 15:33:12 +02:00
parent 949613d7e5
commit c816f4dc19
5 changed files with 64 additions and 12 deletions

View File

@@ -49,7 +49,7 @@ typedef enum {
@class BITFeedbackMessage;
@class BITFeedbackManagerDelegate;
/**
The feedback module.
@@ -96,6 +96,18 @@ typedef enum {
@interface BITFeedbackManager : BITHockeyBaseManager
///-----------------------------------------------------------------------------
/// @name Delegate
///-----------------------------------------------------------------------------
/**
Sets the `BITFeedbackManagerDelegate` delegate.
Can be set to be notified when new feedback is received from the server.
*/
@property (nonatomic, weak) id<BITFeedbackManagerDelegate> delegate;
///-----------------------------------------------------------------------------
/// @name General settings
///-----------------------------------------------------------------------------

View File

@@ -670,17 +670,23 @@
BITFeedbackMessage *latestMessage = [self lastMessageHavingID];
if (self.userEmail && latestMessage.email && [self.userEmail compare:latestMessage.email] == NSOrderedSame)
latestMessageFromUser = YES;
if (!latestMessageFromUser && self.showAlertOnIncomingMessages && !self.currentFeedbackListViewController && !self.currentFeedbackComposeViewController) {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:BITHockeyLocalizedString(@"HockeyFeedbackNewMessageTitle")
message:BITHockeyLocalizedString(@"HockeyFeedbackNewMessageText")
delegate:self
cancelButtonTitle:BITHockeyLocalizedString(@"HockeyFeedbackIgnore")
otherButtonTitles:BITHockeyLocalizedString(@"HockeyFeedbackShow"), nil
];
[alertView setTag:0];
[alertView show];
_incomingMessagesAlertShowing = YES;
if (!latestMessageFromUser) {
if([self.delegate respondsToSelector:@selector(feedbackManagerDidReceiveNewFeedback:)]) {
[self.delegate feedbackManagerDidReceiveNewFeedback:self];
}
if(self.showAlertOnIncomingMessages && !self.currentFeedbackListViewController && !self.currentFeedbackComposeViewController) {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:BITHockeyLocalizedString(@"HockeyFeedbackNewMessageTitle")
message:BITHockeyLocalizedString(@"HockeyFeedbackNewMessageText")
delegate:self
cancelButtonTitle:BITHockeyLocalizedString(@"HockeyFeedbackIgnore")
otherButtonTitles:BITHockeyLocalizedString(@"HockeyFeedbackShow"), nil
];
[alertView setTag:0];
[alertView show];
_incomingMessagesAlertShowing = YES;
}
}
}

View File

@@ -0,0 +1,29 @@
//
// BITFeedbackManagerDelegate.h
// HockeySDK
//
// Created by Stephan Diederich on 26.07.13.
//
//
#import <Foundation/Foundation.h>
@class BITFeedbackManager;
/**
* Delegate protocol which is notified about changes in the feedbackManager
* @TODO
* * move shouldShowUpdateAlert from feedbackManager here
*/
@protocol BITFeedbackManagerDelegate <NSObject>
@optional
/**
* can be implemented to know when new feedback from the server arrived
*
* @param feedbackManager The feedbackManager which did detect the new messages
*/
- (void) feedbackManagerDidReceiveNewFeedback:(BITFeedbackManager*) feedbackManager;
@end

View File

@@ -250,6 +250,7 @@
BITHockeyLog(@"INFO: Setup FeedbackManager");
_feedbackManager = [[BITFeedbackManager alloc] initWithAppIdentifier:_appIdentifier isAppStoreEnvironemt:_appStoreEnvironment];
_feedbackManager.delegate = _delegate;
#if JIRA_MOBILE_CONNECT_SUPPORT_ENABLED
// Only if JMC is part of the project