Skip to content

Commit d3c2f44

Browse files
committed
Exclude extra data detectors.
Data detectors work by matching local text against a series of local matchers. No network activity is required. Some of the data detectors are really useful (e.g. a link, or being able to copy a phone number). Some aren't very useful, e.g. pop culture references, and seeing things underlined is giving people the false impression that their data is being inspected remotely. // FREEBIE
1 parent fbcf5fb commit d3c2f44

8 files changed

+74
-15
lines changed

Signal.xcodeproj/project.pbxproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
452D1EE81DCA90D100A57EC4 /* MesssagesBubblesSizeCalculatorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 452D1EE71DCA90D100A57EC4 /* MesssagesBubblesSizeCalculatorTest.swift */; };
2323
452E3C8E1D935C77002A45B0 /* OWSConversationSettingsTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 452E3C8D1D935C77002A45B0 /* OWSConversationSettingsTableViewController.m */; };
2424
452E3C8F1D935C77002A45B0 /* OWSConversationSettingsTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 452E3C8D1D935C77002A45B0 /* OWSConversationSettingsTableViewController.m */; };
25+
4531C9C41DD8E6D800F08304 /* JSQMessagesCollectionViewCell+OWS.m in Sources */ = {isa = PBXBuildFile; fileRef = 4531C9C31DD8E6D800F08304 /* JSQMessagesCollectionViewCell+OWS.m */; };
2526
453D28B71D32BA5F00D523F0 /* OWSDisplayedMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 453D28B61D32BA5F00D523F0 /* OWSDisplayedMessage.m */; };
2627
453D28BA1D332DB100D523F0 /* OWSMessagesBubblesSizeCalculator.m in Sources */ = {isa = PBXBuildFile; fileRef = 453D28B91D332DB100D523F0 /* OWSMessagesBubblesSizeCalculator.m */; };
2728
453D28BB1D332DB100D523F0 /* OWSMessagesBubblesSizeCalculator.m in Sources */ = {isa = PBXBuildFile; fileRef = 453D28B91D332DB100D523F0 /* OWSMessagesBubblesSizeCalculator.m */; };
@@ -554,6 +555,8 @@
554555
452D1EE71DCA90D100A57EC4 /* MesssagesBubblesSizeCalculatorTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = MesssagesBubblesSizeCalculatorTest.swift; path = Models/MesssagesBubblesSizeCalculatorTest.swift; sourceTree = "<group>"; };
555556
452E3C8C1D935C77002A45B0 /* OWSConversationSettingsTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OWSConversationSettingsTableViewController.h; sourceTree = "<group>"; };
556557
452E3C8D1D935C77002A45B0 /* OWSConversationSettingsTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = OWSConversationSettingsTableViewController.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
558+
4531C9C21DD8E6D800F08304 /* JSQMessagesCollectionViewCell+OWS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "JSQMessagesCollectionViewCell+OWS.h"; sourceTree = "<group>"; };
559+
4531C9C31DD8E6D800F08304 /* JSQMessagesCollectionViewCell+OWS.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "JSQMessagesCollectionViewCell+OWS.m"; sourceTree = "<group>"; };
557560
453CC0361D08E1A60040EBA3 /* sn */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sn; path = translations/sn.lproj/Localizable.strings; sourceTree = "<group>"; };
558561
453D28B51D32BA5F00D523F0 /* OWSDisplayedMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OWSDisplayedMessage.h; sourceTree = "<group>"; };
559562
453D28B61D32BA5F00D523F0 /* OWSDisplayedMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OWSDisplayedMessage.m; sourceTree = "<group>"; };
@@ -1850,6 +1853,8 @@
18501853
450873C11D9D5149006B54F2 /* OWSExpirationTimerView.h */,
18511854
450873C21D9D5149006B54F2 /* OWSExpirationTimerView.m */,
18521855
450873C91D9D86F4006B54F2 /* OWSExpirableMessageView.h */,
1856+
4531C9C21DD8E6D800F08304 /* JSQMessagesCollectionViewCell+OWS.h */,
1857+
4531C9C31DD8E6D800F08304 /* JSQMessagesCollectionViewCell+OWS.m */,
18531858
);
18541859
name = Views;
18551860
path = views;
@@ -2827,6 +2832,7 @@
28272832
B97940271832BD2400BD66CB /* UIUtil.m in Sources */,
28282833
4CE0E3771B954546007210CF /* TSAnimatedAdapter.m in Sources */,
28292834
76EB05BE18170B33006006FC /* ConfirmPacket.m in Sources */,
2835+
4531C9C41DD8E6D800F08304 /* JSQMessagesCollectionViewCell+OWS.m in Sources */,
28302836
4516E3FF1DD2193B00DC4206 /* OWS101ExistingUsersBlockOnIdentityChange.m in Sources */,
28312837
76EB05A818170B33006006FC /* RtpSocket.m in Sources */,
28322838
E197B61818BBEC1A00F073E5 /* RemoteIOAudio.m in Sources */,

Signal/src/view controllers/MessagesViewController.m

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -788,16 +788,15 @@ - (UICollectionViewCell *)collectionView:(JSQMessagesCollectionView *)collection
788788
- (JSQMessagesCollectionViewCell *)loadIncomingMessageCellForMessage:(id<OWSMessageData>)message
789789
atIndexPath:(NSIndexPath *)indexPath
790790
{
791-
JSQMessagesCollectionViewCell *cell =
792-
(JSQMessagesCollectionViewCell *)[super collectionView:self.collectionView cellForItemAtIndexPath:indexPath];
793-
if (!message.isMediaMessage) {
794-
cell.textView.textColor = [UIColor ows_blackColor];
795-
cell.textView.linkTextAttributes = @{
796-
NSForegroundColorAttributeName : cell.textView.textColor,
797-
NSUnderlineStyleAttributeName : @(NSUnderlineStyleSingle | NSUnderlinePatternSolid)
798-
};
799-
}
791+
OWSIncomingMessageCollectionViewCell *cell
792+
= (OWSIncomingMessageCollectionViewCell *)[super collectionView:self.collectionView
793+
cellForItemAtIndexPath:indexPath];
800794

795+
if (![cell isKindOfClass:[OWSIncomingMessageCollectionViewCell class]]) {
796+
DDLogError(@"%@ Unexpected cell type: %@", self.tag, cell);
797+
return cell;
798+
}
799+
[cell ows_didLoad];
801800
return cell;
802801
}
803802

@@ -808,19 +807,20 @@ - (JSQMessagesCollectionViewCell *)loadOutgoingCellForMessage:(id<OWSMessageData
808807
= (OWSOutgoingMessageCollectionViewCell *)[super collectionView:self.collectionView
809808
cellForItemAtIndexPath:indexPath];
810809

810+
if (![cell isKindOfClass:[OWSOutgoingMessageCollectionViewCell class]]) {
811+
DDLogError(@"%@ Unexpected cell type: %@", self.tag, cell);
812+
return cell;
813+
}
814+
[cell ows_didLoad];
815+
811816
if (message.isMediaMessage) {
812817
if (![message isKindOfClass:[TSMessageAdapter class]]) {
813818
DDLogError(@"%@ Unexpected media message:%@", self.tag, message.class);
814819
}
815820
TSMessageAdapter *messageAdapter = (TSMessageAdapter *)message;
816821
cell.mediaView.alpha = messageAdapter.mediaViewAlpha;
817-
} else {
818-
cell.textView.textColor = [UIColor whiteColor];
819-
cell.textView.linkTextAttributes = @{
820-
NSForegroundColorAttributeName : cell.textView.textColor,
821-
NSUnderlineStyleAttributeName : @(NSUnderlineStyleSingle | NSUnderlinePatternSolid)
822-
};
823822
}
823+
824824
return cell;
825825
}
826826

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// Created by Michael Kirk on 11/13/16.
2+
// Copyright © 2016 Open Whisper Systems. All rights reserved.
3+
4+
#import <JSQMessagesViewController/JSQMessagesCollectionViewCell.h>
5+
6+
NS_ASSUME_NONNULL_BEGIN
7+
8+
@interface JSQMessagesCollectionViewCell (OWS)
9+
10+
- (void)ows_didLoad;
11+
12+
@end
13+
14+
NS_ASSUME_NONNULL_END
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
// Created by Michael Kirk on 11/13/16.
2+
// Copyright © 2016 Open Whisper Systems. All rights reserved.
3+
4+
#import "JSQMessagesCollectionViewCell+OWS.h"
5+
#import "UIColor+OWS.h"
6+
7+
NS_ASSUME_NONNULL_BEGIN
8+
9+
@implementation JSQMessagesCollectionViewCell (OWS)
10+
11+
- (UIColor *)ows_textColor
12+
{
13+
return [UIColor ows_blackColor];
14+
}
15+
16+
- (void)ows_didLoad
17+
{
18+
self.textView.textColor = self.ows_textColor;
19+
self.textView.linkTextAttributes = @{
20+
NSForegroundColorAttributeName : self.ows_textColor,
21+
NSUnderlineStyleAttributeName : @(NSUnderlineStyleSingle | NSUnderlinePatternSolid)
22+
};
23+
24+
self.textView.dataDetectorTypes
25+
= (UIDataDetectorTypePhoneNumber | UIDataDetectorTypeLink | UIDataDetectorTypeAddress
26+
| UIDataDetectorTypeCalendarEvent);
27+
}
28+
29+
@end
30+
31+
NS_ASSUME_NONNULL_END

Signal/src/views/OWSIncomingMessageCollectionViewCell.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Created by Michael Kirk on 9/29/16.
22
// Copyright © 2016 Open Whisper Systems. All rights reserved.
33

4+
#import "JSQMessagesCollectionViewCell+OWS.h"
45
#import "OWSExpirableMessageView.h"
56
#import <JSQMessagesViewController/JSQMessagesCollectionViewCellIncoming.h>
67

Signal/src/views/OWSIncomingMessageCollectionViewCell.m

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
#import "OWSIncomingMessageCollectionViewCell.h"
55
#import "OWSExpirationTimerView.h"
6+
#import "UIColor+OWS.h"
67

78
NS_ASSUME_NONNULL_BEGIN
89

Signal/src/views/OWSOutgoingMessageCollectionViewCell.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Created by Michael Kirk on 9/28/16.
22
// Copyright © 2016 Open Whisper Systems. All rights reserved.
33

4+
#import "JSQMessagesCollectionViewCell+OWS.h"
45
#import "OWSExpirableMessageView.h"
56
#import <JSQMessagesViewController/JSQMessagesCollectionViewCellOutgoing.h>
67

Signal/src/views/OWSOutgoingMessageCollectionViewCell.m

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@ - (void)prepareForReuse
2828
self.expirationTimerViewWidthConstraint.constant = 0.0f;
2929
}
3030

31+
- (UIColor *)ows_textColor
32+
{
33+
return [UIColor whiteColor];
34+
}
35+
3136
// pragma mark - OWSExpirableMessageView
3237

3338
- (void)startExpirationTimerWithExpiresAtSeconds:(uint64_t)expiresAtSeconds

0 commit comments

Comments
 (0)