diff --git a/Classes/ChatConversationView.h b/Classes/ChatConversationView.h index 29c8c3e43..c52b785ac 100644 --- a/Classes/ChatConversationView.h +++ b/Classes/ChatConversationView.h @@ -112,5 +112,6 @@ - (void)showFileDownloadError; - (NSURL *)getICloudFileUrl:(NSString *)name; - (BOOL)writeFileInICloud:(NSData *)data fileURL:(NSURL *)fileURL; +- (void)removeCallBacks; @end diff --git a/Classes/ChatConversationView.m b/Classes/ChatConversationView.m index a903a68b9..c755452e2 100644 --- a/Classes/ChatConversationView.m +++ b/Classes/ChatConversationView.m @@ -175,10 +175,6 @@ static UICompositeViewDescription *compositeDescription = nil; selector:@selector(onLinphoneCoreReady:) name:kLinphoneGlobalStateUpdate object:nil]; - [NSNotificationCenter.defaultCenter addObserver:self - selector:@selector(didEnterBackground:) - name:UIApplicationDidEnterBackgroundNotification - object:nil]; if ([_imagesArray count] > 0) { [UIView animateWithDuration:0 delay:0 @@ -213,10 +209,6 @@ static UICompositeViewDescription *compositeDescription = nil; PhoneMainView.instance.currentRoom = NULL; } -- (void)didEnterBackground:(NSNotification *)notif { - [self removeCallBacks]; -} - - (void)removeCallBacks { if (_chatRoom && _chatRoomCbs) { linphone_chat_room_remove_callbacks(_chatRoom, _chatRoomCbs); diff --git a/Classes/LinphoneAppDelegate.m b/Classes/LinphoneAppDelegate.m index 58021e341..a7bc25ed3 100644 --- a/Classes/LinphoneAppDelegate.m +++ b/Classes/LinphoneAppDelegate.m @@ -60,6 +60,10 @@ if (linphone_core_get_global_state(LC) != LinphoneGlobalOff) { [LinphoneManager.instance enterBackgroundMode]; [LinphoneManager.instance.fastAddressBook clearFriends]; + if (PhoneMainView.instance.currentView == ChatConversationView.compositeViewDescription) { + ChatConversationView *view = VIEW(ChatConversationView); + [view removeCallBacks]; + } [CoreManager.instance stopLinphoneCore]; } }