#include "google_apis/drive/drive_api_parser.h"
-#include <algorithm>
-
#include "base/basictypes.h"
-#include "base/files/file_path.h"
#include "base/json/json_value_converter.h"
#include "base/memory/scoped_ptr.h"
#include "base/strings/string_number_conversions.h"
#include "base/values.h"
#include "google_apis/drive/time_util.h"
-using base::Value;
-using base::DictionaryValue;
-using base::ListValue;
-
namespace google_apis {
namespace {
+const int64 kUnsetFileSize = -1;
+
bool CreateFileResourceFromValue(const base::Value* value,
scoped_ptr<FileResource>* file) {
*file = FileResource::CreateFrom(*value);
return false;
result->reserve(dictionary_value->size());
- for (DictionaryValue::Iterator iter(*dictionary_value);
+ for (base::DictionaryValue::Iterator iter(*dictionary_value);
!iter.IsAtEnd(); iter.Advance()) {
std::string string_value;
if (!iter.value().GetAsString(&string_value))
////////////////////////////////////////////////////////////////////////////////
// FileResource implementation
-FileResource::FileResource() : shared_(false), file_size_(0) {}
+FileResource::FileResource() : shared_(false), file_size_(kUnsetFileSize) {}
FileResource::~FileResource() {}
return mime_type_ == kDriveFolderMimeType;
}
+bool FileResource::IsHostedDocument() const {
+ // Hosted documents don't have fileSize field set:
+ // https://developers.google.com/drive/v2/reference/files
+ return !IsDirectory() && file_size_ == kUnsetFileSize;
+}
+
bool FileResource::Parse(const base::Value& value) {
base::JSONValueConverter<FileResource> converter;
if (!converter.Convert(value, this)) {