Update title view mode according to thread status

This commit is contained in:
ismailgulek 2021-11-11 01:39:14 +03:00
parent 16b1c8711f
commit c8ad2be1d4
No known key found for this signature in database
GPG key ID: E96336D42D9470A9
2 changed files with 29 additions and 10 deletions

View file

@ -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:

View file

@ -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)
}
}