From 5e989bbb285245f59095cbd0740e974733777053 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Mon, 13 Nov 2017 14:07:05 +0100 Subject: [PATCH] UI fixes --- Classes/ChatConversationCreateView.m | 6 +++++- Classes/ChatConversationInfoView.h | 2 ++ Classes/ChatConversationInfoView.m | 18 +++++++++++++++++- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/Classes/ChatConversationCreateView.m b/Classes/ChatConversationCreateView.m index 6ffdd4ea7..a489e8ffc 100644 --- a/Classes/ChatConversationCreateView.m +++ b/Classes/ChatConversationCreateView.m @@ -85,6 +85,7 @@ void create_chat_room_state_changed(LinphoneChatRoom *cr, LinphoneChatRoomState break; case LinphoneChatRoomStateCreationFailed: view.waitView.hidden = YES; + [ChatConversationInfoView displayCreationError]; LOGE(@"Chat room [%p] could not be created on server.", cr); break; default: @@ -116,7 +117,10 @@ void create_chat_room_state_changed(LinphoneChatRoom *cr, LinphoneChatRoomState - (IBAction)onBackClick:(id)sender { [_tableController.contactsGroup removeAllObjects]; - [PhoneMainView.instance popToView:ChatsListView.compositeViewDescription]; + if (_tableController.notFirstTime) + [PhoneMainView.instance popToView:ChatConversationInfoView.compositeViewDescription]; + else + [PhoneMainView.instance popToView:ChatsListView.compositeViewDescription]; } - (IBAction)onNextClick:(id)sender { diff --git a/Classes/ChatConversationInfoView.h b/Classes/ChatConversationInfoView.h index 8084996b6..a0c2b0fad 100644 --- a/Classes/ChatConversationInfoView.h +++ b/Classes/ChatConversationInfoView.h @@ -29,6 +29,8 @@ @property (weak, nonatomic) IBOutlet UITableView *tableView; @property (weak, nonatomic) IBOutlet UIView *waitView; ++ (void)displayCreationError; + - (IBAction)onNextClick:(id)sender; - (IBAction)onBackClick:(id)sender; - (IBAction)onQuitClick:(id)sender; diff --git a/Classes/ChatConversationInfoView.m b/Classes/ChatConversationInfoView.m index 8485f6520..ff9a35cd4 100644 --- a/Classes/ChatConversationInfoView.m +++ b/Classes/ChatConversationInfoView.m @@ -36,6 +36,21 @@ static UICompositeViewDescription *compositeDescription = nil; return self.class.compositeViewDescription; } ++ (void)displayCreationError { + static UIAlertController *errorView = nil; + // avoid having multiple popups + [PhoneMainView.instance dismissViewControllerAnimated:YES completion:nil]; + errorView = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Chat room creation error", nil) + message:NSLocalizedString(@"Chat room could not be created on server", nil) + preferredStyle:UIAlertControllerStyleAlert]; + + UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"OK", nil) + style:UIAlertActionStyleDefault + handler:^(UIAlertAction * action) {}]; + [errorView addAction:defaultAction]; + [PhoneMainView.instance presentViewController:errorView animated:YES completion:nil]; +} + - (void)viewDidLoad { [super viewDidLoad]; // if we use fragments, remove back button @@ -299,7 +314,7 @@ static UICompositeViewDescription *compositeDescription = nil; ? NSLocalizedString(@"You are now an admin of the chat room", nil) : NSLocalizedString(@"You are no longer an admin of the chat room", nil); - static UIAlertController *alertView; + static UIAlertController *alertView = nil; // avoid having multiple popups [PhoneMainView.instance dismissViewControllerAnimated:YES completion:nil]; alertView = [UIAlertController alertControllerWithTitle:[NSString stringWithFormat:@"%@", message] @@ -322,6 +337,7 @@ void chat_room_state_changed(LinphoneChatRoom *cr, LinphoneChatRoomState newStat break; case LinphoneChatRoomStateCreationFailed: view.waitView.hidden = YES; + [ChatConversationInfoView displayCreationError]; LOGE(@"Chat room [%p] could not be created on server.", cr); break; case LinphoneChatRoomStateTerminated: