diff --git a/Example/Sources/MockMessage.swift b/Example/Sources/MockMessage.swift index 355eb82d..d8d36c62 100644 --- a/Example/Sources/MockMessage.swift +++ b/Example/Sources/MockMessage.swift @@ -26,17 +26,25 @@ import Foundation import MessageKit struct MockMessage: MessageType { - - var messageId: String - var sender: Sender - var sentDate: Date - var data: MessageData - - init(text: String, sender: Sender, messageId: String) { - data = .text(text) - self.sender = sender - self.messageId = messageId - self.sentDate = Date() - } - + + var messageId: String + var sender: Sender + var sentDate: Date + var data: MessageData + + private init(data: MessageData, sender: Sender, messageId: String) { + self.data = data + self.sender = sender + self.messageId = messageId + self.sentDate = Date() + } + + init(text: String, sender: Sender, messageId: String) { + self.init(data: .text(text), sender: sender, messageId: messageId) + } + + init(attributedText: NSAttributedString, sender: Sender, messageId: String) { + self.init(data: .attributedText(attributedText), sender: sender, messageId: messageId) + } + } diff --git a/Example/Sources/SampleData.swift b/Example/Sources/SampleData.swift index 5fbf6a95..c7dccf8e 100644 --- a/Example/Sources/SampleData.swift +++ b/Example/Sources/SampleData.swift @@ -39,8 +39,28 @@ struct SampleData { let msg6 = MockMessage(text: "I think if you do something and it turns out pretty good, then you should go do something else wonderful, not dwell on it for too long. Just figure out what’s next.", sender: Jobs, messageId: UUID().uuidString) let msg7 = MockMessage(text: "Remembering that I'll be dead soon is the most important tool I've ever encountered to help me make the big choices in life. Because almost everything - all external expectations, all pride, all fear of embarrassment or failure - these things just fall away in the face of death, leaving only what is truly important.", sender: Jobs, messageId: UUID().uuidString) let msg8 = MockMessage(text: "Price is rarely the most important thing. A cheap product might sell some units. Somebody gets it home and they feel great when they pay the money, but then they get it home and use it and the joy is gone.", sender: Cook, messageId: UUID().uuidString) - - return [msg1, msg2, msg3, msg4, msg5, msg6, msg7, msg8] + + let msg9Text = NSString(string: "Use .attributedText() to add bold, italic, colored text and more...") + let msg9AttributedText = NSMutableAttributedString(string: String(msg9Text)) + + if #available(iOS 9.0, *) { + msg9AttributedText.addAttributes([NSFontAttributeName: UIFont.monospacedDigitSystemFont(ofSize: UIFont.systemFontSize, weight: UIFontWeightBold)], range: msg9Text.range(of: ".attributedText()")) + } else { + msg9AttributedText.addAttributes([NSUnderlineStyleAttributeName: NSUnderlineStyle.styleSingle], range: msg9Text.range(of: ".attributedText()")) + } + + msg9AttributedText.addAttributes([NSFontAttributeName: UIFont.boldSystemFont(ofSize: UIFont.systemFontSize)], + range: msg9Text.range(of: "bold")) + + msg9AttributedText.addAttributes([NSFontAttributeName: UIFont.italicSystemFont(ofSize: UIFont.systemFontSize)], + range: msg9Text.range(of: "italic")) + + msg9AttributedText.addAttributes([NSForegroundColorAttributeName: UIColor.red], + range: msg9Text.range(of: "colored")) + + let msg9 = MockMessage(attributedText: msg9AttributedText, sender: Jobs, messageId: UUID().uuidString) + + return [msg1, msg2, msg3, msg4, msg5, msg6, msg7, msg8, msg9] } func getCurrentSender() -> Sender {