fix swiping back for approved message request conversation

pull/541/head
Ryan Zhao 4 years ago
parent e014fe0367
commit da66b1af2c

@ -1097,22 +1097,6 @@ extension ConversationVC: UIDocumentInteractionControllerDelegate {
// MARK: - Message Request Actions
extension ConversationVC {
@objc func handleBackPressed() {
// If this thread started as a message request but isn't one anymore then we want to skip the
// `MessageRequestsViewController` when going back
guard
threadStartedAsMessageRequest,
!thread.isMessageRequest(),
let viewControllers: [UIViewController] = navigationController?.viewControllers,
let messageRequestsIndex = viewControllers.firstIndex(where: { $0 is MessageRequestsViewController }),
messageRequestsIndex > 0
else {
navigationController?.popViewController(animated: true)
return
}
navigationController?.popToViewController(viewControllers[messageRequestsIndex - 1], animated: true)
}
fileprivate func approveMessageRequestIfNeeded(for thread: TSThread?, with transaction: YapDatabaseReadWriteTransaction, isNewThread: Bool, timestamp: UInt64) {
guard let contactThread: TSContactThread = thread as? TSContactThread else { return }
@ -1164,6 +1148,16 @@ extension ConversationVC {
)
}
}
// Update UI
self?.updateNavBarButtons()
if let viewControllers: [UIViewController] = self?.navigationController?.viewControllers,
let messageRequestsIndex = viewControllers.firstIndex(where: { $0 is MessageRequestsViewController }),
messageRequestsIndex > 0 {
var newViewControllers = viewControllers
newViewControllers.remove(at: messageRequestsIndex)
self?.navigationController?.setViewControllers(newViewControllers, animated: false)
}
// Send a sync message with the details of the contact
if let appDelegate = UIApplication.shared.delegate as? AppDelegate {

@ -469,8 +469,6 @@ final class ConversationVC : BaseVC, ConversationViewModelDelegate, OWSConversat
navigationItem.rightBarButtonItems = []
}
else {
navigationItem.leftBarButtonItem = UIViewController.createOWSBackButton(withTarget: self, selector: #selector(handleBackPressed))
if let contactThread: TSContactThread = thread as? TSContactThread {
// Don't show the settings button for message requests
if let contact: Contact = Storage.shared.getContact(with: contactThread.contactSessionID()), contact.isApproved, contact.didApproveMe {

Loading…
Cancel
Save