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:
parent
237319f133
commit
126b4f40f9
@ -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]()
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user