Merge branch 'mkirk/show-failed'

pull/1/head
Michael Kirk 8 years ago
commit a2642ccc0a

@ -7,35 +7,53 @@ import Foundation
@objc @objc
class OWSMessagesBubbleImageFactory: NSObject { class OWSMessagesBubbleImageFactory: NSObject {
let jsqFactory = JSQMessagesBubbleImageFactory()! private let jsqFactory = JSQMessagesBubbleImageFactory()!
// TODO: UIView is a little bit expensive to instantiate. // TODO: UIView is a little bit expensive to instantiate.
// Can we cache this value? // Can we cache this value?
var isRTL: Bool { private var isRTL: Bool {
return UIView().isRTL() return UIView().isRTL()
} }
var incoming: JSQMessagesBubbleImage { public var incoming: JSQMessagesBubbleImage {
let color = UIColor.jsq_messageBubbleLightGray()! let color = UIColor.jsq_messageBubbleLightGray()!
return incoming(color: color) return incoming(color: color)
} }
var outgoing: JSQMessagesBubbleImage { public var outgoing: JSQMessagesBubbleImage {
let color = UIColor.ows_materialBlue() let color = UIColor.ows_materialBlue()
return outgoing(color: color) return outgoing(color: color)
} }
var currentlyOutgoing: JSQMessagesBubbleImage { public var currentlyOutgoing: JSQMessagesBubbleImage {
let color = UIColor.ows_fadedBlue() let color = UIColor.ows_fadedBlue()
return outgoing(color: color) return outgoing(color: color)
} }
var outgoingFailed: JSQMessagesBubbleImage { public var outgoingFailed: JSQMessagesBubbleImage {
let color = UIColor.gray let color = UIColor.gray
return outgoing(color: color) return outgoing(color: color)
} }
func outgoing(color: UIColor) -> JSQMessagesBubbleImage { public func bubble(message: TSMessage) -> JSQMessagesBubbleImage {
if message is TSIncomingMessage {
return self.incoming
} else if let outgoingMessage = message as? TSOutgoingMessage {
switch outgoingMessage.messageState {
case .unsent:
return outgoingFailed
case .attemptingOut:
return currentlyOutgoing
default:
return outgoing
}
} else {
owsFail("Unexpected message type: \(message)")
return outgoing
}
}
private func outgoing(color: UIColor) -> JSQMessagesBubbleImage {
if isRTL { if isRTL {
return jsqFactory.incomingMessagesBubbleImage(with: color) return jsqFactory.incomingMessagesBubbleImage(with: color)
} else { } else {
@ -43,7 +61,7 @@ class OWSMessagesBubbleImageFactory: NSObject {
} }
} }
func incoming(color: UIColor) -> JSQMessagesBubbleImage { private func incoming(color: UIColor) -> JSQMessagesBubbleImage {
if isRTL { if isRTL {
return jsqFactory.outgoingMessagesBubbleImage(with: color) return jsqFactory.outgoingMessagesBubbleImage(with: color)
} else { } else {

@ -372,16 +372,10 @@ NS_ASSUME_NONNULL_BEGIN
self.payloadConstraints = [self.payloadView autoPinWidthToSuperview]; self.payloadConstraints = [self.payloadView autoPinWidthToSuperview];
} }
JSQMessagesBubbleImage *bubbleImageData; JSQMessagesBubbleImage *_Nullable bubbleImageData;
if ([self.viewItem.interaction isKindOfClass:[TSOutgoingMessage class]]) { if ([self.viewItem.interaction isKindOfClass:[TSMessage class]]) {
TSOutgoingMessage *outgoingMessage = (TSOutgoingMessage *)self.viewItem.interaction; TSMessage *message = (TSMessage *)self.viewItem.interaction;
if (outgoingMessage.messageState == TSOutgoingMessageStateUnsent) { bubbleImageData = [self.bubbleFactory bubbleWithMessage:message];
bubbleImageData = self.bubbleFactory.outgoingFailed;
} else {
bubbleImageData = self.bubbleFactory.outgoing;
}
} else {
bubbleImageData = self.bubbleFactory.incoming;
} }
self.bubbleImageView.image = bubbleImageData.messageBubbleImage; self.bubbleImageView.image = bubbleImageData.messageBubbleImage;

@ -353,7 +353,7 @@ class MessageDetailViewController: OWSViewController, UIScrollViewDelegate {
messageTextView.textColor = isIncoming ? UIColor.black : UIColor.white messageTextView.textColor = isIncoming ? UIColor.black : UIColor.white
messageTextView.text = messageBody messageTextView.text = messageBody
let bubbleImageData = isIncoming ? bubbleFactory.incoming : bubbleFactory.outgoing let bubbleImageData = bubbleFactory.bubble(message: message)
let messageTextProxyView = UIView() let messageTextProxyView = UIView()
messageTextProxyView.layoutMargins = UIEdgeInsets.zero messageTextProxyView.layoutMargins = UIEdgeInsets.zero

Loading…
Cancel
Save