Bug fix: reset recents on logout

This commit is contained in:
giomfo 2014-11-28 15:06:53 +01:00
parent bed78a0215
commit 6422f1bb11
3 changed files with 20 additions and 6 deletions

View file

@ -89,11 +89,11 @@
- (void)logout {
// Clear cache
[MediaManager clearCache];
// Reset App settings
[[AppSettings sharedSettings] reset];
// Logout Matrix
[[MatrixHandler sharedHandler] logout];
[self.masterTabBarController showLoginScreen];
// Reset App settings
[[AppSettings sharedSettings] reset];
// By default the "Home" tab is focussed
[self.masterTabBarController setSelectedIndex:TABBAR_HOME_INDEX];
}

View file

@ -196,6 +196,9 @@
if (_preSelectedRoomId) {
self.preSelectedRoomId = _preSelectedRoomId;
}
} else {
recents = nil;
[self.tableView reloadData];
}
}
@ -205,10 +208,8 @@
#pragma mark - KVO
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if ([@"isInitialSyncDone" isEqualToString:keyPath])
{
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
if ([@"isInitialSyncDone" isEqualToString:keyPath]) {
dispatch_async(dispatch_get_main_queue(), ^{
[self configureView];
});

View file

@ -127,6 +127,7 @@ NSString *const kCmdResetUserPowerLevel = @"/deop";
if (messagesListener) {
[mxRoom removeListener:messagesListener];
messagesListener = nil;
[[AppSettings sharedSettings] removeObserver:self forKeyPath:@"hideUnsupportedMessages"];
}
mxRoom = nil;
@ -236,6 +237,7 @@ NSString *const kCmdResetUserPowerLevel = @"/deop";
if (messagesListener && mxRoom) {
[mxRoom removeListener:messagesListener];
messagesListener = nil;
[[AppSettings sharedSettings] removeObserver:self forKeyPath:@"hideUnsupportedMessages"];
}
// The whole room history is flushed here to rebuild it from the current instant (live)
messages = nil;
@ -274,6 +276,7 @@ NSString *const kCmdResetUserPowerLevel = @"/deop";
self.roomNameTextField.enabled = YES;
messages = [NSMutableArray array];
[[AppSettings sharedSettings] addObserver:self forKeyPath:@"hideUnsupportedMessages" options:0 context:nil];
// Register a listener to handle messages
messagesListener = [mxRoom listenToEventsOfTypes:mxHandler.mxSession.eventsFilterForMessages onEvent:^(MXEvent *event, MXEventDirection direction, MXRoomState *roomState) {
BOOL shouldScrollToBottom = NO;
@ -490,6 +493,16 @@ NSString *const kCmdResetUserPowerLevel = @"/deop";
}
}
#pragma mark - KVO
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
if ([@"hideUnsupportedMessages" isEqualToString:keyPath]) {
dispatch_async(dispatch_get_main_queue(), ^{
[self configureView];
});
}
}
# pragma mark - Room members
- (void)showHideRoomMembers:(id)sender {