mirror of
https://github.com/vector-im/element-ios.git
synced 2024-09-29 07:42:40 +00:00
User name coloring on thread list
This commit is contained in:
parent
48a027215d
commit
e422917cf3
4 changed files with 16 additions and 2 deletions
|
@ -249,10 +249,10 @@ extension ThreadListViewController: UITableViewDataSource {
|
|||
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
||||
let cell: ThreadTableViewCell = tableView.dequeueReusableCell(for: indexPath)
|
||||
|
||||
cell.update(theme: theme)
|
||||
if let threadVM = viewModel.threadViewModel(at: indexPath.row) {
|
||||
cell.configure(withViewModel: threadVM)
|
||||
}
|
||||
cell.update(theme: theme)
|
||||
|
||||
return cell
|
||||
}
|
||||
|
|
|
@ -179,7 +179,8 @@ final class ThreadListViewModel: ThreadListViewModelProtocol {
|
|||
lastMessageSenderAvatar: lastAvatarViewData,
|
||||
lastMessageText: lastMessageText)
|
||||
|
||||
return ThreadViewModel(rootMessageSenderAvatar: rootAvatarViewData,
|
||||
return ThreadViewModel(rootMessageSenderUserId: rootMessageSender?.userId,
|
||||
rootMessageSenderAvatar: rootAvatarViewData,
|
||||
rootMessageSenderDisplayName: rootMessageSender?.displayname,
|
||||
rootMessageText: rootMessageText,
|
||||
lastMessageTime: lastMessageTime,
|
||||
|
|
|
@ -28,6 +28,11 @@ class ThreadTableViewCell: UITableViewCell {
|
|||
@IBOutlet private weak var rootMessageContentLabel: UILabel!
|
||||
@IBOutlet private weak var lastMessageTimeLabel: UILabel!
|
||||
@IBOutlet private weak var summaryView: ThreadSummaryView!
|
||||
|
||||
private static var usernameColorGenerator: UserNameColorGenerator = {
|
||||
let generator = UserNameColorGenerator()
|
||||
return generator
|
||||
}()
|
||||
|
||||
override func awakeFromNib() {
|
||||
super.awakeFromNib()
|
||||
|
@ -41,6 +46,11 @@ class ThreadTableViewCell: UITableViewCell {
|
|||
} else {
|
||||
rootMessageAvatarView.avatarImageView.image = nil
|
||||
}
|
||||
if let senderUserId = viewModel.rootMessageSenderUserId {
|
||||
rootMessageSenderLabel.textColor = Self.usernameColorGenerator.color(from: senderUserId)
|
||||
} else {
|
||||
rootMessageSenderLabel.textColor = Self.usernameColorGenerator.defaultColor
|
||||
}
|
||||
rootMessageSenderLabel.text = viewModel.rootMessageSenderDisplayName
|
||||
rootMessageContentLabel.text = viewModel.rootMessageText
|
||||
lastMessageTimeLabel.text = viewModel.lastMessageTime
|
||||
|
@ -56,6 +66,8 @@ extension ThreadTableViewCell: NibReusable {}
|
|||
extension ThreadTableViewCell: Themable {
|
||||
|
||||
func update(theme: Theme) {
|
||||
Self.usernameColorGenerator.defaultColor = theme.colors.primaryContent
|
||||
Self.usernameColorGenerator.userNameColors = theme.colors.namesAndAvatars
|
||||
rootMessageAvatarView.backgroundColor = .clear
|
||||
rootMessageContentLabel.textColor = theme.colors.primaryContent
|
||||
lastMessageTimeLabel.textColor = theme.colors.secondaryContent
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
import Foundation
|
||||
|
||||
struct ThreadViewModel {
|
||||
var rootMessageSenderUserId: String?
|
||||
var rootMessageSenderAvatar: AvatarViewDataProtocol?
|
||||
var rootMessageSenderDisplayName: String?
|
||||
var rootMessageText: String?
|
||||
|
|
Loading…
Reference in a new issue