Created
March 17, 2015 15:45
-
-
Save soulfly/e52b21261fe8c40f7d80 to your computer and use it in GitHub Desktop.
seemee17mar_update
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1) ChatManager.m | |
-(void)chatDidNotSendMessage:(QBChatMessage *)message error:(NSError *)error { | |
[self lastMessageFailedWithMessage:message error:error]; | |
} | |
-(void)lastMessageFailedWithMessage:(QBChatMessage*)message error:(NSError *)error { | |
[self.delegate lastMessageSendingFailedWithMessage:message error:error]; | |
} | |
2) ChatManager.h | |
add next method to ChatManagerDelegate: | |
-(void)lastMessageSendingFailedWithMessage:(QBChatMessage*)message error:(NSError *)error; | |
3) ChatViewController.m | |
-(void)lastMessageSendingFailedWithMessage:(QBChatMessage *)message error:(NSError *)error { | |
// Search for exact message that was failed | |
// and update UI | |
// | |
NSString *sectionHeaderDateStr = arrayAllDays[[arrayAllDays count] - 1]; | |
NSMutableArray *arrayMessages = localMessagesDictionary[sectionHeaderDateStr]; | |
// | |
for(ChatMessage *chatMsg in arrayMessages){ | |
if([chatMsg.remoteId isEqualToString:message.customParameters[@"MessageQueueID"]]){ | |
chatMsg.hasFailed = [NSNumber numberWithBool:YES]; | |
chatMsg.hasNotBeenSent = [NSNumber numberWithBool:NO]; | |
[self.tableView reloadData]; | |
break; | |
} | |
} | |
// Update entry in DB | |
// | |
NSString *remoteId = message.customParameters[@"MessageQueueID"]; | |
ChatMessage *chatMessageFailedDBEntry = [[ChatManager sharedInstance] fetchThisObjectInLocalDatabaseByRemoteId:remoteId]; | |
chatMessageFailedDBEntry.hasNotBeenSent = [NSNumber numberWithBool:NO]; | |
chatMessageFailedDBEntry.hasFailed = [NSNumber numberWithBool:YES]; | |
[[[ChatManager sharedInstance] chatMessageRepository] save:chatMessageFailedDBEntry]; | |
} | |
4) ChatManager.m | |
-(id)fetchThisObjectInLocalDatabaseByRemoteId:(NSString *)remoteId { | |
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"ChatMessage"]; | |
[request setPredicate:[NSPredicate predicateWithFormat:@"remoteId == %@", remoteId]]; | |
[request setFetchLimit:1]; | |
NSError *error; | |
NSArray *arrayObjects = [self.chatMessageRepository.context executeFetchRequest:request error:&error]; | |
ChatMessage *message; | |
if (arrayObjects.count != 0){ | |
message = arrayObjects[0]; | |
} | |
return message; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment