Fix Doug's remarks

This commit is contained in:
ismailgulek
2022-01-26 15:58:37 +03:00
parent abe26c43fe
commit ae57c7e1fb
14 changed files with 83 additions and 59 deletions
@@ -148,10 +148,10 @@ final class ThreadListViewController: UIViewController {
renderEmptyView(withViewModel: viewModel)
case .showingFilterTypes:
renderShowingFilterTypes()
case .showingLongPressActions:
renderShowingLongPressActions()
case .share(let string):
renderShare(string)
case .showingLongPressActions(let index):
renderShowingLongPressActions(index)
case .share(let url, let index):
renderShare(url, index: index)
case .toastForCopyLink:
toastForCopyLink()
case .error(let error):
@@ -226,7 +226,7 @@ final class ThreadListViewController: UIViewController {
self.present(alertController, animated: true, completion: nil)
}
private func renderShowingLongPressActions() {
private func renderShowingLongPressActions(_ index: Int) {
let controller = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
controller.addAction(UIAlertAction(title: VectorL10n.roomEventActionViewInRoom,
@@ -253,14 +253,25 @@ final class ThreadListViewController: UIViewController {
controller.addAction(UIAlertAction(title: VectorL10n.cancel,
style: .cancel,
handler: nil))
if let cell = threadsTableView.cellForRow(at: IndexPath(row: index, section: 0)) {
controller.popoverPresentationController?.sourceView = cell
} else {
controller.popoverPresentationController?.sourceView = view
}
self.present(controller, animated: true, completion: nil)
}
private func renderShare(_ string: String) {
let activityVC = UIActivityViewController(activityItems: [string],
private func renderShare(_ url: URL, index: Int) {
let activityVC = UIActivityViewController(activityItems: [url],
applicationActivities: nil)
activityVC.modalTransitionStyle = .coverVertical
if let cell = threadsTableView.cellForRow(at: IndexPath(row: index, section: 0)) {
activityVC.popoverPresentationController?.sourceView = cell
} else {
activityVC.popoverPresentationController?.sourceView = view
}
present(activityVC, animated: true, completion: nil)
}
@@ -296,7 +296,7 @@ final class ThreadListViewModel: ThreadListViewModelProtocol {
return
}
longPressedThread = threads[index]
viewState = .showingLongPressActions
viewState = .showingLongPressActions(index)
}
private func actionViewInRoom() {
@@ -311,19 +311,22 @@ final class ThreadListViewModel: ThreadListViewModelProtocol {
guard let thread = longPressedThread else {
return
}
if let permalink = MXTools.permalink(toEvent: thread.id, inRoom: thread.roomId) {
MXKPasteboardManager.shared.pasteboard.string = permalink
if let permalink = MXTools.permalink(toEvent: thread.id, inRoom: thread.roomId),
let url = URL(string: permalink) {
MXKPasteboardManager.shared.pasteboard.url = url
viewState = .toastForCopyLink
}
longPressedThread = nil
}
private func actionShare() {
guard let thread = longPressedThread else {
guard let thread = longPressedThread,
let index = threads.firstIndex(of: thread) else {
return
}
if let permalink = MXTools.permalink(toEvent: thread.id, inRoom: thread.roomId) {
viewState = .share(permalink)
if let permalink = MXTools.permalink(toEvent: thread.id, inRoom: thread.roomId),
let url = URL(string: permalink) {
viewState = .share(url, index)
}
longPressedThread = nil
}
@@ -25,8 +25,8 @@ enum ThreadListViewState {
case loaded
case empty(_ viewModel: ThreadListEmptyModel)
case showingFilterTypes
case showingLongPressActions
case share(_ string: String)
case showingLongPressActions(_ index: Int)
case share(_ url: URL, _ index: Int)
case toastForCopyLink
case error(Error)
}
@@ -39,10 +39,7 @@ class ThreadTableViewCell: UITableViewCell {
@IBOutlet private weak var lastMessageTimeLabel: UILabel!
@IBOutlet private weak var summaryView: ThreadSummaryView!
private static var usernameColorGenerator: UserNameColorGenerator = {
let generator = UserNameColorGenerator()
return generator
}()
private static var usernameColorGenerator = UserNameColorGenerator()
override func awakeFromNib() {
super.awakeFromNib()