From 2faad168ef80f7d9a52a15bf79e10b2db90cae4f Mon Sep 17 00:00:00 2001 From: Ryan ZHAO <> Date: Wed, 4 Dec 2024 16:51:41 +1100 Subject: [PATCH] Potentially fix a keyboard issue for calls --- .../Call Management/SessionCallManager.swift | 3 +-- Session/Calls/CallVC.swift | 7 +++-- .../ConversationVC+Interaction.swift | 26 ++++++++++++++----- 3 files changed, 25 insertions(+), 11 deletions(-) diff --git a/Session/Calls/Call Management/SessionCallManager.swift b/Session/Calls/Call Management/SessionCallManager.swift index 602536c3b..1d240f45b 100644 --- a/Session/Calls/Call Management/SessionCallManager.swift +++ b/Session/Calls/Call Management/SessionCallManager.swift @@ -240,8 +240,7 @@ public final class SessionCallManager: NSObject, CallManagerProtocol { { let callVC = CallVC(for: call) callVC.conversationVC = conversationVC - conversationVC.inputAccessoryView?.isHidden = true - conversationVC.inputAccessoryView?.alpha = 0 + conversationVC.hideInputAccessoryView() presentingVC.present(callVC, animated: true, completion: nil) } else if !Preferences.isCallKitSupported { diff --git a/Session/Calls/CallVC.swift b/Session/Calls/CallVC.swift index b6b352767..86d3de516 100644 --- a/Session/Calls/CallVC.swift +++ b/Session/Calls/CallVC.swift @@ -600,8 +600,11 @@ final class CallVC: UIViewController, VideoPreviewDelegate { } Timer.scheduledTimer(withTimeInterval: 2, repeats: false) { [weak self] _ in - self?.conversationVC?.showInputAccessoryView() - self?.presentingViewController?.dismiss(animated: true, completion: nil) + DispatchQueue.main.async { + self?.presentingViewController?.dismiss(animated: true, completion: { + self?.conversationVC?.showInputAccessoryView() + }) + } } } diff --git a/Session/Conversations/ConversationVC+Interaction.swift b/Session/Conversations/ConversationVC+Interaction.swift index ba1669fcb..e0bb1d24d 100644 --- a/Session/Conversations/ConversationVC+Interaction.swift +++ b/Session/Conversations/ConversationVC+Interaction.swift @@ -791,17 +791,29 @@ extension ConversationVC: } func hideInputAccessoryView() { - DispatchQueue.main.async { - self.inputAccessoryView?.isHidden = true - self.inputAccessoryView?.alpha = 0 + guard Thread.isMainThread else { + DispatchQueue.main.async { + self.hideInputAccessoryView() + } + return } + self.inputAccessoryView?.isHidden = true + self.inputAccessoryView?.alpha = 0 } func showInputAccessoryView() { - UIView.animate(withDuration: 0.25, animations: { - self.inputAccessoryView?.isHidden = false - self.inputAccessoryView?.alpha = 1 - }) + guard Thread.isMainThread else { + DispatchQueue.main.async { + self.showInputAccessoryView() + } + return + } + self.inputAccessoryView?.isHidden = false + self.inputAccessoryView?.alpha = 1 +// UIView.animate(withDuration: 0.25, animations: { +// self.inputAccessoryView?.isHidden = false +// self.inputAccessoryView?.alpha = 1 +// }) } // MARK: MessageCellDelegate