diff --git a/Signal/src/OWSMessagesBubbleImageFactory.swift b/Signal/src/OWSMessagesBubbleImageFactory.swift index 1586287b4..878b145c6 100644 --- a/Signal/src/OWSMessagesBubbleImageFactory.swift +++ b/Signal/src/OWSMessagesBubbleImageFactory.swift @@ -9,33 +9,35 @@ import SignalServiceKit @objc class OWSMessagesBubbleImageFactory: NSObject { + static let shared = OWSMessagesBubbleImageFactory() + private let jsqFactory = JSQMessagesBubbleImageFactory()! // TODO: UIView is a little bit expensive to instantiate. // Can we cache this value? - private var isRTL: Bool { + private lazy var isRTL: Bool = { return UIView().isRTL() - } + }() - public var incoming: JSQMessagesBubbleImage { + public lazy var incoming: JSQMessagesBubbleImage = { let color = UIColor.jsq_messageBubbleLightGray()! - return incoming(color: color) - } + return self.incoming(color: color) + }() - public var outgoing: JSQMessagesBubbleImage { + public lazy var outgoing: JSQMessagesBubbleImage = { let color = UIColor.ows_materialBlue() - return outgoing(color: color) - } + return self.outgoing(color: color) + }() - public var currentlyOutgoing: JSQMessagesBubbleImage { + public lazy var currentlyOutgoing: JSQMessagesBubbleImage = { let color = UIColor.ows_fadedBlue() - return outgoing(color: color) - } + return self.outgoing(color: color) + }() - public var outgoingFailed: JSQMessagesBubbleImage { + public lazy var outgoingFailed: JSQMessagesBubbleImage = { let color = UIColor.gray - return outgoing(color: color) - } + return self.outgoing(color: color) + }() public func bubble(message: TSMessage) -> JSQMessagesBubbleImage { if message is TSIncomingMessage { diff --git a/Signal/src/ViewControllers/ConversationView/Cells/OWSMessageCell.m b/Signal/src/ViewControllers/ConversationView/Cells/OWSMessageCell.m index da153cbc4..bd7262034 100644 --- a/Signal/src/ViewControllers/ConversationView/Cells/OWSMessageCell.m +++ b/Signal/src/ViewControllers/ConversationView/Cells/OWSMessageCell.m @@ -1048,12 +1048,7 @@ NS_ASSUME_NONNULL_BEGIN - (OWSMessagesBubbleImageFactory *)bubbleFactory { - static OWSMessagesBubbleImageFactory *instance = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - instance = [OWSMessagesBubbleImageFactory new]; - }); - return instance; + return [OWSMessagesBubbleImageFactory shared]; } - (void)prepareForReuse