Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(653)

Side by Side Diff: chrome/browser/media_galleries/media_galleries_preferences.cc

Issue 120303003: [StorageMonitor] Move gallery name generation to StorageInfo. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix unittest build error on mac/linux/chromeos Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/media_galleries/media_galleries_preferences.h" 5 #include "chrome/browser/media_galleries/media_galleries_preferences.h"
6 6
7 #include "base/base_paths_posix.h" 7 #include "base/base_paths_posix.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/i18n/time_formatting.h" 9 #include "base/i18n/time_formatting.h"
10 #include "base/path_service.h" 10 #include "base/path_service.h"
(...skipping 20 matching lines...) Expand all
31 #include "components/user_prefs/pref_registry_syncable.h" 31 #include "components/user_prefs/pref_registry_syncable.h"
32 #include "content/public/browser/browser_thread.h" 32 #include "content/public/browser/browser_thread.h"
33 #include "extensions/browser/extension_system.h" 33 #include "extensions/browser/extension_system.h"
34 #include "extensions/browser/pref_names.h" 34 #include "extensions/browser/pref_names.h"
35 #include "extensions/common/extension.h" 35 #include "extensions/common/extension.h"
36 #include "extensions/common/extension_set.h" 36 #include "extensions/common/extension_set.h"
37 #include "extensions/common/permissions/api_permission.h" 37 #include "extensions/common/permissions/api_permission.h"
38 #include "extensions/common/permissions/permissions_data.h" 38 #include "extensions/common/permissions/permissions_data.h"
39 #include "grit/generated_resources.h" 39 #include "grit/generated_resources.h"
40 #include "ui/base/l10n/l10n_util.h" 40 #include "ui/base/l10n/l10n_util.h"
41 #include "ui/base/text/bytes_formatting.h"
42 41
43 using base::DictionaryValue; 42 using base::DictionaryValue;
44 using base::ListValue; 43 using base::ListValue;
45 using extensions::ExtensionPrefs; 44 using extensions::ExtensionPrefs;
46 using storage_monitor::MediaStorageUtil; 45 using storage_monitor::MediaStorageUtil;
47 using storage_monitor::StorageInfo; 46 using storage_monitor::StorageInfo;
48 using storage_monitor::StorageMonitor; 47 using storage_monitor::StorageMonitor;
49 48
50 namespace { 49 namespace {
51 50
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 if (dict->GetString(kMediaGalleryIdKey, &string_id) && 288 if (dict->GetString(kMediaGalleryIdKey, &string_id) &&
290 base::StringToUint64(string_id, &out_permission->pref_id) && 289 base::StringToUint64(string_id, &out_permission->pref_id) &&
291 dict->GetBoolean(kMediaGalleryHasPermissionKey, 290 dict->GetBoolean(kMediaGalleryHasPermissionKey,
292 &out_permission->has_permission)) { 291 &out_permission->has_permission)) {
293 return true; 292 return true;
294 } 293 }
295 NOTREACHED(); 294 NOTREACHED();
296 return false; 295 return false;
297 } 296 }
298 297
299 base::string16 GetDisplayNameForDevice(uint64 storage_size_in_bytes,
300 const base::string16& name) {
301 DCHECK(!name.empty());
302 return (storage_size_in_bytes == 0) ?
303 name :
304 ui::FormatBytes(storage_size_in_bytes) + base::ASCIIToUTF16(" ") + name;
305 }
306
307 // For a device with |device_name| and a relative path |sub_folder|, construct 298 // For a device with |device_name| and a relative path |sub_folder|, construct
308 // a display name. If |sub_folder| is empty, then just return |device_name|. 299 // a display name. If |sub_folder| is empty, then just return |device_name|.
309 base::string16 GetDisplayNameForSubFolder(const base::string16& device_name, 300 base::string16 GetDisplayNameForSubFolder(const base::string16& device_name,
310 const base::FilePath& sub_folder) { 301 const base::FilePath& sub_folder) {
311 if (sub_folder.empty()) 302 if (sub_folder.empty())
312 return device_name; 303 return device_name;
313 return (sub_folder.BaseName().LossyDisplayName() + 304 return (sub_folder.BaseName().LossyDisplayName() +
314 base::ASCIIToUTF16(" - ") + 305 base::ASCIIToUTF16(" - ") +
315 device_name); 306 device_name);
316 } 307 }
317 308
318 base::string16 GetFullProductName(const base::string16& vendor_name,
319 const base::string16& model_name) {
320 if (vendor_name.empty() && model_name.empty())
321 return base::string16();
322
323 base::string16 product_name;
324 if (vendor_name.empty())
325 product_name = model_name;
326 else if (model_name.empty())
327 product_name = vendor_name;
328 else if (!vendor_name.empty() && !model_name.empty())
329 product_name = vendor_name + base::UTF8ToUTF16(", ") + model_name;
330
331 return product_name;
332 }
333
334 } // namespace 309 } // namespace
335 310
336 MediaGalleryPrefInfo::MediaGalleryPrefInfo() 311 MediaGalleryPrefInfo::MediaGalleryPrefInfo()
337 : pref_id(kInvalidMediaGalleryPrefId), 312 : pref_id(kInvalidMediaGalleryPrefId),
338 type(kInvalidType), 313 type(kInvalidType),
339 total_size_in_bytes(0), 314 total_size_in_bytes(0),
340 volume_metadata_valid(false), 315 volume_metadata_valid(false),
341 audio_count(0), 316 audio_count(0),
342 image_count(0), 317 image_count(0),
343 video_count(0), 318 video_count(0),
(...skipping 29 matching lines...) Expand all
373 base::FilePath relative; 348 base::FilePath relative;
374 if (download_path.AppendRelativePath(path, &relative)) 349 if (download_path.AppendRelativePath(path, &relative))
375 return relative.LossyDisplayName(); 350 return relative.LossyDisplayName();
376 } 351 }
377 return path.BaseName().LossyDisplayName(); 352 return path.BaseName().LossyDisplayName();
378 #else 353 #else
379 return path.LossyDisplayName(); 354 return path.LossyDisplayName();
380 #endif 355 #endif
381 } 356 }
382 357
383 base::string16 name = display_name; 358 StorageInfo info(device_id,
384 if (name.empty()) 359 MediaStorageUtil::FindDevicePathById(device_id).value(),
385 name = volume_label; 360 volume_label, vendor_name, model_name, total_size_in_bytes);
386 if (name.empty()) 361 base::string16 name = info.GetDisplayNameWithOverride(display_name, true);
387 name = GetFullProductName(vendor_name, model_name);
388 if (name.empty())
389 name = l10n_util::GetStringUTF16(IDS_MEDIA_GALLERIES_UNLABELED_DEVICE);
390
391 name = GetDisplayNameForDevice(total_size_in_bytes, name);
392
393 if (!path.empty()) 362 if (!path.empty())
394 name = GetDisplayNameForSubFolder(name, path); 363 name = GetDisplayNameForSubFolder(name, path);
395
396 return name; 364 return name;
397 } 365 }
398 366
399 base::string16 MediaGalleryPrefInfo::GetGalleryTooltip() const { 367 base::string16 MediaGalleryPrefInfo::GetGalleryTooltip() const {
400 return AbsolutePath().LossyDisplayName(); 368 return AbsolutePath().LossyDisplayName();
401 } 369 }
402 370
403 base::string16 MediaGalleryPrefInfo::GetGalleryAdditionalDetails() const { 371 base::string16 MediaGalleryPrefInfo::GetGalleryAdditionalDetails() const {
404 base::string16 attached; 372 base::string16 attached;
405 if (StorageInfo::IsRemovableDevice(device_id)) { 373 if (StorageInfo::IsRemovableDevice(device_id)) {
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
542 }; 510 };
543 511
544 for (size_t i = 0; i < arraysize(kDirectoryKeys); ++i) { 512 for (size_t i = 0; i < arraysize(kDirectoryKeys); ++i) {
545 base::FilePath path; 513 base::FilePath path;
546 if (!PathService::Get(kDirectoryKeys[i], &path)) 514 if (!PathService::Get(kDirectoryKeys[i], &path))
547 continue; 515 continue;
548 516
549 base::FilePath relative_path; 517 base::FilePath relative_path;
550 StorageInfo info; 518 StorageInfo info;
551 if (MediaStorageUtil::GetDeviceInfoFromPath(path, &info, &relative_path)) { 519 if (MediaStorageUtil::GetDeviceInfoFromPath(path, &info, &relative_path)) {
552 AddGalleryInternal(info.device_id(), info.name(), relative_path, 520 AddGalleryInternal(info.device_id(), base::string16(), relative_path,
553 MediaGalleryPrefInfo::kAutoDetected, 521 MediaGalleryPrefInfo::kAutoDetected,
554 info.storage_label(), info.vendor_name(), 522 info.storage_label(), info.vendor_name(),
555 info.model_name(), info.total_size_in_bytes(), 523 info.model_name(), info.total_size_in_bytes(),
556 base::Time(), true, 0, 0, 0, kCurrentPrefsVersion); 524 base::Time(), true, 0, 0, 0, kCurrentPrefsVersion);
557 } 525 }
558 } 526 }
559 } 527 }
560 528
561 bool MediaGalleriesPreferences::UpdateDeviceIDForSingletonType( 529 bool MediaGalleriesPreferences::UpdateDeviceIDForSingletonType(
562 const std::string& device_id) { 530 const std::string& device_id) {
(...skipping 686 matching lines...) Expand 10 before | Expand all | Expand 10 after
1249 if (extension_prefs_for_testing_) 1217 if (extension_prefs_for_testing_)
1250 return extension_prefs_for_testing_; 1218 return extension_prefs_for_testing_;
1251 return extensions::ExtensionPrefs::Get(profile_); 1219 return extensions::ExtensionPrefs::Get(profile_);
1252 } 1220 }
1253 1221
1254 void MediaGalleriesPreferences::SetExtensionPrefsForTesting( 1222 void MediaGalleriesPreferences::SetExtensionPrefsForTesting(
1255 extensions::ExtensionPrefs* extension_prefs) { 1223 extensions::ExtensionPrefs* extension_prefs) {
1256 DCHECK(IsInitialized()); 1224 DCHECK(IsInitialized());
1257 extension_prefs_for_testing_ = extension_prefs; 1225 extension_prefs_for_testing_ = extension_prefs;
1258 } 1226 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698