Merge commit '2d178343b17e1ece55d595d904aeeba87e3d9938' into room_summary

This commit is contained in:
manuroe
2017-03-31 15:42:11 +02:00
9 changed files with 411 additions and 209 deletions
+27 -2
View File
@@ -57,6 +57,9 @@
// The potential room id or alias typed in search input.
NSString *roomIdOrAlias;
// Timer to not refresh publicRoomsDirectoryDataSource on every keystroke.
NSTimer *publicRoomsTriggerTimer;
}
@end
@@ -196,7 +199,8 @@
if (!_hidePublicRoomsDirectory)
{
[self.publicRoomsDirectoryDataSource refreshPublicRooms];
// Start by looking for all public rooms
self.publicRoomsDirectoryDataSource.searchPattern = nil;
}
[self refreshRoomsSectionsAndReload];
@@ -767,11 +771,27 @@
}
}
- (IBAction)onPublicRoomsSearchPatternUpdate:(id)sender
{
if (publicRoomsTriggerTimer)
{
NSString *searchPattern = publicRoomsTriggerTimer.userInfo;
[publicRoomsTriggerTimer invalidate];
publicRoomsTriggerTimer = nil;
_publicRoomsDirectoryDataSource.searchPattern = searchPattern;
}
}
#pragma mark - Override MXKDataSource
- (void)destroy
{
[super destroy];
[publicRoomsTriggerTimer invalidate];
publicRoomsTriggerTimer = nil;
}
#pragma mark - Override MXKRecentsDataSource
@@ -798,7 +818,12 @@
if (_publicRoomsDirectoryDataSource)
{
_publicRoomsDirectoryDataSource.searchPatternsList = patternsList;
NSString *searchPattern = [patternsList componentsJoinedByString:@" "];
// Do not send a /publicRooms request for every keystroke
// Let user finish typing
[publicRoomsTriggerTimer invalidate];
publicRoomsTriggerTimer = [NSTimer scheduledTimerWithTimeInterval:0.7 target:self selector:@selector(onPublicRoomsSearchPatternUpdate:) userInfo:searchPattern repeats:NO];
}
}