|
|
|
@ -27,40 +27,33 @@ public class MessageRecipientStatusUtils: NSObject {
|
|
|
|
|
// This method is per-recipient.
|
|
|
|
|
@objc
|
|
|
|
|
public class func recipientStatus(outgoingMessage: TSOutgoingMessage,
|
|
|
|
|
recipientState: TSOutgoingMessageRecipientState,
|
|
|
|
|
referenceView: UIView) -> MessageReceiptStatus {
|
|
|
|
|
recipientState: TSOutgoingMessageRecipientState) -> MessageReceiptStatus {
|
|
|
|
|
let (messageReceiptStatus, _, _) = recipientStatusAndStatusMessage(outgoingMessage: outgoingMessage,
|
|
|
|
|
recipientState: recipientState,
|
|
|
|
|
referenceView: referenceView)
|
|
|
|
|
recipientState: recipientState)
|
|
|
|
|
return messageReceiptStatus
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// This method is per-recipient.
|
|
|
|
|
@objc
|
|
|
|
|
public class func shortStatusMessage(outgoingMessage: TSOutgoingMessage,
|
|
|
|
|
recipientState: TSOutgoingMessageRecipientState,
|
|
|
|
|
referenceView: UIView) -> String {
|
|
|
|
|
recipientState: TSOutgoingMessageRecipientState) -> String {
|
|
|
|
|
let (_, shortStatusMessage, _) = recipientStatusAndStatusMessage(outgoingMessage: outgoingMessage,
|
|
|
|
|
recipientState: recipientState,
|
|
|
|
|
referenceView: referenceView)
|
|
|
|
|
recipientState: recipientState)
|
|
|
|
|
return shortStatusMessage
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// This method is per-recipient.
|
|
|
|
|
@objc
|
|
|
|
|
public class func longStatusMessage(outgoingMessage: TSOutgoingMessage,
|
|
|
|
|
recipientState: TSOutgoingMessageRecipientState,
|
|
|
|
|
referenceView: UIView) -> String {
|
|
|
|
|
recipientState: TSOutgoingMessageRecipientState) -> String {
|
|
|
|
|
let (_, _, longStatusMessage) = recipientStatusAndStatusMessage(outgoingMessage: outgoingMessage,
|
|
|
|
|
recipientState: recipientState,
|
|
|
|
|
referenceView: referenceView)
|
|
|
|
|
recipientState: recipientState)
|
|
|
|
|
return longStatusMessage
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// This method is per-recipient.
|
|
|
|
|
class func recipientStatusAndStatusMessage(outgoingMessage: TSOutgoingMessage,
|
|
|
|
|
recipientState: TSOutgoingMessageRecipientState,
|
|
|
|
|
referenceView: UIView) -> (status: MessageReceiptStatus, shortStatusMessage: String, longStatusMessage: String) {
|
|
|
|
|
recipientState: TSOutgoingMessageRecipientState) -> (status: MessageReceiptStatus, shortStatusMessage: String, longStatusMessage: String) {
|
|
|
|
|
|
|
|
|
|
switch recipientState.state {
|
|
|
|
|
case .failed:
|
|
|
|
@ -83,20 +76,18 @@ public class MessageRecipientStatusUtils: NSObject {
|
|
|
|
|
}
|
|
|
|
|
case .sent:
|
|
|
|
|
if let readTimestamp = recipientState.readTimestamp {
|
|
|
|
|
let timestampString = DateUtil.formatPastTimestampRelativeToNow(readTimestamp.uint64Value,
|
|
|
|
|
isRTL: referenceView.isRTL())
|
|
|
|
|
let timestampString = DateUtil.formatPastTimestampRelativeToNow(readTimestamp.uint64Value)
|
|
|
|
|
let shortStatusMessage = timestampString
|
|
|
|
|
let longStatusMessage = NSLocalizedString("MESSAGE_STATUS_READ", comment: "message footer for read messages").rtlSafeAppend(" ", referenceView: referenceView)
|
|
|
|
|
.rtlSafeAppend(timestampString, referenceView: referenceView)
|
|
|
|
|
let longStatusMessage = NSLocalizedString("MESSAGE_STATUS_READ", comment: "message footer for read messages").rtlSafeAppend(" ")
|
|
|
|
|
.rtlSafeAppend(timestampString)
|
|
|
|
|
return (status:.read, shortStatusMessage:shortStatusMessage, longStatusMessage:longStatusMessage)
|
|
|
|
|
}
|
|
|
|
|
if let deliveryTimestamp = recipientState.deliveryTimestamp {
|
|
|
|
|
let timestampString = DateUtil.formatPastTimestampRelativeToNow(deliveryTimestamp.uint64Value,
|
|
|
|
|
isRTL: referenceView.isRTL())
|
|
|
|
|
let timestampString = DateUtil.formatPastTimestampRelativeToNow(deliveryTimestamp.uint64Value)
|
|
|
|
|
let shortStatusMessage = timestampString
|
|
|
|
|
let longStatusMessage = NSLocalizedString("MESSAGE_STATUS_DELIVERED",
|
|
|
|
|
comment: "message status for message delivered to their recipient.").rtlSafeAppend(" ", referenceView: referenceView)
|
|
|
|
|
.rtlSafeAppend(timestampString, referenceView: referenceView)
|
|
|
|
|
comment: "message status for message delivered to their recipient.").rtlSafeAppend(" ")
|
|
|
|
|
.rtlSafeAppend(timestampString)
|
|
|
|
|
return (status:.delivered, shortStatusMessage:shortStatusMessage, longStatusMessage:longStatusMessage)
|
|
|
|
|
}
|
|
|
|
|
let statusMessage =
|
|
|
|
@ -111,8 +102,7 @@ public class MessageRecipientStatusUtils: NSObject {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// This method is per-message.
|
|
|
|
|
internal class func receiptStatusAndMessage(outgoingMessage: TSOutgoingMessage,
|
|
|
|
|
referenceView: UIView) -> (status: MessageReceiptStatus, message: String) {
|
|
|
|
|
internal class func receiptStatusAndMessage(outgoingMessage: TSOutgoingMessage) -> (status: MessageReceiptStatus, message: String) {
|
|
|
|
|
|
|
|
|
|
switch outgoingMessage.messageState {
|
|
|
|
|
case .failed:
|
|
|
|
@ -145,18 +135,15 @@ public class MessageRecipientStatusUtils: NSObject {
|
|
|
|
|
|
|
|
|
|
// This method is per-message.
|
|
|
|
|
@objc
|
|
|
|
|
public class func receiptMessage(outgoingMessage: TSOutgoingMessage,
|
|
|
|
|
referenceView: UIView) -> String {
|
|
|
|
|
let (_, message ) = receiptStatusAndMessage(outgoingMessage: outgoingMessage,
|
|
|
|
|
referenceView: referenceView)
|
|
|
|
|
public class func receiptMessage(outgoingMessage: TSOutgoingMessage) -> String {
|
|
|
|
|
let (_, message ) = receiptStatusAndMessage(outgoingMessage: outgoingMessage)
|
|
|
|
|
return message
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// This method is per-message.
|
|
|
|
|
@objc
|
|
|
|
|
public class func recipientStatus(outgoingMessage: TSOutgoingMessage, referenceView: UIView) -> MessageReceiptStatus {
|
|
|
|
|
let (status, _ ) = receiptStatusAndMessage(outgoingMessage: outgoingMessage,
|
|
|
|
|
referenceView: referenceView)
|
|
|
|
|
public class func recipientStatus(outgoingMessage: TSOutgoingMessage) -> MessageReceiptStatus {
|
|
|
|
|
let (status, _ ) = receiptStatusAndMessage(outgoingMessage: outgoingMessage)
|
|
|
|
|
return status
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|