Mhurd has uploaded a new change for review.
https://gerrit.wikimedia.org/r/173351
Change subject: Prefix and full-text delayed searching.
......................................................................
Prefix and full-text delayed searching.
0.3 seconds for prefix and 1 second for full text.
Change-Id: I81115585fb798ee2fb01a3c61f8955a3282d9f16
---
M wikipedia/Defines/Defines.h
M wikipedia/View Controllers/SearchResults/SearchResultsController.m
2 files changed, 37 insertions(+), 1 deletion(-)
git pull ssh://gerrit.wikimedia.org:29418/apps/ios/wikipedia
refs/changes/51/173351/1
diff --git a/wikipedia/Defines/Defines.h b/wikipedia/Defines/Defines.h
index 79a7956..f9716bd 100644
--- a/wikipedia/Defines/Defines.h
+++ b/wikipedia/Defines/Defines.h
@@ -61,3 +61,7 @@
SEARCH_TYPE_TITLES,
SEARCH_TYPE_IN_ARTCILES
};
+
+#define SEARCH_DELAY_PREFIX 0.3
+#define SEARCH_DELAY_FULL_TEXT 1.0
+
diff --git a/wikipedia/View Controllers/SearchResults/SearchResultsController.m
b/wikipedia/View Controllers/SearchResults/SearchResultsController.m
index 7e194a3..214488a 100644
--- a/wikipedia/View Controllers/SearchResults/SearchResultsController.m
+++ b/wikipedia/View Controllers/SearchResults/SearchResultsController.m
@@ -41,6 +41,8 @@
@property (nonatomic, weak) IBOutlet SearchDidYouMeanButton *didYouMeanButton;
@property (nonatomic, weak) IBOutlet SearchMessageLabel *searchMessageLabel;
+@property (nonatomic, strong) NSTimer *delayedSearchTimer;
+
@end
@implementation SearchResultsController
@@ -103,7 +105,7 @@
context: (void *)context
{
if ((object == self.searchTypeMenu) && [keyPath
isEqualToString:@"searchType"]) {
- [self refreshSearchResults];
+ [self refreshSearchResultsAfterDelay:@0.0f];
}
}
@@ -118,13 +120,43 @@
{
[super viewWillDisappear:animated];
+ [self cancelDelayedSearch];
+
[self.searchTypeMenu removeObserver:self forKeyPath:@"searchType"];
[[QueuesSingleton sharedInstance].searchResultsFetchManager.operationQueue
cancelAllOperations];
}
+-(void)cancelDelayedSearch
+{
+ if (self.delayedSearchTimer) {
+ [self.delayedSearchTimer invalidate];
+ self.delayedSearchTimer = nil;
+ }
+}
+
-(void)refreshSearchResults
{
+ CGFloat delay = (self.searchTypeMenu.searchType == SEARCH_TYPE_TITLES) ?
SEARCH_DELAY_PREFIX : SEARCH_DELAY_FULL_TEXT;
+
+ [self refreshSearchResultsAfterDelay:@(delay)];
+}
+
+-(void)refreshSearchResultsAfterDelay:(NSNumber *)delay
+{
+ [self cancelDelayedSearch];
+
+ self.delayedSearchTimer = [NSTimer scheduledTimerWithTimeInterval:
delay.floatValue
+ target: self
+ selector:
@selector(performSearch)
+ userInfo: nil
+ repeats: NO];
+}
+
+-(void)performSearch
+{
+ if (self.navigationController.topViewController != self) return;
+
if (ROOT.topMenuViewController.currentSearchString.length == 0) return;
[self updateWordsToHighlight];
--
To view, visit https://gerrit.wikimedia.org/r/173351
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I81115585fb798ee2fb01a3c61f8955a3282d9f16
Gerrit-PatchSet: 1
Gerrit-Project: apps/ios/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Mhurd <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits