blob: 7acaf642c4df333b35e7f24e0e91a5d7a7a10eb7 [file] [log] [blame]
// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#import "ios/chrome/browser/ui/bookmarks/synced_bookmarks_bridge.h"
#import "components/signin/public/identity_manager/identity_manager.h"
#import "components/sync/service/sync_service.h"
#import "ios/chrome/browser/shared/model/browser_state/chrome_browser_state.h"
#import "ios/chrome/browser/signin/identity_manager_factory.h"
#import "ios/chrome/browser/sync/sync_service_factory.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif
namespace sync_bookmarks {
#pragma mark - SyncedBookmarksObserverBridge
SyncedBookmarksObserverBridge::SyncedBookmarksObserverBridge(
id<SyncObserverModelBridge> delegate,
ChromeBrowserState* browserState)
: SyncObserverBridge(delegate,
SyncServiceFactory::GetForBrowserState(browserState)),
identity_manager_(
IdentityManagerFactory::GetForBrowserState(browserState)),
browser_state_(browserState) {}
SyncedBookmarksObserverBridge::~SyncedBookmarksObserverBridge() {}
#pragma mark - Signin and syncing status
bool SyncedBookmarksObserverBridge::HasSyncConsent() {
return identity_manager_->HasPrimaryAccount(signin::ConsentLevel::kSync);
}
bool SyncedBookmarksObserverBridge::IsPerformingInitialSync() {
syncer::SyncService* sync_service =
SyncServiceFactory::GetForBrowserState(browser_state_);
return sync_service->GetTypesWithPendingDownloadForInitialSync().Has(
syncer::BOOKMARKS);
}
} // namespace sync_bookmarks