diff --git a/Session/Conversations/Message Cells/Content Views/ReactionContainerView.swift b/Session/Conversations/Message Cells/Content Views/ReactionContainerView.swift index f603174fb..31376ffff 100644 --- a/Session/Conversations/Message Cells/Content Views/ReactionContainerView.swift +++ b/Session/Conversations/Message Cells/Content Views/ReactionContainerView.swift @@ -4,6 +4,7 @@ final class ReactionContainerView : UIView { let result = UIStackView() result.axis = .vertical result.spacing = Values.smallSpacing + result.alignment = .center return result }() @@ -28,15 +29,16 @@ final class ReactionContainerView : UIView { containerView.pin(to: self) } - public func update(_ reactions: [(String, Int)]) { + public func update(_ reactions: [(String, (Int, Bool))]) { for subview in containerView.arrangedSubviews { containerView.removeArrangedSubview(subview) } let stackView = UIStackView() stackView.axis = .horizontal stackView.spacing = Values.smallSpacing + stackView.alignment = .center for reaction in reactions { - let reactionView = ReactionView(emoji: reaction.0, number: reaction.1) + let reactionView = ReactionView(emoji: reaction.0, value: reaction.1) stackView.addArrangedSubview(reactionView) } containerView.addArrangedSubview(stackView) diff --git a/Session/Conversations/Message Cells/Content Views/ReactionView.swift b/Session/Conversations/Message Cells/Content Views/ReactionView.swift index 4f25b7925..c72f3f835 100644 --- a/Session/Conversations/Message Cells/Content Views/ReactionView.swift +++ b/Session/Conversations/Message Cells/Content Views/ReactionView.swift @@ -3,14 +3,16 @@ import UIKit final class ReactionView : UIView { private let emoji: String private let number: Int + private let hasCurrentUser: Bool // MARK: Settings private static let height: CGFloat = 22 // MARK: Lifecycle - init(emoji: String, number: Int) { + init(emoji: String, value: (Int, Bool)) { self.emoji = emoji - self.number = number + self.number = value.0 + self.hasCurrentUser = value.1 super.init(frame: CGRect.zero) setUpViewHierarchy() } @@ -29,7 +31,7 @@ final class ReactionView : UIView { emojiLabel.font = .systemFont(ofSize: Values.verySmallFontSize) let numberLabel = UILabel() - numberLabel.text = self.number < 1000 ? "\(number)" : String(format: "%.2f", Float(number) / 1000) + "k" + numberLabel.text = self.number < 1000 ? "\(number)" : String(format: "%.1f", Float(number) / 1000) + "k" numberLabel.font = .systemFont(ofSize: Values.verySmallFontSize) numberLabel.textColor = Colors.text @@ -45,5 +47,10 @@ final class ReactionView : UIView { set(.height, to: ReactionView.height) backgroundColor = Colors.receivedMessageBackground layer.cornerRadius = ReactionView.height / 2 + + if hasCurrentUser { + layer.borderWidth = 1 + layer.borderColor = Colors.accent.cgColor + } } } diff --git a/Session/Conversations/Message Cells/VisibleMessageCell.swift b/Session/Conversations/Message Cells/VisibleMessageCell.swift index 65478758e..f3a7e45f8 100644 --- a/Session/Conversations/Message Cells/VisibleMessageCell.swift +++ b/Session/Conversations/Message Cells/VisibleMessageCell.swift @@ -457,17 +457,17 @@ final class VisibleMessageCell : MessageCell, LinkPreviewViewDelegate { } private func populateReaction(for viewItem: ConversationViewItem, message: TSMessage) { - let reactions: OrderedDictionary = OrderedDictionary() + let reactions: OrderedDictionary = OrderedDictionary() for reaction in message.reactions { if let reactMessage = reaction as? ReactMessage, let emoji = reactMessage.emoji { - if let number = reactions.value(forKey: emoji) { - reactions.replace(key: emoji, value: number + 1) + let isSelfSend = (reactMessage.sender! == getUserHexEncodedPublicKey()) + if let value = reactions.value(forKey: emoji) { + reactions.replace(key: emoji, value: (value.0 + 1, value.1 || isSelfSend)) } else { - reactions.append(key: emoji, value: 1) + reactions.append(key: emoji, value: (1, isSelfSend)) } } } - print("Ryan Test: \(reactions.orderedKeys)") reactionContainerView.update(reactions.orderedItems) }