Index: chrome/browser/chromeos/gdata/drive_api_parser.cc |
diff --git a/chrome/browser/chromeos/gdata/drive_api_parser.cc b/chrome/browser/chromeos/gdata/drive_api_parser.cc |
index aef6deec20736986b4c37d04f8d83447655d5bc3..8e3d6830e954433398584bc820891c6c8ab28915 100644 |
--- a/chrome/browser/chromeos/gdata/drive_api_parser.cc |
+++ b/chrome/browser/chromeos/gdata/drive_api_parser.cc |
@@ -98,6 +98,13 @@ const char kEmbedLink[] = "embedLink"; |
const char kParents[] = "parents"; |
const char kThumbnailLink[] = "thumbnailLink"; |
const char kWebContentLink[] = "webContentLink"; |
+const char kLabels[] = "labels"; |
+// These 5 flags are defined under |labels|. |
+const char kLabelStarred[] = "starred"; |
+const char kLabelHidden[] = "hidden"; |
+const char kLabelTrashed[] = "trashed"; |
+const char kLabelRestricted[] = "restricted"; |
+const char kLabelViewed[] = "viewed"; |
const char kDriveFolderMimeType[] = "application/vnd.google-apps.folder"; |
@@ -383,6 +390,7 @@ void FileResource::RegisterJSONConverter( |
GetGURLFromString); |
converter->RegisterStringField(kTitle, &FileResource::title_); |
converter->RegisterStringField(kMimeType, &FileResource::mime_type_); |
+ converter->RegisterNestedField(kLabels, &FileResource::labels_); |
converter->RegisterCustomField<base::Time>( |
kCreatedDate, |
&FileResource::created_date_, |
@@ -558,4 +566,46 @@ bool ChangeList::Parse(const base::Value& value) { |
return true; |
} |
+ |
+//////////////////////////////////////////////////////////////////////////////// |
+// FileLabels implementation |
+ |
+FileLabels::FileLabels() |
+ : starred_(false), |
+ hidden_(false), |
+ trashed_(false), |
+ restricted_(false), |
+ viewed_(false) {} |
+ |
+FileLabels::~FileLabels() {} |
+ |
+// static |
+void FileLabels::RegisterJSONConverter( |
+ base::JSONValueConverter<FileLabels>* converter) { |
+ converter->RegisterBoolField(kLabelStarred, &FileLabels::starred_); |
+ converter->RegisterBoolField(kLabelHidden, &FileLabels::hidden_); |
+ converter->RegisterBoolField(kLabelTrashed, &FileLabels::trashed_); |
+ converter->RegisterBoolField(kLabelRestricted, &FileLabels::restricted_); |
+ converter->RegisterBoolField(kLabelViewed, &FileLabels::viewed_); |
+} |
+ |
+// static |
+scoped_ptr<FileLabels> FileLabels::CreateFrom(const base::Value& value) { |
+ scoped_ptr<FileLabels> resource(new FileLabels()); |
+ if (!resource->Parse(value)) { |
+ LOG(ERROR) << "Unable to create: Invalid FileLabels JSON!"; |
+ return scoped_ptr<FileLabels>(NULL); |
+ } |
+ return resource.Pass(); |
+} |
+ |
+bool FileLabels::Parse(const base::Value& value) { |
+ base::JSONValueConverter<FileLabels> converter; |
+ if (!converter.Convert(value, this)) { |
+ LOG(ERROR) << "Unable to parse: Invalid FileLabels"; |
+ return false; |
+ } |
+ return true; |
+} |
+ |
} // namespace gdata |