Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2642)

Unified Diff: chrome/browser/chromeos/drive/change_list_loader.cc

Issue 13913012: Get rid of GetResourceList for ChangeListLoader::SearchFromServer method. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/chromeos/drive/change_list_loader.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/drive/change_list_loader.cc
diff --git a/chrome/browser/chromeos/drive/change_list_loader.cc b/chrome/browser/chromeos/drive/change_list_loader.cc
index 4274d327a919e6234e3589031d1ac92907380241..a820dfeefbe15c3f43948f19630c4a88d10d999a 100644
--- a/chrome/browser/chromeos/drive/change_list_loader.cc
+++ b/chrome/browser/chromeos/drive/change_list_loader.cc
@@ -262,6 +262,26 @@ void ChangeListLoader::StartLoadChangeListFromServer(
}
}
+void ChangeListLoader::SearchFromServerAfterGetResourceList(
+ const LoadFeedListCallback& callback,
+ google_apis::GDataErrorCode status,
+ scoped_ptr<google_apis::ResourceList> resource_list) {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+ DCHECK(!callback.is_null());
+
+ DriveFileError error = util::GDataToDriveFileError(status);
+ if (error != DRIVE_FILE_OK) {
+ callback.Run(ScopedVector<ChangeList>(), error);
+ return;
+ }
+
+ DCHECK(resource_list);
+
+ ScopedVector<ChangeList> change_lists;
+ change_lists.push_back(new ChangeList(*resource_list));
+ callback.Run(change_lists.Pass(), DRIVE_FILE_OK);
+}
+
void ChangeListLoader::OnGetAppList(google_apis::GDataErrorCode status,
scoped_ptr<google_apis::AppList> app_list) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
@@ -486,14 +506,22 @@ void ChangeListLoader::DoLoadDirectoryFromServerAfterRefresh(
void ChangeListLoader::SearchFromServer(
const std::string& search_query,
const GURL& next_feed,
- const LoadFeedListCallback& feed_load_callback) {
- DCHECK(!feed_load_callback.is_null());
+ const LoadFeedListCallback& callback) {
+ DCHECK(!callback.is_null());
- scoped_ptr<LoadFeedParams> params(new LoadFeedParams);
- params->search_query = search_query;
- params->feed_to_load = next_feed;
- params->load_subsequent_feeds = false;
- LoadFromServer(params.Pass(), feed_load_callback);
+ if (next_feed.is_empty()) {
+ // This is first request for the |search_query|.
+ scheduler_->Search(
+ search_query,
+ base::Bind(&ChangeListLoader::SearchFromServerAfterGetResourceList,
+ weak_ptr_factory_.GetWeakPtr(), callback));
+ } else {
+ // There is the remaining result so fetch it.
+ scheduler_->ContinueGetResourceList(
+ next_feed,
+ base::Bind(&ChangeListLoader::SearchFromServerAfterGetResourceList,
+ weak_ptr_factory_.GetWeakPtr(), callback));
+ }
}
void ChangeListLoader::UpdateMetadataFromFeedAfterLoadFromServer(
« no previous file with comments | « chrome/browser/chromeos/drive/change_list_loader.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698