Commit 65dc9e62 authored by Stuart Langley's avatar Stuart Langley Committed by Commit Bot

Plumb TeamDriveListObserver through the change list loaders.

Bug: 715355
Change-Id: Id2a1d0fc88d510395ee8c20acca55571638f4fa5
Reviewed-on: https://chromium-review.googlesource.com/1084138
Commit-Queue: Stuart Langley <slangley@chromium.org>
Reviewed-by: default avatarSasha Morrissey <sashab@chromium.org>
Cr-Commit-Position: refs/heads/master@{#564982}
parent 1ff37758
......@@ -49,18 +49,28 @@ DefaultCorpusChangeListLoader::DefaultCorpusChangeListLoader(
DefaultCorpusChangeListLoader::~DefaultCorpusChangeListLoader() = default;
void DefaultCorpusChangeListLoader::AddObserver(
void DefaultCorpusChangeListLoader::AddChangeListLoaderObserver(
ChangeListLoaderObserver* observer) {
change_list_loader_->AddObserver(observer);
directory_loader_->AddObserver(observer);
}
void DefaultCorpusChangeListLoader::RemoveObserver(
void DefaultCorpusChangeListLoader::RemoveChangeListLoaderObserver(
ChangeListLoaderObserver* observer) {
change_list_loader_->RemoveObserver(observer);
directory_loader_->RemoveObserver(observer);
}
void DefaultCorpusChangeListLoader::AddTeamDriveListObserver(
TeamDriveListObserver* observer) {
team_drive_list_loader_->AddObserver(observer);
}
void DefaultCorpusChangeListLoader::RemoveTeamDriveListObserver(
TeamDriveListObserver* observer) {
team_drive_list_loader_->RemoveObserver(observer);
}
bool DefaultCorpusChangeListLoader::IsRefreshing() {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
return team_drive_list_loader_->IsRefreshing() ||
......
......@@ -43,8 +43,11 @@ class DefaultCorpusChangeListLoader : public DriveChangeListLoader {
~DefaultCorpusChangeListLoader() override;
// DriveChangeListLoader overrides
void AddObserver(ChangeListLoaderObserver* observer) override;
void RemoveObserver(ChangeListLoaderObserver* observer) override;
void AddChangeListLoaderObserver(ChangeListLoaderObserver* observer) override;
void RemoveChangeListLoaderObserver(
ChangeListLoaderObserver* observer) override;
void AddTeamDriveListObserver(TeamDriveListObserver* observer) override;
void RemoveTeamDriveListObserver(TeamDriveListObserver* observer) override;
bool IsRefreshing() override;
void LoadIfNeeded(const FileOperationCallback& callback) override;
......
......@@ -12,6 +12,7 @@ namespace drive {
namespace internal {
class ChangeListLoaderObserver;
class TeamDriveListObserver;
// DriveChangeListLoader provides an abstraction for loading change lists, the
// full resource list amd directory contents, from Google Drive API.
......@@ -23,8 +24,14 @@ class DriveChangeListLoader {
virtual ~DriveChangeListLoader() = default;
// Adds and removes an observer for change list loading events.
virtual void AddObserver(ChangeListLoaderObserver* observer) = 0;
virtual void RemoveObserver(ChangeListLoaderObserver* observer) = 0;
virtual void AddChangeListLoaderObserver(
ChangeListLoaderObserver* observer) = 0;
virtual void RemoveChangeListLoaderObserver(
ChangeListLoaderObserver* observer) = 0;
// Adds and removes an observer for team drive loading events.
virtual void AddTeamDriveListObserver(TeamDriveListObserver* observer) = 0;
virtual void RemoveTeamDriveListObserver(TeamDriveListObserver* observer) = 0;
// Indicates whether there is a request for full resource list or change
// list fetching is in flight (i.e. directory contents fetching does not
......
......@@ -329,7 +329,8 @@ FileSystem::FileSystem(PrefService* pref_service,
FileSystem::~FileSystem() {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
default_corpus_change_list_loader_->RemoveObserver(this);
default_corpus_change_list_loader_->RemoveChangeListLoaderObserver(this);
default_corpus_change_list_loader_->RemoveTeamDriveListObserver(this);
}
void FileSystem::Reset(const FileOperationCallback& callback) {
......@@ -359,7 +360,8 @@ void FileSystem::ResetComponents() {
logger_, blocking_task_runner_.get(), resource_metadata_, scheduler_,
about_resource_loader_.get(), loader_controller_.get());
default_corpus_change_list_loader_->AddObserver(this);
default_corpus_change_list_loader_->AddChangeListLoaderObserver(this);
default_corpus_change_list_loader_->AddTeamDriveListObserver(this);
sync_client_ = std::make_unique<internal::SyncClient>(
blocking_task_runner_.get(), delegate, scheduler_, resource_metadata_,
......@@ -879,6 +881,13 @@ void FileSystem::OnInitialLoadComplete() {
sync_client_->StartProcessingBacklog();
}
void FileSystem::OnTeamDriveListLoaded(
const std::vector<internal::TeamDrive>& team_drives_list,
const std::vector<internal::TeamDrive>& added_team_drives,
const std::vector<internal::TeamDrive>& removed_team_drives) {
// TODO(slangley): Create change list loaders for the team drives.
}
void FileSystem::GetMetadata(
const GetFilesystemMetadataCallback& callback) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
......
......@@ -19,6 +19,7 @@
#include "components/drive/chromeos/change_list_loader_observer.h"
#include "components/drive/chromeos/file_system/operation_delegate.h"
#include "components/drive/chromeos/file_system_interface.h"
#include "components/drive/chromeos/team_drive_list_observer.h"
#include "google_apis/drive/drive_api_error_codes.h"
class PrefService;
......@@ -45,6 +46,7 @@ class FileCache;
class LoaderController;
class ResourceMetadata;
class SyncClient;
class TeamDrive;
} // namespace internal
namespace file_system {
......@@ -65,6 +67,7 @@ class TruncateOperation;
// The production implementation of FileSystemInterface.
class FileSystem : public FileSystemInterface,
public internal::ChangeListLoaderObserver,
public internal::TeamDriveListObserver,
public file_system::OperationDelegate {
public:
FileSystem(PrefService* pref_service,
......@@ -185,6 +188,12 @@ class FileSystem : public FileSystemInterface,
void OnLoadFromServerComplete() override;
void OnInitialLoadComplete() override;
// TeamDriveListObserver overrides.
void OnTeamDriveListLoaded(
const std::vector<internal::TeamDrive>& team_drives_list,
const std::vector<internal::TeamDrive>& added_team_drives,
const std::vector<internal::TeamDrive>& removed_team_drives) override;
// Used by tests.
internal::DriveChangeListLoader* change_list_loader_for_testing() {
return default_corpus_change_list_loader_.get();
......
......@@ -64,18 +64,28 @@ TeamDriveChangeListLoader::TeamDriveChangeListLoader(
TeamDriveChangeListLoader::~TeamDriveChangeListLoader() = default;
// DriveChangeListLoader overrides
void TeamDriveChangeListLoader::AddObserver(
void TeamDriveChangeListLoader::AddChangeListLoaderObserver(
ChangeListLoaderObserver* observer) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
change_list_loader_observers_.AddObserver(observer);
}
void TeamDriveChangeListLoader::RemoveObserver(
void TeamDriveChangeListLoader::RemoveChangeListLoaderObserver(
ChangeListLoaderObserver* observer) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
change_list_loader_observers_.RemoveObserver(observer);
}
void TeamDriveChangeListLoader::AddTeamDriveListObserver(
TeamDriveListObserver* observer) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
}
void TeamDriveChangeListLoader::RemoveTeamDriveListObserver(
TeamDriveListObserver* observer) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
}
bool TeamDriveChangeListLoader::IsRefreshing() {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
return change_list_loader_->IsRefreshing();
......
......@@ -44,8 +44,11 @@ class TeamDriveChangeListLoader : public DriveChangeListLoader,
~TeamDriveChangeListLoader() override;
// DriveChangeListLoader overrides
void AddObserver(ChangeListLoaderObserver* observer) override;
void RemoveObserver(ChangeListLoaderObserver* observer) override;
void AddChangeListLoaderObserver(ChangeListLoaderObserver* observer) override;
void RemoveChangeListLoaderObserver(
ChangeListLoaderObserver* observer) override;
void AddTeamDriveListObserver(TeamDriveListObserver* observer) override;
void RemoveTeamDriveListObserver(TeamDriveListObserver* observer) override;
bool IsRefreshing() override;
void LoadIfNeeded(const FileOperationCallback& callback) override;
void ReadDirectory(const base::FilePath& directory_path,
......
......@@ -14,6 +14,7 @@ namespace internal {
// Interface for classes that need to observe events from the
// TeamDriveListLoader.
// TODO(slangley): Consider merging with ChangeListLoaderObserver.
class TeamDriveListObserver {
public:
// Called every time that the complete list of team drives has been retrieved
......
......@@ -112,7 +112,7 @@ class TeamDriveChangeListLoaderTest : public testing::Test {
change_list_loader_observer_ =
std::make_unique<TestChangeListLoaderObserver>();
team_drive_change_list_loader_->AddObserver(
team_drive_change_list_loader_->AddChangeListLoaderObserver(
change_list_loader_observer_.get());
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment