diff --git a/Signal/src/ViewControllers/ConversationView/ConversationViewController.m b/Signal/src/ViewControllers/ConversationView/ConversationViewController.m index 94ecba96bb..d16af0435f 100644 --- a/Signal/src/ViewControllers/ConversationView/ConversationViewController.m +++ b/Signal/src/ViewControllers/ConversationView/ConversationViewController.m @@ -560,6 +560,16 @@ typedef enum : NSUInteger { return !groupThread.isLocalUserFullMember; } +- (BOOL)isLocalUserRequestingMember +{ + if ([self.thread isKindOfClass:[TSGroupThread class]]) { + TSGroupThread *groupThread = (TSGroupThread *)self.thread; + return groupThread.isLocalUserRequestingMember; + } else { + return NO; + } +} + - (void)updateInputVisibility { if ([self isInPreviewPlatter]) { @@ -5345,38 +5355,28 @@ typedef enum : NSUInteger { { OWSAssertIsOnMainThread(); - if (self.userLeftGroup) { + if (self.threadViewModel.hasPendingMessageRequest || self.isLocalUserRequestingMember) { + [self.requestView removeFromSuperview]; + if (self.isLocalUserRequestingMember) { + MemberRequestView *memberRequestView = + [[MemberRequestView alloc] initWithThreadViewModel:self.threadViewModel fromViewController:self]; + memberRequestView.delegate = self; + self.requestView = memberRequestView; + } else { + MessageRequestView *messageRequestView = + [[MessageRequestView alloc] initWithThreadViewModel:self.threadViewModel]; + messageRequestView.delegate = self; + self.requestView = messageRequestView; + } + [self reloadBottomBar]; + } else { if (self.requestView != nil) { [self dismissMessageRequestView]; } else { [self reloadBottomBar]; [self updateInputVisibility]; } - return; } - - if (!self.threadViewModel.hasPendingMessageRequest && !self.isLocalUserRequestingMember) { - if (self.requestView != nil) { - // We're currently showing the message request view but no longer need to, - // probably because this request was accepted on another device. Dismiss it. - [self dismissMessageRequestView]; - } - return; - } - - [self.requestView removeFromSuperview]; - if (self.isLocalUserRequestingMember) { - MemberRequestView *memberRequestView = [[MemberRequestView alloc] initWithThreadViewModel:self.threadViewModel - fromViewController:self]; - memberRequestView.delegate = self; - self.requestView = memberRequestView; - } else { - MessageRequestView *messageRequestView = - [[MessageRequestView alloc] initWithThreadViewModel:self.threadViewModel]; - messageRequestView.delegate = self; - self.requestView = messageRequestView; - } - [self reloadBottomBar]; } - (void)dismissMessageRequestView @@ -5414,16 +5414,6 @@ typedef enum : NSUInteger { }]; } -- (BOOL)isLocalUserRequestingMember -{ - if ([self.thread isKindOfClass:[TSGroupThread class]]) { - TSGroupThread *groupThread = (TSGroupThread *)self.thread; - return groupThread.isLocalUserRequestingMember; - } else { - return NO; - } -} - #pragma mark - LocationPickerDelegate - (void)didPickLocation:(LocationPicker *)locationPicker location:(Location *)location