Consider displaying names in typing notifications

This commit is contained in:
Gil Eluard
2021-04-06 14:32:25 +02:00
parent ad0f7c9143
commit 29de4354d6
3 changed files with 30 additions and 2 deletions
@@ -32,10 +32,17 @@ class RoomTypingBubbleCell: UITableViewCell {
// MARK: - members
private var userPictureViews: Array<MXKImageView> = Array()
private var typingUsers: Array<MXRoomMember> = Array()
// MARK: - Lifecycle
override func awakeFromNib() {
super.awakeFromNib()
additionalUsersLabel?.textColor = ThemeService.shared().theme.textSecondaryColor
dotsView?.highlightedDotColor = ThemeService.shared().theme.textTertiaryColor
dotsView?.dotColor = ThemeService.shared().theme.textSecondaryColor
}
override func prepareForReuse() {
super.prepareForReuse()
@@ -97,7 +104,22 @@ class RoomTypingBubbleCell: UITableViewCell {
self.contentView.addSubview(pictureView)
}
additionalUsersLabel?.text = typingUsers.count <= 4 ? nil : "+\(typingUsers.count - 4)"
switch typingUsers.count {
case 0:
additionalUsersLabel?.text = nil
case 1:
additionalUsersLabel?.text = firstUserNameFor(typingUsers)
default:
additionalUsersLabel?.text = VectorL10n.roomMultipleTypingNotification(firstUserNameFor(typingUsers) ?? "")
}
self.setNeedsLayout()
}
private func firstUserNameFor(_ typingUsers: Array<MXRoomMember>) -> String? {
guard let firstUser = typingUsers.first else {
return nil
}
return firstUser.displayname.isEmptyOrNil ? firstUser.userId : firstUser.displayname
}
}