From f644c3edc08c3d4308f1b459c22911ce2bcbbbdd Mon Sep 17 00:00:00 2001 From: giomfo Date: Tue, 12 May 2015 14:29:42 +0200 Subject: [PATCH] Room view controller: remove properly members listener. --- .../ViewController/RoomViewController.m | 39 +++++++++++++------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/matrixConsole/ViewController/RoomViewController.m b/matrixConsole/ViewController/RoomViewController.m index baa58d3ff..f6d0def2c 100644 --- a/matrixConsole/ViewController/RoomViewController.m +++ b/matrixConsole/ViewController/RoomViewController.m @@ -82,24 +82,28 @@ self.actionMenu = nil; } - // Store the potential message partially typed in text input - self.roomDataSource.partialTextMessage = self.inputToolbarView.textMessage; - - if (membersListener) { - [self.roomDataSource.room removeListener:membersListener]; - membersListener = nil; + if (self.roomDataSource) { + // Store the potential message partially typed in text input + self.roomDataSource.partialTextMessage = self.inputToolbarView.textMessage; + + if (membersListener) { + [self.roomDataSource.room removeListener:membersListener]; + membersListener = nil; + } } } - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; - // Set visible room id - [AppDelegate theDelegate].masterTabBarController.visibleRoomId = self.roomDataSource.roomId; - - // Retrieve the potential message partially typed during last room display. - // Note: We have to wait for viewDidAppear before updating growingTextView (viewWillAppear is too early) - self.inputToolbarView.textMessage = self.roomDataSource.partialTextMessage; + if (self.roomDataSource) { + // Set visible room id + [AppDelegate theDelegate].masterTabBarController.visibleRoomId = self.roomDataSource.roomId; + + // Retrieve the potential message partially typed during last room display. + // Note: We have to wait for viewDidAppear before updating growingTextView (viewWillAppear is too early) + self.inputToolbarView.textMessage = self.roomDataSource.partialTextMessage; + } } - (void)viewDidDisappear:(BOOL)animated { @@ -111,6 +115,17 @@ #pragma mark - +- (void)displayRoom:(MXKRoomDataSource *)dataSource { + + // Remove members listener (if any) before changing dataSource. + if (membersListener) { + [self.roomDataSource.room removeListener:membersListener]; + membersListener = nil; + } + + [super displayRoom:dataSource]; +} + - (void)dismissKeyboard { [_roomTitleView dismissKeyboard];