mirror of https://github.com/oxen-io/session-ios
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			66 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Objective-C
		
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Objective-C
		
	
//
 | 
						|
//  Copyright (c) 2019 Open Whisper Systems. All rights reserved.
 | 
						|
//
 | 
						|
 | 
						|
#import "OWSTextView.h"
 | 
						|
#import "Theme.h"
 | 
						|
 | 
						|
NS_ASSUME_NONNULL_BEGIN
 | 
						|
 | 
						|
const UIDataDetectorTypes kOWSAllowedDataDetectorTypes
 | 
						|
    = UIDataDetectorTypeLink | UIDataDetectorTypeAddress | UIDataDetectorTypeCalendarEvent;
 | 
						|
 | 
						|
const UIDataDetectorTypes kOWSAllowedDataDetectorTypesExceptLinks
 | 
						|
    = UIDataDetectorTypeAddress | UIDataDetectorTypeCalendarEvent;
 | 
						|
 | 
						|
@implementation OWSTextView
 | 
						|
 | 
						|
- (instancetype)initWithFrame:(CGRect)frame textContainer:(nullable NSTextContainer *)textContainer
 | 
						|
{
 | 
						|
    if (self = [super initWithFrame:frame textContainer:textContainer]) {
 | 
						|
        [self ows_applyTheme];
 | 
						|
    }
 | 
						|
 | 
						|
    // Setting dataDetectorTypes is expensive.  Do it just once.
 | 
						|
    self.dataDetectorTypes = kOWSAllowedDataDetectorTypes;
 | 
						|
 | 
						|
    return self;
 | 
						|
}
 | 
						|
 | 
						|
- (nullable instancetype)initWithCoder:(NSCoder *)aDecoder
 | 
						|
{
 | 
						|
    if (self = [super initWithCoder:aDecoder]) {
 | 
						|
        [self ows_applyTheme];
 | 
						|
    }
 | 
						|
 | 
						|
    self.dataDetectorTypes = kOWSAllowedDataDetectorTypes;
 | 
						|
 | 
						|
    return self;
 | 
						|
}
 | 
						|
 | 
						|
- (void)ows_applyTheme
 | 
						|
{
 | 
						|
    self.keyboardAppearance = Theme.keyboardAppearance;
 | 
						|
}
 | 
						|
 | 
						|
// MARK: -
 | 
						|
 | 
						|
- (void)ensureShouldLinkifyText:(BOOL)shouldLinkifyText
 | 
						|
{
 | 
						|
    if (shouldLinkifyText) {
 | 
						|
        // Setting dataDetectorTypes can be expensive, so we only update it when it's changed.
 | 
						|
        if (self.dataDetectorTypes != kOWSAllowedDataDetectorTypes) {
 | 
						|
            self.dataDetectorTypes = kOWSAllowedDataDetectorTypes;
 | 
						|
        }
 | 
						|
    } else {
 | 
						|
        // Setting dataDetectorTypes can be expensive, so we only update it when it's changed.
 | 
						|
        if (self.dataDetectorTypes != kOWSAllowedDataDetectorTypesExceptLinks) {
 | 
						|
            self.dataDetectorTypes = kOWSAllowedDataDetectorTypesExceptLinks;
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
@end
 | 
						|
 | 
						|
NS_ASSUME_NONNULL_END
 |