mirror of
https://github.com/vector-im/element-ios.git
synced 2024-09-28 23:32:41 +00:00
Fix further review remarks
This commit is contained in:
parent
6ee10b5ffe
commit
815f1f586a
9 changed files with 50 additions and 49 deletions
|
@ -136,6 +136,7 @@ internal enum Asset {
|
|||
internal static let roomContextMenuReply = ImageAsset(name: "room_context_menu_reply")
|
||||
internal static let roomContextMenuReplyInThread = ImageAsset(name: "room_context_menu_reply_in_thread")
|
||||
internal static let roomContextMenuRetry = ImageAsset(name: "room_context_menu_retry")
|
||||
internal static let roomContextMenuThread = ImageAsset(name: "room_context_menu_thread")
|
||||
internal static let inputCloseIcon = ImageAsset(name: "input_close_icon")
|
||||
internal static let inputEditIcon = ImageAsset(name: "input_edit_icon")
|
||||
internal static let inputReplyIcon = ImageAsset(name: "input_reply_icon")
|
||||
|
|
|
@ -66,14 +66,14 @@ class ThreadSummaryView: UIView {
|
|||
loadNibContent()
|
||||
}
|
||||
|
||||
@nonobjc func configure(withViewModel viewModel: ThreadSummaryModel) {
|
||||
numberOfRepliesLabel.text = String(viewModel.numberOfReplies)
|
||||
if let avatar = viewModel.lastMessageSenderAvatar {
|
||||
@nonobjc func configure(withModel model: ThreadSummaryModel) {
|
||||
numberOfRepliesLabel.text = String(model.numberOfReplies)
|
||||
if let avatar = model.lastMessageSenderAvatar {
|
||||
lastMessageAvatarView.fill(with: avatar)
|
||||
} else {
|
||||
lastMessageAvatarView.avatarImageView.image = nil
|
||||
}
|
||||
lastMessageContentLabel.text = viewModel.lastMessageText
|
||||
lastMessageContentLabel.text = model.lastMessageText
|
||||
}
|
||||
|
||||
private func configure() {
|
||||
|
@ -105,10 +105,10 @@ class ThreadSummaryView: UIView {
|
|||
let formatterError = UnsafeMutablePointer<MXKEventFormatterError>.allocate(capacity: 1)
|
||||
let lastMessageText = eventFormatter.string(from: lastMessage, with: roomState, error: formatterError)
|
||||
|
||||
let viewModel = ThreadSummaryModel(numberOfReplies: thread.numberOfReplies,
|
||||
lastMessageSenderAvatar: avatarViewData,
|
||||
lastMessageText: lastMessageText)
|
||||
self.configure(withViewModel: viewModel)
|
||||
let model = ThreadSummaryModel(numberOfReplies: thread.numberOfReplies,
|
||||
lastMessageSenderAvatar: avatarViewData,
|
||||
lastMessageText: lastMessageText)
|
||||
self.configure(withModel: model)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -44,15 +44,15 @@ class ThreadRoomTitleView: RoomTitleView {
|
|||
|
||||
// MARK: - Methods
|
||||
|
||||
func configure(withViewModel viewModel: ThreadRoomTitleModel) {
|
||||
if let avatarViewData = viewModel.roomAvatar {
|
||||
func configure(withModel model: ThreadRoomTitleModel) {
|
||||
if let avatarViewData = model.roomAvatar {
|
||||
roomAvatarView.fill(with: avatarViewData)
|
||||
} else {
|
||||
roomAvatarView.avatarImageView.image = nil
|
||||
}
|
||||
roomEncryptionBadgeView.image = viewModel.roomEncryptionBadge
|
||||
roomEncryptionBadgeView.isHidden = viewModel.roomEncryptionBadge == nil
|
||||
roomNameLabel.text = viewModel.roomDisplayName
|
||||
roomEncryptionBadgeView.image = model.roomEncryptionBadge
|
||||
roomEncryptionBadgeView.isHidden = model.roomEncryptionBadge == nil
|
||||
roomNameLabel.text = model.roomDisplayName
|
||||
}
|
||||
|
||||
// MARK: - Overrides
|
||||
|
@ -87,10 +87,10 @@ class ThreadRoomTitleView: RoomTitleView {
|
|||
encrpytionBadge = nil
|
||||
}
|
||||
|
||||
let viewModel = ThreadRoomTitleModel(roomAvatar: avatarViewData,
|
||||
roomEncryptionBadge: encrpytionBadge,
|
||||
roomDisplayName: room.displayName)
|
||||
configure(withViewModel: viewModel)
|
||||
let model = ThreadRoomTitleModel(roomAvatar: avatarViewData,
|
||||
roomEncryptionBadge: encrpytionBadge,
|
||||
roomDisplayName: room.displayName)
|
||||
configure(withModel: model)
|
||||
}
|
||||
|
||||
override func awakeFromNib() {
|
||||
|
|
|
@ -119,7 +119,7 @@ final class ThreadListViewController: UIViewController {
|
|||
private func setupViews() {
|
||||
let titleView = ThreadRoomTitleView.loadFromNib()
|
||||
titleView.mode = .allThreads
|
||||
titleView.configure(withViewModel: viewModel.titleViewModel)
|
||||
titleView.configure(withModel: viewModel.titleModel)
|
||||
titleView.updateLayout(for: UIApplication.shared.statusBarOrientation)
|
||||
self.titleView = titleView
|
||||
navigationItem.leftItemsSupplementBackButton = true
|
||||
|
@ -144,8 +144,8 @@ final class ThreadListViewController: UIViewController {
|
|||
self.renderLoading()
|
||||
case .loaded:
|
||||
self.renderLoaded()
|
||||
case .empty(let viewModel):
|
||||
self.renderEmptyView(withViewModel: viewModel)
|
||||
case .empty(let model):
|
||||
self.renderEmptyView(withModel: model)
|
||||
case .showingFilterTypes:
|
||||
self.renderShowingFilterTypes()
|
||||
case .error(let error):
|
||||
|
@ -166,9 +166,9 @@ final class ThreadListViewController: UIViewController {
|
|||
navigationItem.rightBarButtonItem?.isEnabled = true
|
||||
}
|
||||
|
||||
private func renderEmptyView(withViewModel emptyViewModel: ThreadListEmptyModel) {
|
||||
private func renderEmptyView(withModel model: ThreadListEmptyModel) {
|
||||
self.activityPresenter.removeCurrentActivityIndicator(animated: true)
|
||||
emptyView.configure(withViewModel: emptyViewModel)
|
||||
emptyView.configure(withModel: model)
|
||||
threadsTableView.isHidden = true
|
||||
emptyView.isHidden = false
|
||||
navigationItem.rightBarButtonItem?.isEnabled = viewModel.selectedFilterType == .myThreads
|
||||
|
@ -243,8 +243,8 @@ extension ThreadListViewController: UITableViewDataSource {
|
|||
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
||||
let cell: ThreadTableViewCell = tableView.dequeueReusableCell(for: indexPath)
|
||||
|
||||
if let threadVM = viewModel.threadViewModel(at: indexPath.row) {
|
||||
cell.configure(withViewModel: threadVM)
|
||||
if let threadModel = viewModel.threadModel(at: indexPath.row) {
|
||||
cell.configure(withModel: threadModel)
|
||||
}
|
||||
cell.update(theme: theme)
|
||||
|
||||
|
|
|
@ -83,14 +83,14 @@ final class ThreadListViewModel: ThreadListViewModelProtocol {
|
|||
return threads.count
|
||||
}
|
||||
|
||||
func threadViewModel(at index: Int) -> ThreadModel? {
|
||||
func threadModel(at index: Int) -> ThreadModel? {
|
||||
guard index < threads.count else {
|
||||
return nil
|
||||
}
|
||||
return viewModel(forThread: threads[index])
|
||||
return model(forThread: threads[index])
|
||||
}
|
||||
|
||||
var titleViewModel: ThreadRoomTitleModel {
|
||||
var titleModel: ThreadRoomTitleModel {
|
||||
guard let room = session.room(withRoomId: roomId) else {
|
||||
return .empty
|
||||
}
|
||||
|
@ -135,7 +135,7 @@ final class ThreadListViewModel: ThreadListViewModelProtocol {
|
|||
|
||||
// MARK: - Private
|
||||
|
||||
private func viewModel(forThread thread: MXThread) -> ThreadModel {
|
||||
private func model(forThread thread: MXThread) -> ThreadModel {
|
||||
let rootAvatarViewData: AvatarViewData?
|
||||
let rootMessageSender: MXUser?
|
||||
let lastAvatarViewData: AvatarViewData?
|
||||
|
@ -175,15 +175,15 @@ final class ThreadListViewModel: ThreadListViewModelProtocol {
|
|||
lastMessageSender = nil
|
||||
}
|
||||
|
||||
let summaryViewModel = ThreadSummaryModel(numberOfReplies: thread.numberOfReplies,
|
||||
lastMessageSenderAvatar: lastAvatarViewData,
|
||||
lastMessageText: lastMessageText)
|
||||
let summaryModel = ThreadSummaryModel(numberOfReplies: thread.numberOfReplies,
|
||||
lastMessageSenderAvatar: lastAvatarViewData,
|
||||
lastMessageText: lastMessageText)
|
||||
|
||||
return ThreadModel(rootMessageSenderAvatar: rootAvatarViewData,
|
||||
rootMessageSenderDisplayName: rootMessageSender?.displayname,
|
||||
rootMessageText: rootMessageText,
|
||||
lastMessageTime: lastMessageTime,
|
||||
summaryViewModel: summaryViewModel)
|
||||
summaryModel: summaryModel)
|
||||
}
|
||||
|
||||
private func rootMessageText(forThread thread: MXThread) -> String? {
|
||||
|
|
|
@ -38,10 +38,10 @@ protocol ThreadListViewModelProtocol {
|
|||
|
||||
var viewState: ThreadListViewState { get }
|
||||
|
||||
var titleViewModel: ThreadRoomTitleModel { get }
|
||||
var titleModel: ThreadRoomTitleModel { get }
|
||||
var selectedFilterType: ThreadListFilterType { get }
|
||||
var numberOfThreads: Int { get }
|
||||
func threadViewModel(at index: Int) -> ThreadModel?
|
||||
func threadModel(at index: Int) -> ThreadModel?
|
||||
}
|
||||
|
||||
enum ThreadListFilterType {
|
||||
|
|
|
@ -21,5 +21,5 @@ struct ThreadModel {
|
|||
let rootMessageSenderDisplayName: String?
|
||||
let rootMessageText: String?
|
||||
let lastMessageTime: String?
|
||||
let summaryViewModel: ThreadSummaryModel?
|
||||
let summaryModel: ThreadSummaryModel?
|
||||
}
|
||||
|
|
|
@ -35,17 +35,17 @@ class ThreadTableViewCell: UITableViewCell {
|
|||
separatorInset = Constants.separatorInset
|
||||
}
|
||||
|
||||
func configure(withViewModel viewModel: ThreadModel) {
|
||||
if let rootAvatar = viewModel.rootMessageSenderAvatar {
|
||||
func configure(withModel model: ThreadModel) {
|
||||
if let rootAvatar = model.rootMessageSenderAvatar {
|
||||
rootMessageAvatarView.fill(with: rootAvatar)
|
||||
} else {
|
||||
rootMessageAvatarView.avatarImageView.image = nil
|
||||
}
|
||||
rootMessageSenderLabel.text = viewModel.rootMessageSenderDisplayName
|
||||
rootMessageContentLabel.text = viewModel.rootMessageText
|
||||
lastMessageTimeLabel.text = viewModel.lastMessageTime
|
||||
if let summaryViewModel = viewModel.summaryViewModel {
|
||||
summaryView.configure(withViewModel: summaryViewModel)
|
||||
rootMessageSenderLabel.text = model.rootMessageSenderDisplayName
|
||||
rootMessageContentLabel.text = model.rootMessageText
|
||||
lastMessageTimeLabel.text = model.lastMessageTime
|
||||
if let summaryModel = model.summaryModel {
|
||||
summaryView.configure(withModel: summaryModel)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -39,14 +39,14 @@ class ThreadListEmptyView: UIView {
|
|||
loadNibContent()
|
||||
}
|
||||
|
||||
func configure(withViewModel viewModel: ThreadListEmptyModel) {
|
||||
iconView.image = viewModel.icon
|
||||
titleLabel.text = viewModel.title
|
||||
infoLabel.text = viewModel.info
|
||||
tipLabel.text = viewModel.tip
|
||||
showAllThreadsButton.setTitle(viewModel.showAllThreadsButtonTitle,
|
||||
func configure(withModel model: ThreadListEmptyModel) {
|
||||
iconView.image = model.icon
|
||||
titleLabel.text = model.title
|
||||
infoLabel.text = model.info
|
||||
tipLabel.text = model.tip
|
||||
showAllThreadsButton.setTitle(model.showAllThreadsButtonTitle,
|
||||
for: .normal)
|
||||
showAllThreadsButton.isHidden = viewModel.showAllThreadsButtonHidden
|
||||
showAllThreadsButton.isHidden = model.showAllThreadsButtonHidden
|
||||
|
||||
titleLabel.isHidden = titleLabel.text?.isEmpty ?? true
|
||||
infoLabel.isHidden = infoLabel.text?.isEmpty ?? true
|
||||
|
|
Loading…
Reference in a new issue