Prevent bogus message emission on group deletion

Only send a message if the local number is part of the group

* Fix error on empty group #1449
* Fix an unlogged issue about notification sent to group members even is the local user already quit the group
pull/1/head
Thomas Guillet 9 years ago committed by Michael Kirk
parent 087f753979
commit f1b4bd772c

@ -332,32 +332,38 @@
- (void)tableViewCellTappedDelete:(NSIndexPath *)indexPath { - (void)tableViewCellTappedDelete:(NSIndexPath *)indexPath {
TSThread *thread = [self threadForIndexPath:indexPath]; TSThread *thread = [self threadForIndexPath:indexPath];
if ([thread isKindOfClass:[TSGroupThread class]]) { if ([thread isKindOfClass:[TSGroupThread class]]) {
UIAlertController *removingFromGroup = [UIAlertController
alertControllerWithTitle:[NSString TSGroupThread *gThread = (TSGroupThread *)thread;
stringWithFormat:NSLocalizedString(@"GROUP_REMOVING", nil), [thread name]] if ([gThread.groupModel.groupMemberIds containsObject:[TSAccountManager localNumber]]) {
message:nil UIAlertController *removingFromGroup = [UIAlertController
preferredStyle:UIAlertControllerStyleAlert]; alertControllerWithTitle:[NSString
[self presentViewController:removingFromGroup animated:YES completion:nil]; stringWithFormat:NSLocalizedString(@"GROUP_REMOVING", nil), [thread name]]
message:nil
TSOutgoingMessage *message = [[TSOutgoingMessage alloc] initWithTimestamp:[NSDate ows_millisecondTimeStamp] preferredStyle:UIAlertControllerStyleAlert];
inThread:thread [self presentViewController:removingFromGroup animated:YES completion:nil];
messageBody:@""
attachmentIds:[NSMutableArray new]]; TSOutgoingMessage *message = [[TSOutgoingMessage alloc] initWithTimestamp:[NSDate ows_millisecondTimeStamp]
message.groupMetaMessage = TSGroupMessageQuit; inThread:thread
[self.messageSender sendMessage:message messageBody:@""
success:^{ attachmentIds:[NSMutableArray new]];
[self dismissViewControllerAnimated:YES message.groupMetaMessage = TSGroupMessageQuit;
completion:^{ [self.messageSender sendMessage:message
[self deleteThread:thread]; success:^{
}]; [self dismissViewControllerAnimated:YES
} completion:^{
failure:^(NSError *error) { [self deleteThread:thread];
[self dismissViewControllerAnimated:YES }];
completion:^{ }
SignalAlertView(NSLocalizedString(@"GROUP_REMOVING_FAILED", nil), failure:^(NSError *error) {
error.localizedRecoverySuggestion); [self dismissViewControllerAnimated:YES
}]; completion:^{
}]; SignalAlertView(NSLocalizedString(@"GROUP_REMOVING_FAILED", nil),
error.localizedRecoverySuggestion);
}];
}];
} else {
[self deleteThread:thread];
}
} else { } else {
[self deleteThread:thread]; [self deleteThread:thread];
} }

Loading…
Cancel
Save