diff --git a/Classes/ChatConversationCreateView.h b/Classes/ChatConversationCreateView.h index 099090435..32e998c23 100644 --- a/Classes/ChatConversationCreateView.h +++ b/Classes/ChatConversationCreateView.h @@ -55,6 +55,9 @@ - (IBAction)onNextClick:(id)sender; - (IBAction)onChiffreClick:(id)sender; +-(void) unfragmentCompositeDescription; +-(void) fragmentCompositeDescription; + @end #endif /* ChatConversationCreateView_h */ diff --git a/Classes/ChatConversationCreateView.m b/Classes/ChatConversationCreateView.m index 41e3606b3..0bbdd2973 100644 --- a/Classes/ChatConversationCreateView.m +++ b/Classes/ChatConversationCreateView.m @@ -45,6 +45,17 @@ static UICompositeViewDescription *compositeDescription = nil; return self.class.compositeViewDescription; } +-(void) unfragmentCompositeDescription { + compositeDescription.isLeftFragment = true; + compositeDescription.otherFragment = nil; +} + +-(void) fragmentCompositeDescription { + compositeDescription.otherFragment = IPAD ? NSStringFromClass(ChatsListView.class) : nil; + compositeDescription.isLeftFragment = false; +} + + - (void)viewDidLoad { [super viewDidLoad]; UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] @@ -126,7 +137,7 @@ static UICompositeViewDescription *compositeDescription = nil; _chiffreButton.frame = buttonFrame; _waitView.hidden = YES; - _backButton.hidden = IPAD; + _backButton.hidden = IPAD && !(_isForVoipConference||_isForOngoingVoipConference); if(_tableController.contactsGroup.count == 0) { if (!_isForEditing) _nextButton.enabled = FALSE; diff --git a/Classes/ChatConversationInfoView.m b/Classes/ChatConversationInfoView.m index 3fc5da3db..a4ac1c6b7 100644 --- a/Classes/ChatConversationInfoView.m +++ b/Classes/ChatConversationInfoView.m @@ -270,6 +270,7 @@ static UICompositeViewDescription *compositeDescription = nil; - (IBAction)onBackClick:(id)sender { if(_create) { ChatConversationCreateView *view = VIEW(ChatConversationCreateView); + [view fragmentCompositeDescription]; view.tableController.contactsGroup = [_contacts mutableCopy]; view.tableController.notFirstTime = TRUE; view.isForEditing = FALSE; @@ -296,6 +297,7 @@ static UICompositeViewDescription *compositeDescription = nil; - (IBAction)onAddClick:(id)sender { if (_create || _imAdmin) { ChatConversationCreateView *view = VIEW(ChatConversationCreateView); + [view fragmentCompositeDescription]; view.tableController.notFirstTime = TRUE; view.isForEditing = !_create; view.isGroupChat = TRUE; diff --git a/Classes/ChatsListTableView.m b/Classes/ChatsListTableView.m index 6f8c3fd36..11270bae5 100644 --- a/Classes/ChatsListTableView.m +++ b/Classes/ChatsListTableView.m @@ -125,6 +125,7 @@ static int sorted_history_comparison(LinphoneChatRoom *to_insert, LinphoneChatRo [LinphoneManager.instance lpConfigSetBool:FALSE forKey:@"create_chat"]; } else if (![self selectFirstRow]) { ChatConversationCreateView *view = VIEW(ChatConversationCreateView); + [view fragmentCompositeDescription]; view.tableController.notFirstTime = FALSE; view.isForVoipConference = FALSE; [PhoneMainView.instance changeCurrentView:view.compositeViewDescription]; diff --git a/Classes/ChatsListView.m b/Classes/ChatsListView.m index d689ec9cc..142618c35 100644 --- a/Classes/ChatsListView.m +++ b/Classes/ChatsListView.m @@ -117,6 +117,7 @@ static UICompositeViewDescription *compositeDescription = nil; - (void)newChatCreate:(BOOL)isGroup { ChatConversationCreateView *view = VIEW(ChatConversationCreateView); + [view fragmentCompositeDescription]; view.isForEditing = false; view.isGroupChat = isGroup; view.tableController.notFirstTime = FALSE; diff --git a/Classes/LinphoneAppDelegate.m b/Classes/LinphoneAppDelegate.m index e043b0f1b..85dbf5204 100644 --- a/Classes/LinphoneAppDelegate.m +++ b/Classes/LinphoneAppDelegate.m @@ -352,6 +352,7 @@ - (BOOL)handleShortcut:(UIApplicationShortcutItem *)shortcutItem { BOOL success = NO; if ([shortcutItem.type isEqualToString:@"linphone.phone.action.newMessage"]) { + [VIEW(ChatConversationCreateView) fragmentCompositeDescription]; [PhoneMainView.instance changeCurrentView:ChatConversationCreateView.compositeViewDescription]; success = YES; } diff --git a/Classes/Swift/Conference/Views/ConferenceSchedulingSummaryView.swift b/Classes/Swift/Conference/Views/ConferenceSchedulingSummaryView.swift index 9486d99dd..f8fbe6674 100644 --- a/Classes/Swift/Conference/Views/ConferenceSchedulingSummaryView.swift +++ b/Classes/Swift/Conference/Views/ConferenceSchedulingSummaryView.swift @@ -238,6 +238,7 @@ import SVProgressHUD func goBackParticipantsListSelection() { let view: ChatConversationCreateView = VIEW(ChatConversationCreateView.compositeViewDescription()) + view.unfragmentCompositeDescription() let addresses = ConferenceSchedulingViewModel.shared.selectedAddresses.value!.map { (address) in String(address.asStringUriOnly()) } view.tableController.contactsGroup = (addresses as NSArray).mutableCopy() as? NSMutableArray view.tableController.notFirstTime = true diff --git a/Classes/Swift/Conference/Views/ConferenceSchedulingView.swift b/Classes/Swift/Conference/Views/ConferenceSchedulingView.swift index d08fb09dd..41c1df298 100644 --- a/Classes/Swift/Conference/Views/ConferenceSchedulingView.swift +++ b/Classes/Swift/Conference/Views/ConferenceSchedulingView.swift @@ -226,7 +226,8 @@ import IQKeyboardManager func gotoParticipantsListSelection() { - let view: ChatConversationCreateView = self.VIEW(ChatConversationCreateView.compositeViewDescription()); + let view: ChatConversationCreateView = self.VIEW(ChatConversationCreateView.compositeViewDescription()) + view.unfragmentCompositeDescription() let addresses = ConferenceSchedulingViewModel.shared.selectedAddresses.value!.map { (address) in String(address.asStringUriOnly()) } view.tableController.contactsGroup = (addresses as NSArray).mutableCopy() as? NSMutableArray view.isForEditing = false diff --git a/Classes/Swift/Voip/Views/Fragments/ParticipantsList/ParticipantsListView.swift b/Classes/Swift/Voip/Views/Fragments/ParticipantsList/ParticipantsListView.swift index 2fc971b89..59f60e183 100644 --- a/Classes/Swift/Voip/Views/Fragments/ParticipantsList/ParticipantsListView.swift +++ b/Classes/Swift/Voip/Views/Fragments/ParticipantsList/ParticipantsListView.swift @@ -103,7 +103,8 @@ import linphonesw } func gotoParticipantsListSelection() { - let view: ChatConversationCreateView = self.VIEW(ChatConversationCreateView.compositeViewDescription()); + let view: ChatConversationCreateView = self.VIEW(ChatConversationCreateView.compositeViewDescription()) + view.unfragmentCompositeDescription() let addresses = ConferenceViewModel.shared.conferenceParticipants.value!.map { (data) in String(data.participant.address!.asStringUriOnly()) } view.tableController.contactsGroup = (addresses as NSArray).mutableCopy() as? NSMutableArray view.isForEditing = false