Skip to content

Commit

Permalink
New property: canRemoveImmediateMessageFromQueue determines whether i…
Browse files Browse the repository at this point in the history
…mmediate messages in the queue get removed, when a new immediate message gets posted
  • Loading branch information
myell0w committed Jan 17, 2011
1 parent 83eb7e2 commit b296913
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 3 deletions.
6 changes: 5 additions & 1 deletion MTStatusBarOverlay.h
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ typedef enum MTMessageType {
// for displaying activity indication
UIActivityIndicatorView *activityIndicator_;
UILabel *finishedLabel_;

// if set to YES, neither activityIndicator nor finishedLabel are shown
BOOL hidesActivity_;

// Image of gray Status Bar
Expand All @@ -108,6 +108,8 @@ typedef enum MTMessageType {

// Queue stuff
NSMutableArray *messageQueue_;
// if YES older immediate messages in the queue get removed, when a new one gets posted
BOOL canRemoveImmediateMessagesFromQueue_;

// Detail View
MTDetailViewMode detailViewMode_;
Expand Down Expand Up @@ -146,6 +148,8 @@ typedef enum MTMessageType {
@property (nonatomic, retain, readonly) NSMutableArray *messageHistory;
// DEPRECATED: enable/disable history-tracking of messages
@property (nonatomic, assign, getter=isHistoryEnabled) BOOL historyEnabled;
// determines if immediate messages in the queue get removed or stay in the queue, when a new immediate message gets posted
@property (nonatomic, assign) BOOL canRemoveImmediateMessagesFromQueue;
// the mode of the detailView
@property (nonatomic, assign) MTDetailViewMode detailViewMode;
// the text displayed in the detailView (alternative to history)
Expand Down
7 changes: 5 additions & 2 deletions MTStatusBarOverlay.m
Original file line number Diff line number Diff line change
Expand Up @@ -337,6 +337,7 @@ @implementation MTStatusBarOverlay
@synthesize hideInProgress = hideInProgress_;
@synthesize active = active_;
@synthesize messageQueue = messageQueue_;
@synthesize canRemoveImmediateMessagesFromQueue = canRemoveImmediateMessagesFromQueue_;
@synthesize detailViewMode = detailViewMode_;
@synthesize detailText = detailText_;
@synthesize detailTextView = detailTextView_;
Expand Down Expand Up @@ -472,6 +473,7 @@ - (id)initWithFrame:(CGRect)frame {
hiddenStatusLabel_ = statusLabel2_;

messageQueue_ = [[NSMutableArray alloc] init];
canRemoveImmediateMessagesFromQueue_ = YES;

[self addSubview:backgroundView_];

Expand Down Expand Up @@ -580,7 +582,8 @@ - (void)postImmediateMessage:(NSString *)message type:(MTMessageType)messageType
NSMutableArray *clearedMessages = [NSMutableArray array];

for (id messageDictionary in self.messageQueue) {
if ([[messageDictionary valueForKey:kMTStatusBarOverlayImmediateKey] boolValue] == NO) {
if (messageDictionary != [self.messageQueue lastObject] &&
(self.canRemoveImmediateMessagesFromQueue || [[messageDictionary valueForKey:kMTStatusBarOverlayImmediateKey] boolValue] == NO)) {
[clearedMessages addObject:messageDictionary];
}
}
Expand Down Expand Up @@ -654,7 +657,7 @@ - (void)showNextMessage {
[self setStatusBarBackgroundForStyle:statusBarStyle];
[self setColorSchemeForStatusBarStyle:statusBarStyle];
[self updateUIForMessageType:messageType duration:duration];

// if status bar is currently hidden, show it
if (self.reallyHidden) {
// set text of visible status label
Expand Down

0 comments on commit b296913

Please sign in to comment.