Fix bug when Context menu in chat list only had "Settings".

Cannot cache the settings button and context menu with it - the menu has to be
built every time to reflect current state of the chat list.
This commit is contained in:
Igor Solomennikov 2023-06-06 11:08:50 -07:00
parent 237319f133
commit 126b4f40f9

View File

@ -360,7 +360,7 @@ public class ChatListViewController: OWSViewController {
return layerView
}()
private lazy var settingsBarButtonItem: UIBarButtonItem = {
private func settingsBarButtonItem() -> UIBarButtonItem {
let contextButton = ContextMenuButton()
contextButton.showsContextMenuAsPrimaryAction = true
contextButton.contextMenu = settingsContextMenu()
@ -378,8 +378,11 @@ public class ChatListViewController: OWSViewController {
PaymentsViewUtils.addUnreadBadge(toView: wrapper)
}
return .init(customView: wrapper)
}()
let barButtonItem = UIBarButtonItem(customView: wrapper)
barButtonItem.accessibilityLabel = CommonStrings.openSettingsButton
barButtonItem.accessibilityIdentifier = "ChatListViewController.settingsButton"
return barButtonItem
}
// MARK: Table View
@ -464,9 +467,7 @@ public class ChatListViewController: OWSViewController {
guard chatListMode == .inbox && !viewState.multiSelectState.isActive else { return }
// Settings button.
navigationItem.leftBarButtonItem = settingsBarButtonItem
settingsBarButtonItem.accessibilityLabel = CommonStrings.openSettingsButton
settingsBarButtonItem.accessibilityIdentifier = "ChatListViewController.settingsButton"
navigationItem.leftBarButtonItem = settingsBarButtonItem()
var rightBarButtonItems = [UIBarButtonItem]()