Index: chrome/browser/sync_file_system/drive_backend/folder_creator.cc |
diff --git a/chrome/browser/sync_file_system/drive_backend/folder_creator.cc b/chrome/browser/sync_file_system/drive_backend/folder_creator.cc |
index acad956e67d727df4e74a9d209507b82ac784cb7..670c4c7e42d07c85fe1e8d312fc5e57ef2893ae3 100644 |
--- a/chrome/browser/sync_file_system/drive_backend/folder_creator.cc |
+++ b/chrome/browser/sync_file_system/drive_backend/folder_creator.cc |
@@ -61,63 +61,62 @@ void FolderCreator::DidCreateFolder( |
title_, parent_folder_id_, |
base::Bind(&FolderCreator::DidListFolders, |
weak_ptr_factory_.GetWeakPtr(), callback, |
- base::Passed(ScopedVector<google_apis::ResourceEntry>()))); |
+ base::Passed(ScopedVector<google_apis::FileResource>()))); |
} |
void FolderCreator::DidListFolders( |
const FileIDCallback& callback, |
- ScopedVector<google_apis::ResourceEntry> candidates, |
+ ScopedVector<google_apis::FileResource> candidates, |
google_apis::GDataErrorCode error, |
- scoped_ptr<google_apis::ResourceList> resource_list) { |
+ scoped_ptr<google_apis::FileList> file_list) { |
SyncStatusCode status = GDataErrorCodeToSyncStatusCode(error); |
if (status != SYNC_STATUS_OK) { |
callback.Run(std::string(), status); |
return; |
} |
- if (!resource_list) { |
+ if (!file_list) { |
NOTREACHED(); |
callback.Run(std::string(), SYNC_STATUS_FAILED); |
return; |
} |
- candidates.reserve(candidates.size() + resource_list->entries().size()); |
+ candidates.reserve(candidates.size() + file_list->items().size()); |
candidates.insert(candidates.end(), |
- resource_list->entries().begin(), |
- resource_list->entries().end()); |
- resource_list->mutable_entries()->weak_clear(); |
+ file_list->items().begin(), |
+ file_list->items().end()); |
+ file_list->mutable_items()->weak_clear(); |
- GURL next_feed; |
- if (resource_list->GetNextFeedURL(&next_feed)) { |
+ if (!file_list->next_link().is_empty()) { |
drive_service_->GetRemainingFileList( |
- next_feed, |
+ file_list->next_link(), |
base::Bind(&FolderCreator::DidListFolders, |
weak_ptr_factory_.GetWeakPtr(), callback, |
base::Passed(&candidates))); |
return; |
} |
- ScopedVector<google_apis::FileResource> files; |
- files.reserve(candidates.size()); |
+ const google_apis::FileResource* oldest = NULL; |
for (size_t i = 0; i < candidates.size(); ++i) { |
- files.push_back(drive::util::ConvertResourceEntryToFileResource( |
- *candidates[i]).release()); |
- } |
+ const google_apis::FileResource& entry = *candidates[i]; |
+ if (!entry.IsDirectory() || entry.labels().is_trashed()) |
+ continue; |
- scoped_ptr<google_apis::ResourceEntry> oldest = |
- GetOldestCreatedFolderResource(candidates.Pass()); |
+ if (!oldest || oldest->created_date() > entry.created_date()) |
+ oldest = &entry; |
+ } |
if (!oldest) { |
callback.Run(std::string(), SYNC_FILE_ERROR_NOT_FOUND); |
return; |
} |
- std::string file_id = oldest->resource_id(); |
+ std::string file_id = oldest->file_id(); |
metadata_database_->UpdateByFileResourceList( |
- files.Pass(), base::Bind(&FolderCreator::DidUpdateDatabase, |
- weak_ptr_factory_.GetWeakPtr(), |
- file_id, callback)); |
+ candidates.Pass(), base::Bind(&FolderCreator::DidUpdateDatabase, |
+ weak_ptr_factory_.GetWeakPtr(), |
+ file_id, callback)); |
} |
void FolderCreator::DidUpdateDatabase(const std::string& file_id, |