| // Copyright 2017 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef IOS_CHROME_BROWSER_BOOKMARKS_UI_BUNDLED_BOOKMARK_MEDIATOR_H_ |
| #define IOS_CHROME_BROWSER_BOOKMARKS_UI_BUNDLED_BOOKMARK_MEDIATOR_H_ |
| |
| #import <UIKit/UIKit.h> |
| |
| class AuthenticationService; |
| class GURL; |
| class PrefService; |
| @class SnackbarMessage; |
| @class URLWithTitle; |
| |
| namespace bookmarks { |
| class BookmarkModel; |
| class BookmarkNode; |
| } // namespace bookmarks |
| |
| namespace syncer { |
| class SyncService; |
| } // namespace syncer |
| |
| namespace user_prefs { |
| class PrefRegistrySyncable; |
| } // namespace user_prefs |
| |
| // Mediator for the bookmarks. |
| @interface BookmarkMediator : NSObject |
| |
| - (instancetype)init NS_UNAVAILABLE; |
| - (instancetype)initWithBookmarkModel:(bookmarks::BookmarkModel*)bookmarkModel |
| prefs:(PrefService*)prefs |
| authenticationService: |
| (AuthenticationService*)authenticationService |
| syncService:(syncer::SyncService*)syncService |
| NS_DESIGNATED_INITIALIZER; |
| |
| // Registers the feature preferences. |
| + (void)registerProfilePrefs:(user_prefs::PrefRegistrySyncable*)registry; |
| |
| // Disconnects the mediator |
| - (void)disconnect; |
| |
| // Adds a bookmark with a `title` and a `URL` and display a snackbar with an |
| // `editAction`. Returns a message to be displayed after the Bookmark has been |
| // added. |
| - (SnackbarMessage*)addBookmarkWithTitle:(NSString*)title |
| URL:(const GURL&)URL |
| editAction:(void (^)())editAction; |
| |
| // Bulk adds URLs to bookmarks by automatically using their hostname + path as |
| // title. Returns a snackbar toast message with the amount of bookmarks |
| // successfully added and with the viewAction passed. Skips adding invalid URLs |
| // or URLs already bookmarked. |
| - (SnackbarMessage*)bulkAddBookmarksWithURLs:(NSArray<NSURL*>*)URLs |
| viewAction:(void (^)())viewAction; |
| |
| // Adds bookmarks for `URLs` into `folder`. Returns a message to be displayed |
| // after the Bookmark has been added. |
| - (SnackbarMessage*)addBookmarks:(NSArray<URLWithTitle*>*)URLs |
| toFolder:(const bookmarks::BookmarkNode*)folder; |
| |
| @end |
| |
| #endif // IOS_CHROME_BROWSER_BOOKMARKS_UI_BUNDLED_BOOKMARK_MEDIATOR_H_ |