diff --git a/Riot/Modules/Room/Views/Threads/Summary/ThreadSummaryView.swift b/Riot/Modules/Room/Views/Threads/Summary/ThreadSummaryView.swift index 1c3b4efb9..c1da2d9dd 100644 --- a/Riot/Modules/Room/Views/Threads/Summary/ThreadSummaryView.swift +++ b/Riot/Modules/Room/Views/Threads/Summary/ThreadSummaryView.swift @@ -68,14 +68,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 } - if let lastMessage = viewModel.lastMessageText { + if let lastMessage = model.lastMessageText { let mutable = NSMutableAttributedString(attributedString: lastMessage) mutable.setAttributes([ .font: Constants.lastMessageFont @@ -117,10 +117,10 @@ class ThreadSummaryView: UIView { 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) } } diff --git a/Riot/Modules/Room/Views/Title/Thread/ThreadRoomTitleView.swift b/Riot/Modules/Room/Views/Title/Thread/ThreadRoomTitleView.swift index 8d1515cae..59f4571f4 100644 --- a/Riot/Modules/Room/Views/Title/Thread/ThreadRoomTitleView.swift +++ b/Riot/Modules/Room/Views/Title/Thread/ThreadRoomTitleView.swift @@ -38,15 +38,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 @@ -81,10 +81,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() { diff --git a/Riot/Modules/Threads/ThreadList/ThreadListViewController.swift b/Riot/Modules/Threads/ThreadList/ThreadListViewController.swift index 5f23f8c45..1a34664e0 100644 --- a/Riot/Modules/Threads/ThreadList/ThreadListViewController.swift +++ b/Riot/Modules/Threads/ThreadList/ThreadListViewController.swift @@ -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 { renderLoading() case .loaded: renderLoaded() - case .empty(let viewModel): - renderEmptyView(withViewModel: viewModel) + case .empty(let model): + renderEmptyView(withModel: model) case .showingFilterTypes: renderShowingFilterTypes() case .showingLongPressActions(let index): @@ -178,9 +178,9 @@ final class ThreadListViewController: UIViewController { } } - 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 @@ -332,8 +332,8 @@ extension ThreadListViewController: UITableViewDataSource { let cell: ThreadTableViewCell = tableView.dequeueReusableCell(for: indexPath) cell.update(theme: theme) - if let threadVM = viewModel.threadViewModel(at: indexPath.row) { - cell.configure(withViewModel: threadVM) + if let threadModel = viewModel.threadModel(at: indexPath.row) { + cell.configure(withModel: threadModel) } return cell diff --git a/Riot/Modules/Threads/ThreadList/ThreadListViewModel.swift b/Riot/Modules/Threads/ThreadList/ThreadListViewModel.swift index e16d060cb..b64bb510f 100644 --- a/Riot/Modules/Threads/ThreadList/ThreadListViewModel.swift +++ b/Riot/Modules/Threads/ThreadList/ThreadListViewModel.swift @@ -92,14 +92,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 } @@ -144,7 +144,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? @@ -184,9 +184,9 @@ 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(rootMessageSenderUserId: rootMessageSender?.userId, rootMessageSenderAvatar: rootAvatarViewData, @@ -194,7 +194,7 @@ final class ThreadListViewModel: ThreadListViewModelProtocol { rootMessageText: rootMessageText, rootMessageRedacted: thread.rootMessage?.isRedactedEvent() ?? false, lastMessageTime: lastMessageTime, - summaryViewModel: summaryViewModel) + summaryModel: summaryModel) } private func rootMessageText(forThread thread: MXThread) -> NSAttributedString? { diff --git a/Riot/Modules/Threads/ThreadList/ThreadListViewModelProtocol.swift b/Riot/Modules/Threads/ThreadList/ThreadListViewModelProtocol.swift index 009609aba..3720f0c35 100644 --- a/Riot/Modules/Threads/ThreadList/ThreadListViewModelProtocol.swift +++ b/Riot/Modules/Threads/ThreadList/ThreadListViewModelProtocol.swift @@ -39,10 +39,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 { diff --git a/Riot/Modules/Threads/ThreadList/Views/Cell/ThreadModel.swift b/Riot/Modules/Threads/ThreadList/Views/Cell/ThreadModel.swift index d2753648c..ddb426212 100644 --- a/Riot/Modules/Threads/ThreadList/Views/Cell/ThreadModel.swift +++ b/Riot/Modules/Threads/ThreadList/Views/Cell/ThreadModel.swift @@ -17,11 +17,11 @@ import Foundation struct ThreadModel { - var rootMessageSenderUserId: String? - var rootMessageSenderAvatar: AvatarViewDataProtocol? - var rootMessageSenderDisplayName: String? - var rootMessageText: NSAttributedString? - var rootMessageRedacted: Bool - var lastMessageTime: String? - var summaryViewModel: ThreadSummaryModel? + let rootMessageSenderUserId: String? + let rootMessageSenderAvatar: AvatarViewDataProtocol? + let rootMessageSenderDisplayName: String? + let rootMessageText: NSAttributedString? + let rootMessageRedacted: Bool + let lastMessageTime: String? + let summaryModel: ThreadSummaryModel? } diff --git a/Riot/Modules/Threads/ThreadList/Views/Cell/ThreadTableViewCell.swift b/Riot/Modules/Threads/ThreadList/Views/Cell/ThreadTableViewCell.swift index db39511fd..290e7017f 100644 --- a/Riot/Modules/Threads/ThreadList/Views/Cell/ThreadTableViewCell.swift +++ b/Riot/Modules/Threads/ThreadList/Views/Cell/ThreadTableViewCell.swift @@ -47,24 +47,24 @@ 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 } - 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) } } diff --git a/Riot/Modules/Threads/ThreadList/Views/Empty/ThreadListEmptyView.swift b/Riot/Modules/Threads/ThreadList/Views/Empty/ThreadListEmptyView.swift index af904185a..fd33b28bd 100644 --- a/Riot/Modules/Threads/ThreadList/Views/Empty/ThreadListEmptyView.swift +++ b/Riot/Modules/Threads/ThreadList/Views/Empty/ThreadListEmptyView.swift @@ -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 diff --git a/changelog.d/pr-5446.misc b/changelog.d/pr-5446.misc new file mode 100644 index 000000000..cdd5b09d5 --- /dev/null +++ b/changelog.d/pr-5446.misc @@ -0,0 +1 @@ +Add WIP to towncrier. \ No newline at end of file diff --git a/towncrier.toml b/towncrier.toml index 2587d18b2..689728cc2 100644 --- a/towncrier.toml +++ b/towncrier.toml @@ -39,6 +39,11 @@ template = "changelog.d/_template.md.jinja" name = "📄 Documentation" showcontent = true +[[tool.towncrier.type]] + directory = "wip" + name = "🚧 In development 🚧" + showcontent = true + [[tool.towncrier.type]] directory = "misc" name = "Others"