Room Message: improve bing handling

This commit is contained in:
giomfo
2014-12-08 18:17:32 +01:00
parent be142e4c7f
commit 91a014a30e
+14 -3
View File
@@ -52,9 +52,7 @@ NSString *const kFailedEventId = @"failedEventId";
_style = RoomMessageComponentStyleUnsupported;
} else if ([_eventId hasPrefix:kFailedEventId]) {
_style = RoomMessageComponentStyleFailed;
} else if (isIncomingMsg && !_isStateEvent
&& ([textMessage rangeOfString:mxHandler.userDisplayName options:NSCaseInsensitiveSearch].location != NSNotFound
|| (mxHandler.localPartFromUserId && [textMessage rangeOfString:mxHandler.localPartFromUserId options:NSCaseInsensitiveSearch].location != NSNotFound))) {
} else if (isIncomingMsg && !_isStateEvent && [self containsBingWord]) {
_style = RoomMessageComponentStyleBing;
} else if (!isIncomingMsg && [_eventId hasPrefix:kLocalEchoEventIdPrefix]) {
_style = RoomMessageComponentStyleInProgress;
@@ -69,6 +67,19 @@ NSString *const kFailedEventId = @"failedEventId";
return self;
}
- (BOOL)containsBingWord {
MatrixHandler *mxHandler = [MatrixHandler sharedHandler];
NSString *pattern = [NSString stringWithFormat:@"\\b%@\\b", mxHandler.userDisplayName];
if (mxHandler.localPartFromUserId) {
pattern = [NSString stringWithFormat:@"(%@|\\b%@\\b)", pattern, mxHandler.localPartFromUserId];
}
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern options:NSRegularExpressionCaseInsensitive error:nil];
if ([regex numberOfMatchesInString:_textMessage options:0 range:NSMakeRange(0, [_textMessage length])]) {
return YES;
}
return NO;
}
- (NSDictionary*)stringAttributes {
UIColor *textColor;
UIFont *font;