| Index: ios/chrome/browser/ui/bookmarks/bookmark_collection_view.mm
|
| diff --git a/ios/chrome/browser/ui/bookmarks/bookmark_collection_view.mm b/ios/chrome/browser/ui/bookmarks/bookmark_collection_view.mm
|
| index 28cc755dbb44cc7bc27c3d588966e6491437fb92..11e140ddd099b8b89a8188d5654f99d3e7c94e88 100644
|
| --- a/ios/chrome/browser/ui/bookmarks/bookmark_collection_view.mm
|
| +++ b/ios/chrome/browser/ui/bookmarks/bookmark_collection_view.mm
|
| @@ -19,10 +19,12 @@
|
| #include "components/favicon/core/large_icon_service.h"
|
| #include "components/favicon_base/fallback_icon_style.h"
|
| #include "components/favicon_base/favicon_types.h"
|
| +#include "components/pref_registry/pref_registry_syncable.h"
|
| #include "ios/chrome/browser/bookmarks/bookmark_model_factory.h"
|
| #include "ios/chrome/browser/bookmarks/bookmarks_utils.h"
|
| #include "ios/chrome/browser/experimental_flags.h"
|
| #include "ios/chrome/browser/favicon/ios_chrome_large_icon_service_factory.h"
|
| +#include "ios/chrome/browser/pref_names.h"
|
| #import "ios/chrome/browser/ui/authentication/signin_promo_view.h"
|
| #import "ios/chrome/browser/ui/authentication/signin_promo_view_configurator.h"
|
| #import "ios/chrome/browser/ui/authentication/signin_promo_view_consumer.h"
|
| @@ -142,6 +144,11 @@ const NSTimeInterval kShowEmptyBookmarksBackgroundRefreshDelay = 1.0;
|
| @synthesize browserState = _browserState;
|
| @synthesize shadow = _shadow;
|
|
|
| ++ (void)registerBrowserStatePrefs:(user_prefs::PrefRegistrySyncable*)registry {
|
| + registry->RegisterIntegerPref(prefs::kIosBookmarkSigninPromoDisplayedCount,
|
| + 0);
|
| +}
|
| +
|
| #pragma mark - Initialization
|
|
|
| - (void)setupViews {
|
| @@ -335,16 +342,32 @@ const NSTimeInterval kShowEmptyBookmarksBackgroundRefreshDelay = 1.0;
|
| _signinPromoViewMediator.consumer = nil;
|
| _signinPromoViewMediator = nil;
|
| } else {
|
| - _signinPromoViewMediator = [[SigninPromoViewMediator alloc] init];
|
| + _signinPromoViewMediator = [[SigninPromoViewMediator alloc]
|
| + initWithBrowserState:_browserState];
|
| _signinPromoViewMediator.consumer = self;
|
| + _signinPromoViewMediator.displayedCountPreferenceKey =
|
| + prefs::kIosBookmarkSigninPromoDisplayedCount;
|
| + _signinPromoViewMediator.alreadySeenSigninViewPreferenceKey =
|
| + prefs::kIosBookmarkPromoAlreadySeen;
|
| + _signinPromoViewMediator.histograms =
|
| + ios::SigninPromoViewHistograms::Bookmarks;
|
| _signinPromoViewMediator.accessPoint =
|
| signin_metrics::AccessPoint::ACCESS_POINT_BOOKMARK_MANAGER;
|
| + [_signinPromoViewMediator signinPromoViewVisible];
|
| }
|
| }
|
| [self.collectionView reloadData];
|
| }
|
| }
|
|
|
| +- (void)wasShown {
|
| + [_signinPromoViewMediator signinPromoViewVisible];
|
| +}
|
| +
|
| +- (void)wasHidden {
|
| + [_signinPromoViewMediator signinPromoViewHidden];
|
| +}
|
| +
|
| #pragma mark - Sections
|
|
|
| - (NSInteger)promoSection {
|
| @@ -773,7 +796,7 @@ const NSTimeInterval kShowEmptyBookmarksBackgroundRefreshDelay = 1.0;
|
| configureSigninPromoView:signinPromoCell.signinPromoView];
|
| __weak BookmarkCollectionView* weakSelf = self;
|
| signinPromoCell.closeButtonAction = ^() {
|
| - [weakSelf.delegate bookmarkCollectionViewDismissPromo:self];
|
| + [weakSelf signinPromoCloseButtonAction];
|
| };
|
| return signinPromoCell;
|
| } else {
|
| @@ -794,6 +817,12 @@ const NSTimeInterval kShowEmptyBookmarksBackgroundRefreshDelay = 1.0;
|
| return cell;
|
| }
|
|
|
| +// Removes the sign-in promo view.
|
| +- (void)signinPromoCloseButtonAction {
|
| + [_signinPromoViewMediator signinPromoViewDismissed];
|
| + [_delegate bookmarkCollectionViewDismissPromo:self];
|
| +}
|
| +
|
| // Create a header view for the element at |indexPath|.
|
| - (UICollectionReusableView*)headerAtIndexPath:(NSIndexPath*)indexPath {
|
| if (![self needsSectionHeaderForSection:indexPath.section])
|
|
|