diff --git a/Signal/src/environment/Environment.h b/Signal/src/environment/Environment.h index 6e7283a3b..c3b6c5318 100644 --- a/Signal/src/environment/Environment.h +++ b/Signal/src/environment/Environment.h @@ -84,6 +84,6 @@ andCurrentRegionCodeForPhoneNumbers:(NSString*)currentRegionCodeForPhoneNumbers - (void)setSignUpFlowNavigationController:(UINavigationController *)signUpFlowNavigationController; + (void)messageIdentifier:(NSString*)identifier; -+ (void)groupModel:(TSGroupModel*)model; ++ (void)messageGroupModel:(TSGroupModel*)model; @end diff --git a/Signal/src/environment/Environment.m b/Signal/src/environment/Environment.m index e19cc390e..2dc5fbdca 100644 --- a/Signal/src/environment/Environment.m +++ b/Signal/src/environment/Environment.m @@ -183,7 +183,7 @@ phoneDirectoryManager; [vc performSegueWithIdentifier:@"showSegue" sender:nil]; } -+ (void)groupModel:(TSGroupModel*)model { ++ (void)messageGroupModel:(TSGroupModel*)model { Environment *env = [self getCurrent]; SignalsViewController *vc = env.signalsViewController; @@ -194,11 +194,6 @@ phoneDirectoryManager; [vc.navigationController popToRootViewControllerAnimated:YES]; vc.groupFromCompose = model; [vc performSegueWithIdentifier:@"showSegue" sender:nil]; - - UITabBarController *tabBarController = (UITabBarController*)vc.parentViewController.parentViewController; - if ([tabBarController respondsToSelector:@selector(selectedIndex)]) { - tabBarController.selectedIndex = 1; - } } + (void)resetAppData{ diff --git a/Signal/src/textsecure/Messages/TSMessagesManager.m b/Signal/src/textsecure/Messages/TSMessagesManager.m index 3f051c737..5a213fb4a 100644 --- a/Signal/src/textsecure/Messages/TSMessagesManager.m +++ b/Signal/src/textsecure/Messages/TSMessagesManager.m @@ -255,7 +255,7 @@ TSIncomingMessage *incomingMessage; TSThread *thread; if (groupId) { - TSGroupModel *model = [[TSGroupModel alloc] initWithTitle:content.group.name memberIds:[[NSMutableArray alloc ] initWithArray:content.group.members] image:nil groupId:content.group.id associatedAttachmentId:nil]; + TSGroupModel *model = [[TSGroupModel alloc] initWithTitle:content.group.name memberIds:[[[NSSet setWithArray:content.group.members] allObjects] mutableCopy] image:nil groupId:content.group.id associatedAttachmentId:nil]; TSGroupThread *gThread = [TSGroupThread getOrCreateThreadWithGroupModel:model transaction:transaction]; [gThread saveWithTransaction:transaction]; if(content.group.type==PushMessageContentGroupContextTypeUpdate) { diff --git a/Signal/src/view controllers/MessagesViewController.m b/Signal/src/view controllers/MessagesViewController.m index 31de77e32..78fd65ef1 100644 --- a/Signal/src/view controllers/MessagesViewController.m +++ b/Signal/src/view controllers/MessagesViewController.m @@ -126,7 +126,7 @@ typedef enum : NSUInteger { TSOutgoingMessage *message = [[TSOutgoingMessage alloc] initWithTimestamp:[NSDate ows_millisecondTimeStamp] inThread:self.thread messageBody:@"" attachments:[[NSMutableArray alloc] init]]; message.groupMetaMessage = TSGroupMessageNew; - if(model.groupImage!=nil) { + if(model.groupImage != nil) { [[TSMessagesManager sharedManager] sendAttachment:UIImagePNGRepresentation(model.groupImage) contentType:@"image/png" inMessage:message thread:self.thread]; } else { @@ -1554,14 +1554,14 @@ typedef enum : NSUInteger { } } --(void)updateGroup { +- (void)updateGroup { [self.navController hideDropDown:self]; [self performSegueWithIdentifier:kUpdateGroupSegueIdentifier sender:self]; } -- (void) leaveGroup { +- (void)leaveGroup { [self.navController hideDropDown:self]; TSGroupThread* gThread = (TSGroupThread*)_thread; @@ -1601,13 +1601,14 @@ typedef enum : NSUInteger { } - (IBAction)unwindGroupUpdated:(UIStoryboardSegue *)segue{ - [self dismissKeyBoard]; NewGroupViewController *ngc = [segue sourceViewController]; TSGroupModel* newGroupModel = [ngc groupModel]; - NSMutableArray* groupMemberIds = [[NSMutableArray alloc] initWithArray:newGroupModel.groupMemberIds]; + NSMutableSet* groupMemberIds = [NSMutableSet setWithArray:newGroupModel.groupMemberIds]; [groupMemberIds addObject:[SignalKeyingStorage.localNumber toE164]]; - newGroupModel.groupMemberIds = groupMemberIds; + newGroupModel.groupMemberIds = [NSMutableArray arrayWithArray:[groupMemberIds allObjects]]; [self updateGroupModelTo:newGroupModel]; + [self.collectionView.collectionViewLayout invalidateLayoutWithContext:[JSQMessagesCollectionViewFlowLayoutInvalidationContext context]]; + [self.collectionView reloadData]; } - (void)dismissKeyBoard { diff --git a/Signal/src/view controllers/NewGroupViewController.m b/Signal/src/view controllers/NewGroupViewController.m index 55826b799..0a53cb2f5 100644 --- a/Signal/src/view controllers/NewGroupViewController.m +++ b/Signal/src/view controllers/NewGroupViewController.m @@ -119,7 +119,7 @@ static NSString* const kUnwindToMessagesViewSegue = @"UnwindToMessagesViewSegue" #pragma mark - Actions -(void)createGroup { TSGroupModel* model = [self makeGroup]; - [Environment groupModel:model]; + [Environment messageGroupModel:model]; } @@ -129,8 +129,15 @@ static NSString* const kUnwindToMessagesViewSegue = @"UnwindToMessagesViewSegue" [mut addObjectsFromArray:[[contacts objectAtIndex:(NSUInteger)idx.row] textSecureIdentifiers]]; } [mut addObjectsFromArray:_thread.groupModel.groupMemberIds]; - _groupModel = [[TSGroupModel alloc] initWithTitle:_nameGroupTextField.text memberIds:[NSMutableArray arrayWithArray:[[NSSet setWithArray:mut] allObjects]] image:_thread.groupModel.groupImage groupId:_thread.groupModel.groupId associatedAttachmentId:nil]; - + + _groupModel = [[TSGroupModel alloc] initWithTitle:_nameGroupTextField.text + memberIds:[[[NSSet setWithArray:mut] allObjects] mutableCopy] + image:_thread.groupModel.groupImage + groupId:_thread.groupModel.groupId + associatedAttachmentId:nil]; + + [self.nameGroupTextField resignFirstResponder]; + [self performSegueWithIdentifier:kUnwindToMessagesViewSegue sender:self]; } diff --git a/Signal/src/view controllers/TSGroupModel.h b/Signal/src/view controllers/TSGroupModel.h index 815f7a65f..966649f0e 100644 --- a/Signal/src/view controllers/TSGroupModel.h +++ b/Signal/src/view controllers/TSGroupModel.h @@ -14,7 +14,7 @@ @interface TSGroupModel : TSYapDatabaseObject -@property (nonatomic, strong) NSMutableArray *groupMemberIds; +@property (nonatomic, strong) NSMutableArray *groupMemberIds; @property (nonatomic, strong) UIImage *groupImage; @property (nonatomic, strong) NSString *associatedAttachmentId; @property (nonatomic, strong) NSString *groupName;