Room view controller: remove properly members listener.

This commit is contained in:
giomfo 2015-05-12 14:29:42 +02:00
parent 0e0a84dfd0
commit f644c3edc0

View file

@ -82,24 +82,28 @@
self.actionMenu = nil; self.actionMenu = nil;
} }
// Store the potential message partially typed in text input if (self.roomDataSource) {
self.roomDataSource.partialTextMessage = self.inputToolbarView.textMessage; // Store the potential message partially typed in text input
self.roomDataSource.partialTextMessage = self.inputToolbarView.textMessage;
if (membersListener) {
[self.roomDataSource.room removeListener:membersListener]; if (membersListener) {
membersListener = nil; [self.roomDataSource.room removeListener:membersListener];
membersListener = nil;
}
} }
} }
- (void)viewDidAppear:(BOOL)animated { - (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated]; [super viewDidAppear:animated];
// Set visible room id if (self.roomDataSource) {
[AppDelegate theDelegate].masterTabBarController.visibleRoomId = self.roomDataSource.roomId; // 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) // Retrieve the potential message partially typed during last room display.
self.inputToolbarView.textMessage = self.roomDataSource.partialTextMessage; // Note: We have to wait for viewDidAppear before updating growingTextView (viewWillAppear is too early)
self.inputToolbarView.textMessage = self.roomDataSource.partialTextMessage;
}
} }
- (void)viewDidDisappear:(BOOL)animated { - (void)viewDidDisappear:(BOOL)animated {
@ -111,6 +115,17 @@
#pragma mark - #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 { - (void)dismissKeyboard {
[_roomTitleView dismissKeyboard]; [_roomTitleView dismissKeyboard];