diff --git a/Riot/Modules/Room/Views/Title/Thread/ThreadRoomTitleView.swift b/Riot/Modules/Room/Views/Title/Thread/ThreadRoomTitleView.swift index 7767378c6..592071dcf 100644 --- a/Riot/Modules/Room/Views/Title/Thread/ThreadRoomTitleView.swift +++ b/Riot/Modules/Room/Views/Title/Thread/ThreadRoomTitleView.swift @@ -31,7 +31,11 @@ class ThreadRoomTitleView: RoomTitleView { update() } } - var threadId: String! + var threadId: String! { + didSet { + updateMode() + } + } // Container views @IBOutlet private weak var partialContainerView: UIView! @@ -49,6 +53,12 @@ class ThreadRoomTitleView: RoomTitleView { return fullCloseButton } + override var mxRoom: MXRoom! { + didSet { + updateMode() + } + } + override class func nib() -> UINib! { return UINib(nibName: String(describing: self), bundle: .main) @@ -77,7 +87,6 @@ class ThreadRoomTitleView: RoomTitleView { super.awakeFromNib() update(theme: ThemeService.shared().theme) - update() } override func didMoveToSuperview() { @@ -91,6 +100,22 @@ class ThreadRoomTitleView: RoomTitleView { } } + private func updateMode() { + // ensure both mxRoom and threadId are set + guard let room = mxRoom, + let threadId = threadId else { + return + } + + if room.mxSession.threadingService.thread(withId: threadId) == nil { + // thread not created yet + mode = .partial + } else { + // thread created before + mode = .full + } + } + private func update() { switch mode { case .partial: diff --git a/Riot/Modules/Thread/ThreadViewController.swift b/Riot/Modules/Thread/ThreadViewController.swift index bc90734a3..721066972 100644 --- a/Riot/Modules/Thread/ThreadViewController.swift +++ b/Riot/Modules/Thread/ThreadViewController.swift @@ -32,10 +32,8 @@ class ThreadViewController: RoomViewController { return UINib(nibName: String(describing: RoomViewController.self), bundle: .main) } - override func viewDidLoad() { - super.viewDidLoad() - - self.setRoomTitleViewClass(ThreadRoomTitleView.self) + override func setRoomTitleViewClass(_ roomTitleViewClass: AnyClass!) { + super.setRoomTitleViewClass(ThreadRoomTitleView.self) guard let threadTitleView = self.titleView as? ThreadRoomTitleView else { return @@ -44,8 +42,4 @@ class ThreadViewController: RoomViewController { threadTitleView.threadId = threadId } - override func setRoomTitleViewClass(_ roomTitleViewClass: AnyClass!) { - super.setRoomTitleViewClass(ThreadRoomTitleView.self) - } - }