diff --git a/Session/Conversations/ConversationVC+Interaction.swift b/Session/Conversations/ConversationVC+Interaction.swift index 83cfde843..19ad35174 100644 --- a/Session/Conversations/ConversationVC+Interaction.swift +++ b/Session/Conversations/ConversationVC+Interaction.swift @@ -804,8 +804,10 @@ extension ConversationVC: } func hideInputAccessoryView() { - self.inputAccessoryView?.isHidden = true - self.inputAccessoryView?.alpha = 0 + DispatchQueue.main.async { + self.inputAccessoryView?.isHidden = true + self.inputAccessoryView?.alpha = 0 + } } func showInputAccessoryView() { diff --git a/Session/Conversations/ConversationVC.swift b/Session/Conversations/ConversationVC.swift index 2d8914cbb..499e35dbe 100644 --- a/Session/Conversations/ConversationVC.swift +++ b/Session/Conversations/ConversationVC.swift @@ -74,9 +74,11 @@ final class ConversationVC: BaseVC, LibSessionRespondingViewController, Conversa } override var inputAccessoryView: UIView? { - guard viewModel.threadData.canWrite else { return nil } - - return (isShowingSearchUI ? searchController.resultsBar : snInputView) + return ( + (viewModel.threadData.canWrite && isShowingSearchUI) ? + searchController.resultsBar : + snInputView + ) } /// The height of the visible part of the table view, i.e. the distance from the navigation bar (where the table view's origin is) @@ -750,6 +752,12 @@ final class ConversationVC: BaseVC, LibSessionRespondingViewController, Conversa viewModel.threadData.threadIsMessageRequest != updatedThreadData.threadIsMessageRequest || viewModel.threadData.threadRequiresApproval != updatedThreadData.threadRequiresApproval { + if updatedThreadData.canWrite { + self.showInputAccessoryView() + } else { + self.hideInputAccessoryView() + } + let messageRequestsViewWasVisible: Bool = (self.messageRequestFooterView.isHidden == false) UIView.animate(withDuration: 0.3) { [weak self] in diff --git a/SessionMessagingKit/Sending & Receiving/Pollers/OpenGroupPoller.swift b/SessionMessagingKit/Sending & Receiving/Pollers/OpenGroupPoller.swift index 168d719bc..3e43d3f31 100644 --- a/SessionMessagingKit/Sending & Receiving/Pollers/OpenGroupPoller.swift +++ b/SessionMessagingKit/Sending & Receiving/Pollers/OpenGroupPoller.swift @@ -491,14 +491,12 @@ extension OpenGroupAPI { return true } - // Note: This might need to be updated in the future when we start tracking - // user permissions if changes to permissions don't trigger a change to - // the 'infoUpdates' return ( responseBody.activeUsers != existingOpenGroup.userCount || ( responseBody.details != nil && responseBody.details?.infoUpdates != existingOpenGroup.infoUpdates - ) + ) || + OpenGroup.Permissions(roomInfo: responseBody) != existingOpenGroup.permissions ) default: return true