| // Copyright 2015 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef IOS_CHROME_APP_SPOTLIGHT_BOOKMARKS_SPOTLIGHT_MANAGER_H_ |
| #define IOS_CHROME_APP_SPOTLIGHT_BOOKMARKS_SPOTLIGHT_MANAGER_H_ |
| |
| #import "ios/chrome/app/spotlight/base_spotlight_manager.h" |
| |
| namespace bookmarks { |
| class BookmarkNode; |
| class BookmarkModel; |
| } |
| |
| namespace ios { |
| class ChromeBrowserState; |
| } // namespace ios |
| |
| @class CSSearchableItem; |
| @class TopSitesSpotlightManager; |
| |
| @protocol BookmarkUpdatedDelegate |
| |
| // Called when a bookmark is updated. |
| - (void)bookmarkUpdated; |
| |
| @end |
| |
| @interface BookmarksSpotlightManager : BaseSpotlightManager |
| |
| // The delegate notified when a bookmark is updated. |
| @property(nonatomic, weak) id<BookmarkUpdatedDelegate> delegate; |
| |
| + (BookmarksSpotlightManager*)bookmarksSpotlightManagerWithBrowserState: |
| (ios::ChromeBrowserState*)browserState; |
| |
| // Checks the date of the latest global indexation and reindex all bookmarks if |
| // needed. |
| - (void)reindexBookmarksIfNeeded; |
| |
| // Methods below here are for testing use only. |
| |
| - (instancetype) |
| initWithLargeIconService:(favicon::LargeIconService*)largeIconService |
| bookmarkModel:(bookmarks::BookmarkModel*)bookmarkModel; |
| |
| // Recursively adds node ancestors titles to keywords. Permanent nodes are |
| // ignored. |
| - (void)getParentKeywordsForNode:(const bookmarks::BookmarkNode*)node |
| inArray:(NSMutableArray*)keywords; |
| |
| // Adds keywords to |item|. |
| - (void)addKeywords:(NSArray*)keywords toSearchableItem:(CSSearchableItem*)item; |
| |
| @end |
| |
| #endif // IOS_CHROME_APP_SPOTLIGHT_BOOKMARKS_SPOTLIGHT_MANAGER_H_ |