From 7b02207537d35bfa1714bf8beafc921f717d100a Mon Sep 17 00:00:00 2001
From: 单军华
Date: Wed, 11 Jul 2018 10:47:42 +0800
Subject: [PATCH] 首次上传

---
 screendisplay/Pods/EaseUI/EaseUI/EMUIKit/Util/Emoji/EaseEmotionEscape.m |  168 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 168 insertions(+), 0 deletions(-)

diff --git a/screendisplay/Pods/EaseUI/EaseUI/EMUIKit/Util/Emoji/EaseEmotionEscape.m b/screendisplay/Pods/EaseUI/EaseUI/EMUIKit/Util/Emoji/EaseEmotionEscape.m
new file mode 100755
index 0000000..7b00a96
--- /dev/null
+++ b/screendisplay/Pods/EaseUI/EaseUI/EMUIKit/Util/Emoji/EaseEmotionEscape.m
@@ -0,0 +1,168 @@
+/************************************************************
+ *  * Hyphenate CONFIDENTIAL
+ * __________________
+ * Copyright (C) 2016 Hyphenate Inc. All rights reserved.
+ *
+ * NOTICE: All information contained herein is, and remains
+ * the property of Hyphenate Inc.
+ * Dissemination of this information or reproduction of this material
+ * is strictly forbidden unless prior written permission is obtained
+ * from Hyphenate Inc.
+ */
+
+#import "EaseEmotionEscape.h"
+
+#define RGBCOLOR(r,g,b) [UIColor colorWithRed:(r)/255.0f green:(g)/255.0f blue:(b)/255.0f alpha:1]
+#define kEmotionTopMargin -3.0f
+
+@implementation EMTextAttachment
+//I want my emoticon has the same size with line's height
+- (CGRect)attachmentBoundsForTextContainer:(NSTextContainer *)textContainer proposedLineFragment:(CGRect)lineFrag glyphPosition:(CGPoint)position characterIndex:(NSUInteger)charIndex NS_AVAILABLE_IOS(7_0)
+{
+    return CGRectMake( 0, kEmotionTopMargin, lineFrag.size.height, lineFrag.size.height);
+}
+
+@end
+
+@interface EaseEmotionEscape ()
+{
+    NSString *_urlPattern;
+    NSDictionary *_dict;
+}
+
+@end
+
+@implementation EaseEmotionEscape
+
+static EaseEmotionEscape *_sharedInstance = nil;
+
++ (EaseEmotionEscape *)sharedInstance
+{
+    if (_sharedInstance == nil)
+    {
+        @synchronized(self) {
+            _sharedInstance = [[EaseEmotionEscape alloc] init];
+        }
+    }
+    return _sharedInstance;
+}
+
++ (NSMutableAttributedString *) attributtedStringFromText:(NSString *) aInputText
+{
+    return nil;
+}
+
++ (NSAttributedString *) attStringFromTextForChatting:(NSString *) aInputText
+{
+    return nil;
+}
+
++ (NSAttributedString *) attStringFromTextForInputView:(NSString *) aInputText
+{
+    return nil;
+}
+
+- (NSMutableAttributedString *) attributtedStringFromText:(NSString *) aInputText
+{
+    if (_urlPattern == nil || _urlPattern.length == 0) {
+        NSMutableAttributedString * string = [[ NSMutableAttributedString alloc ] initWithString:aInputText attributes:nil ];
+        return string;
+    }
+    NSString *urlPattern = _urlPattern;
+    NSError *error = nil;
+    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:urlPattern options:NSRegularExpressionCaseInsensitive error:&error ];
+    
+    NSArray* matches = [regex matchesInString:aInputText options:NSMatchingReportCompletion range:NSMakeRange(0, [aInputText length])];
+    NSMutableAttributedString * string = [[ NSMutableAttributedString alloc ] initWithString:aInputText attributes:nil ];
+    
+    for (NSTextCheckingResult *match in [matches reverseObjectEnumerator]) {
+        NSRange matchRange = [match range];
+        NSString *subStr = [aInputText substringWithRange:matchRange];
+        
+        EMTextAttachment * textAttachment = [[EMTextAttachment alloc ] initWithData:nil ofType:nil];
+        textAttachment.imageName = subStr;
+        UIImage * emojiImage;
+        NSString *emojiName = @"";
+        if (_dict) {
+            emojiName = [_dict objectForKey:subStr];
+        }
+        
+        if (emojiName == nil || emojiName.length == 0) {
+            emojiName = subStr;
+        }
+        
+        emojiImage = [UIImage imageNamed:emojiName];
+        
+        NSAttributedString * textAttachmentString;
+        if (emojiImage) {
+            textAttachment.image = emojiImage ;
+            textAttachmentString = [NSAttributedString attributedStringWithAttachment:textAttachment];
+        }else{
+            NSString *str = [self getEmojiTextByKey:subStr];
+            if (str != nil) {
+                str = [NSString stringWithFormat:@"[%@]", str];
+                textAttachmentString = [[NSAttributedString alloc] initWithString:str];
+            }else {
+                textAttachmentString = [[NSAttributedString alloc] initWithString:@"[������]"];
+            }
+        }
+        
+        if (textAttachment != nil) {
+            [string deleteCharactersInRange:matchRange];
+            [string insertAttributedString:textAttachmentString atIndex:matchRange.location];
+        }
+    }
+    
+    return string;
+}
+
+- (NSAttributedString *) attStringFromTextForChatting:(NSString *) aInputText textFont:(UIFont*)font
+{
+    NSMutableAttributedString * string = [self attributtedStringFromText:aInputText];
+//    NSMutableParagraphStyle * paragraphStyle = [[NSMutableParagraphStyle alloc] init];
+//    paragraphStyle.lineSpacing = 0.0;
+//    [string addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [string length])];
+    if (font) {
+        [string addAttribute:NSFontAttributeName value:font range:NSMakeRange(0, string.length)];
+    }
+    return string;
+}
+
+- (NSAttributedString *) attStringFromTextForInputView:(NSString *) aInputText textFont:(UIFont*)font
+{
+    NSMutableAttributedString * string = [self attributtedStringFromText:aInputText];
+//    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
+//    paragraphStyle.lineSpacing = 0.0;
+//    [string addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, string.length)];
+    if (font) {
+        [string addAttribute:NSFontAttributeName value:font range:NSMakeRange(0, string.length)];
+    }
+    return string;
+}
+
+- (NSString*) getEmojiTextByKey:(NSString*) aKey
+{
+    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
+    NSString *plistPaht = [paths objectAtIndex:0];
+    NSString *fileName = [plistPaht stringByAppendingPathComponent:@"EmotionTextMapList.plist"];
+    NSMutableDictionary *emojiKeyValue = [[NSMutableDictionary alloc] initWithContentsOfFile: fileName];
+    return [emojiKeyValue objectForKey:aKey];
+    //    NSLog(@"write data is :%@",writeData);
+}
+
+- (NSString*) getEmojiImageNameByKey:(NSString*) aKey
+{
+    return nil;
+}
+
+- (void) setEaseEmotionEscapePattern:(NSString *)pattern
+{
+    _urlPattern = pattern;
+}
+
+- (void) setEaseEmotionEscapeDictionary:(NSDictionary*)dict
+{
+    _dict = dict;
+}
+
+@end
\ No newline at end of file

--
Gitblit v1.8.0