Merge branch 'develop' into ismail/5096_thread_notifications

This commit is contained in:
ismailgulek
2022-01-27 03:20:25 +03:00
210 changed files with 3878 additions and 1073 deletions
@@ -16,22 +16,22 @@
import Foundation
struct ThreadViewModel {
var rootMessageSenderUserId: String?
var rootMessageSenderAvatar: AvatarViewDataProtocol?
var rootMessageSenderDisplayName: String?
var rootMessageText: NSAttributedString?
var rootMessageRedacted: Bool
var lastMessageTime: String?
var summaryViewModel: ThreadSummaryViewModel?
var notificationStatus: ThreadNotificationStatus
struct ThreadModel {
let rootMessageSenderUserId: String?
let rootMessageSenderAvatar: AvatarViewDataProtocol?
let rootMessageSenderDisplayName: String?
let rootMessageText: NSAttributedString?
let rootMessageRedacted: Bool
let lastMessageTime: String?
let summaryModel: ThreadSummaryModel?
let notificationStatus: ThreadNotificationStatus
}
enum ThreadNotificationStatus {
case none
case notified
case highlighted
init(withThread thread: MXThread) {
if thread.highlightCount > 0 {
self = .highlighted
@@ -40,10 +40,7 @@ class ThreadTableViewCell: UITableViewCell {
@IBOutlet private weak var summaryView: ThreadSummaryView!
@IBOutlet private weak var notificationStatusView: ThreadNotificationStatusView!
private static var usernameColorGenerator: UserNameColorGenerator = {
let generator = UserNameColorGenerator()
return generator
}()
private static var usernameColorGenerator = UserNameColorGenerator()
override func awakeFromNib() {
super.awakeFromNib()
@@ -51,26 +48,26 @@ class ThreadTableViewCell: UITableViewCell {
separatorInset = Constants.separatorInset
}
func configure(withViewModel viewModel: ThreadViewModel) {
if let rootAvatar = viewModel.rootMessageSenderAvatar {
func configure(withModel model: ThreadModel) {
if let rootAvatar = model.rootMessageSenderAvatar {
rootMessageAvatarView.fill(with: rootAvatar)
} else {
rootMessageAvatarView.avatarImageView.image = nil
}
configuredSenderId = viewModel.rootMessageSenderUserId
configuredRootMessageRedacted = viewModel.rootMessageRedacted
configuredSenderId = model.rootMessageSenderUserId
configuredRootMessageRedacted = model.rootMessageRedacted
updateRootMessageSenderColor()
rootMessageSenderLabel.text = viewModel.rootMessageSenderDisplayName
if let rootMessageText = viewModel.rootMessageText {
rootMessageSenderLabel.text = model.rootMessageSenderDisplayName
if let rootMessageText = model.rootMessageText {
updateRootMessageContentAttributes(rootMessageText, color: rootMessageColor)
} else {
rootMessageContentLabel.attributedText = nil
}
lastMessageTimeLabel.text = viewModel.lastMessageTime
if let summaryViewModel = viewModel.summaryViewModel {
summaryView.configure(withViewModel: summaryViewModel)
lastMessageTimeLabel.text = model.lastMessageTime
if let summaryModel = model.summaryModel {
summaryView.configure(withModel: summaryModel)
}
notificationStatusView.status = viewModel.notificationStatus
notificationStatusView.status = model.notificationStatus
}
private func updateRootMessageSenderColor() {