| Index: chrome/browser/google_apis/drive_api_service.cc
|
| diff --git a/chrome/browser/google_apis/drive_api_service.cc b/chrome/browser/google_apis/drive_api_service.cc
|
| index f10c130afb75e7820aeaa998e85c7893de7928bd..547931580bd00f57d4660b088bd524b723fd2713 100644
|
| --- a/chrome/browser/google_apis/drive_api_service.cc
|
| +++ b/chrome/browser/google_apis/drive_api_service.cc
|
| @@ -349,25 +349,30 @@ void DriveAPIService::Search(const std::string& search_query,
|
| base::Bind(&ParseResourceListOnBlockingPoolAndRun, callback)));
|
| }
|
|
|
| -void DriveAPIService::SearchInDirectory(
|
| - const std::string& search_query,
|
| +void DriveAPIService::SearchByTitle(
|
| + const std::string& title,
|
| const std::string& directory_resource_id,
|
| const GetResourceListCallback& callback) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| - DCHECK(!search_query.empty());
|
| - DCHECK(!directory_resource_id.empty());
|
| + DCHECK(!title.empty());
|
| DCHECK(!callback.is_null());
|
|
|
| + std::string query;
|
| + base::StringAppendF(&query, "title contains '%s'",
|
| + drive::util::EscapeQueryStringValue(title).c_str());
|
| + if (!directory_resource_id.empty()) {
|
| + base::StringAppendF(
|
| + &query, " and '%s' in parents",
|
| + drive::util::EscapeQueryStringValue(directory_resource_id).c_str());
|
| + }
|
| + query += " and trashed = false";
|
| +
|
| runner_->StartOperationWithRetry(
|
| new GetFilelistOperation(
|
| operation_registry(),
|
| url_request_context_getter_,
|
| url_generator_,
|
| - base::StringPrintf(
|
| - "%s and '%s' in parents and trashed = false",
|
| - search_query.c_str(),
|
| - drive::util::EscapeQueryStringValue(
|
| - directory_resource_id).c_str()),
|
| + query,
|
| kMaxNumFilesResourcePerRequest,
|
| base::Bind(&ParseResourceListOnBlockingPoolAndRun, callback)));
|
| }
|
|
|