Chromium Code Reviews| Index: chrome/browser/media_galleries/media_galleries_preferences.cc |
| diff --git a/chrome/browser/media_galleries/media_galleries_preferences.cc b/chrome/browser/media_galleries/media_galleries_preferences.cc |
| index 786fb552191c64b4705b0068ae3d6ef4a971d43f..6f76f23fcf30d190f992b890e93047f6acbccd30 100644 |
| --- a/chrome/browser/media_galleries/media_galleries_preferences.cc |
| +++ b/chrome/browser/media_galleries/media_galleries_preferences.cc |
| @@ -62,6 +62,9 @@ const char kMediaGalleriesVendorNameKey[] = "vendorName"; |
| const char kMediaGalleriesModelNameKey[] = "modelName"; |
| const char kMediaGalleriesSizeKey[] = "totalSize"; |
| const char kMediaGalleriesLastAttachTimeKey[] = "lastAttachTime"; |
| +const char kMediaGalleriesScanImageCountKey[] = "imageCount"; |
| +const char kMediaGalleriesScanMusicCountKey[] = "musicCount"; |
| +const char kMediaGalleriesScanVideoCountKey[] = "videoCount"; |
| const char kMediaGalleriesPrefsVersionKey[] = "preferencesVersion"; |
| const char kMediaGalleriesTypeAutoDetectedValue[] = "autoDetected"; |
| @@ -74,6 +77,8 @@ const char kIPhotoGalleryName[] = "iPhoto"; |
| const char kITunesGalleryName[] = "iTunes"; |
| const char kPicasaGalleryName[] = "Picasa"; |
| +const int kCurrentPrefsVersion = 2; |
| + |
| int NumberExtensionsUsingMediaGalleries(Profile* profile) { |
| int count = 0; |
| if (!profile) |
| @@ -174,6 +179,9 @@ bool PopulateGalleryPrefInfoFromDictionary( |
| double total_size_in_bytes = 0.0; |
| double last_attach_time = 0.0; |
| bool volume_metadata_valid = false; |
| + int image_count = 0; |
| + int music_count = 0; |
| + int video_count = 0; |
| int prefs_version = 0; |
| if (!GetPrefId(dict, &pref_id) || |
| @@ -194,6 +202,15 @@ bool PopulateGalleryPrefInfoFromDictionary( |
| volume_metadata_valid = true; |
| } |
| + if (type == MediaGalleryPrefInfo::kScanResult && |
| + dict.GetInteger(kMediaGalleriesScanImageCountKey, &image_count) && |
| + dict.GetInteger(kMediaGalleriesScanMusicCountKey, &music_count) && |
| + dict.GetInteger(kMediaGalleriesScanVideoCountKey, &video_count)) { |
| + out_gallery_info->image_count = image_count; |
| + out_gallery_info->music_count = music_count; |
| + out_gallery_info->video_count = video_count; |
| + } |
| + |
| out_gallery_info->pref_id = pref_id; |
| out_gallery_info->display_name = display_name; |
| out_gallery_info->device_id = device_id; |
| @@ -216,8 +233,6 @@ base::DictionaryValue* CreateGalleryPrefInfoDictionary( |
| base::DictionaryValue* dict = new base::DictionaryValue(); |
| dict->SetString(kMediaGalleriesPrefIdKey, |
| base::Uint64ToString(gallery.pref_id)); |
| - if (!gallery.volume_metadata_valid) |
| - dict->SetString(kMediaGalleriesDisplayNameKey, gallery.display_name); |
| dict->SetString(kMediaGalleriesDeviceIdKey, gallery.device_id); |
| dict->SetString(kMediaGalleriesPathKey, gallery.path.value()); |
| dict->SetString(kMediaGalleriesTypeKey, TypeToStringValue(gallery.type)); |
| @@ -229,6 +244,14 @@ base::DictionaryValue* CreateGalleryPrefInfoDictionary( |
| dict->SetDouble(kMediaGalleriesSizeKey, gallery.total_size_in_bytes); |
| dict->SetDouble(kMediaGalleriesLastAttachTimeKey, |
| gallery.last_attach_time.ToInternalValue()); |
| + } else { |
| + dict->SetString(kMediaGalleriesDisplayNameKey, gallery.display_name); |
| + } |
| + |
| + if (gallery.type == MediaGalleryPrefInfo::kScanResult) { |
| + dict->SetInteger(kMediaGalleriesScanImageCountKey, gallery.image_count); |
| + dict->SetInteger(kMediaGalleriesScanMusicCountKey, gallery.music_count); |
| + dict->SetInteger(kMediaGalleriesScanVideoCountKey, gallery.video_count); |
| } |
| // Version 0 of the prefs format was that the display_name was always |
| @@ -308,6 +331,9 @@ MediaGalleryPrefInfo::MediaGalleryPrefInfo() |
| type(kInvalidType), |
| total_size_in_bytes(0), |
| volume_metadata_valid(false), |
| + image_count(0), |
| + music_count(0), |
| + video_count(0), |
| prefs_version(0) { |
| } |
| @@ -490,7 +516,7 @@ void MediaGalleriesPreferences::FinishInitialization() { |
| existing_devices[i].vendor_name(), |
| existing_devices[i].model_name(), |
| existing_devices[i].total_size_in_bytes(), |
| - base::Time::Now()); |
| + base::Time::Now(), 0, 0, 0); |
| } |
| for (std::vector<base::Closure>::iterator iter = |
| @@ -521,7 +547,7 @@ void MediaGalleriesPreferences::AddDefaultGalleries() { |
| MediaGalleryPrefInfo::kAutoDetected, |
| info.storage_label(), info.vendor_name(), |
| info.model_name(), info.total_size_in_bytes(), |
| - base::Time(), true, 2); |
| + base::Time(), true, 0, 0, 0, kCurrentPrefsVersion); |
| } |
| } |
| } |
| @@ -589,7 +615,7 @@ void MediaGalleriesPreferences::OnFinderDeviceID(const std::string& device_id) { |
| AddGalleryInternal(device_id, base::ASCIIToUTF16(gallery_name), |
| base::FilePath(), MediaGalleryPrefInfo::kAutoDetected, |
| base::string16(), base::string16(), base::string16(), 0, |
| - base::Time(), false, 2); |
| + base::Time(), false, 0, 0, 0, kCurrentPrefsVersion); |
| } |
| OnInitializationCallbackReturned(); |
| @@ -640,7 +666,7 @@ void MediaGalleriesPreferences::OnRemovableStorageAttached( |
| AddGallery(info.device_id(), base::FilePath(), |
| MediaGalleryPrefInfo::kAutoDetected, info.storage_label(), |
| info.vendor_name(), info.model_name(), info.total_size_in_bytes(), |
| - base::Time::Now()); |
| + base::Time::Now(), 0, 0, 0); |
| } |
| bool MediaGalleriesPreferences::LookUpGalleryByPath( |
| @@ -688,7 +714,7 @@ bool MediaGalleriesPreferences::LookUpGalleryByPath( |
| gallery_info->total_size_in_bytes = info.total_size_in_bytes(); |
| gallery_info->last_attach_time = base::Time::Now(); |
| gallery_info->volume_metadata_valid = true; |
| - gallery_info->prefs_version = 2; |
| + gallery_info->prefs_version = kCurrentPrefsVersion; |
| } |
| return false; |
| } |
| @@ -726,11 +752,16 @@ MediaGalleryPrefId MediaGalleriesPreferences::AddGallery( |
| const base::string16& vendor_name, |
| const base::string16& model_name, |
| uint64 total_size_in_bytes, |
| - base::Time last_attach_time) { |
| + base::Time last_attach_time, |
| + int image_count, |
| + int music_count, |
| + int video_count) { |
| DCHECK(IsInitialized()); |
| return AddGalleryInternal(device_id, base::string16(), relative_path, |
| type, volume_label, vendor_name, model_name, |
| - total_size_in_bytes, last_attach_time, true, 2); |
| + total_size_in_bytes, last_attach_time, true, |
| + image_count, music_count, video_count, |
| + kCurrentPrefsVersion); |
| } |
| MediaGalleryPrefId MediaGalleriesPreferences::AddGalleryInternal( |
| @@ -738,9 +769,8 @@ MediaGalleryPrefId MediaGalleriesPreferences::AddGalleryInternal( |
| const base::FilePath& relative_path, MediaGalleryPrefInfo::Type type, |
| const base::string16& volume_label, const base::string16& vendor_name, |
| const base::string16& model_name, uint64 total_size_in_bytes, |
| - base::Time last_attach_time, |
| - bool volume_metadata_valid, |
| - int prefs_version) { |
| + base::Time last_attach_time, bool volume_metadata_valid, |
| + int image_count, int music_count, int video_count, int prefs_version) { |
| DCHECK(type == MediaGalleryPrefInfo::kUserAdded || |
| type == MediaGalleryPrefInfo::kAutoDetected || |
| type == MediaGalleryPrefInfo::kScanResult); |
| @@ -765,7 +795,7 @@ MediaGalleryPrefId MediaGalleriesPreferences::AddGalleryInternal( |
| update_gallery_type = true; |
| } |
| if (existing.type == MediaGalleryPrefInfo::kRemovedScan) { |
| - new_type = type; |
| + new_type = MediaGalleryPrefInfo::kUserAdded; |
| update_gallery_type = true; |
| } |
| } |
| @@ -789,8 +819,12 @@ MediaGalleryPrefId MediaGalleriesPreferences::AddGalleryInternal( |
| (existing.total_size_in_bytes != total_size_in_bytes) || |
| (existing.last_attach_time != last_attach_time)); |
| + bool update_scan_counts = |
| + (new_type == MediaGalleryPrefInfo::kScanResult) && |
| + (image_count > 0 || music_count > 0 || video_count > 0); |
| + |
| if (!update_gallery_name && !update_gallery_type && |
| - !update_gallery_metadata) |
| + !update_gallery_metadata && !update_scan_counts) |
| return *pref_id_it; |
| PrefService* prefs = profile_->GetPrefs(); |
| @@ -818,6 +852,11 @@ MediaGalleryPrefId MediaGalleriesPreferences::AddGalleryInternal( |
| dict->SetDouble(kMediaGalleriesLastAttachTimeKey, |
| last_attach_time.ToInternalValue()); |
| } |
| + if (update_scan_counts) { |
| + dict->SetInteger(kMediaGalleriesScanImageCountKey, image_count); |
| + dict->SetInteger(kMediaGalleriesScanMusicCountKey, music_count); |
| + dict->SetInteger(kMediaGalleriesScanVideoCountKey, video_count); |
| + } |
| dict->SetInteger(kMediaGalleriesPrefsVersionKey, prefs_version); |
| break; |
| } |
| @@ -826,12 +865,9 @@ MediaGalleryPrefId MediaGalleriesPreferences::AddGalleryInternal( |
| // Commits the prefs update. |
| update.reset(); |
| - if (update_gallery_name || update_gallery_metadata || update_gallery_type) { |
| - InitFromPrefs(); |
| - FOR_EACH_OBSERVER(GalleryChangeObserver, |
| - gallery_change_observers_, |
| - OnGalleryInfoUpdated(this, *pref_id_it)); |
| - } |
| + InitFromPrefs(); |
| + FOR_EACH_OBSERVER(GalleryChangeObserver, gallery_change_observers_, |
| + OnGalleryInfoUpdated(this, *pref_id_it)); |
| return *pref_id_it; |
| } |
| @@ -844,14 +880,15 @@ MediaGalleryPrefId MediaGalleriesPreferences::AddGalleryInternal( |
| gallery_info.device_id = device_id; |
| gallery_info.path = normalized_relative_path; |
| gallery_info.type = type; |
| - if (volume_metadata_valid) { |
|
Lei Zhang
2014/01/15 22:13:43
Why is this changing?
vandebo (ex-Chrome)
2014/01/15 22:19:44
The thing below this conditionally sets the fields
Lei Zhang
2014/01/15 22:38:23
Right now this change is a no-op because every pla
vandebo (ex-Chrome)
2014/01/15 22:43:05
I don't see that: in CreateGalleryPrefInfoDictiona
|
| - gallery_info.volume_label = volume_label; |
| - gallery_info.vendor_name = vendor_name; |
| - gallery_info.model_name = model_name; |
| - gallery_info.total_size_in_bytes = total_size_in_bytes; |
| - gallery_info.last_attach_time = last_attach_time; |
| - } |
| + gallery_info.volume_label = volume_label; |
| + gallery_info.vendor_name = vendor_name; |
| + gallery_info.model_name = model_name; |
| + gallery_info.total_size_in_bytes = total_size_in_bytes; |
| + gallery_info.last_attach_time = last_attach_time; |
| gallery_info.volume_metadata_valid = volume_metadata_valid; |
| + gallery_info.image_count = image_count; |
| + gallery_info.music_count = music_count; |
| + gallery_info.video_count = video_count; |
| gallery_info.prefs_version = prefs_version; |
| { |
| @@ -885,7 +922,8 @@ MediaGalleryPrefId MediaGalleriesPreferences::AddGalleryByPath( |
| gallery_info.total_size_in_bytes, |
| gallery_info.last_attach_time, |
| gallery_info.volume_metadata_valid, |
| - gallery_info.prefs_version); |
| + 0, 0, 0, |
| + kCurrentPrefsVersion); |
| } |
| void MediaGalleriesPreferences::ForgetGalleryById(MediaGalleryPrefId pref_id) { |
| @@ -915,6 +953,9 @@ void MediaGalleriesPreferences::ForgetGalleryById(MediaGalleryPrefId pref_id) { |
| } else { |
| dict->SetString(kMediaGalleriesTypeKey, |
| kMediaGalleriesTypeRemovedScanValue); |
| + dict->SetInteger(kMediaGalleriesScanImageCountKey, 0); |
| + dict->SetInteger(kMediaGalleriesScanMusicCountKey, 0); |
| + dict->SetInteger(kMediaGalleriesScanVideoCountKey, 0); |
| } |
| } else { |
| list->Erase(iter, NULL); |