| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/notifications/message_center_settings_controller.h" | 5 #include "chrome/browser/notifications/message_center_settings_controller.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 22 matching lines...) Expand all Loading... |
| 33 #include "chrome/browser/notifications/system_component_notifier_source_chromeos
.h" | 33 #include "chrome/browser/notifications/system_component_notifier_source_chromeos
.h" |
| 34 #endif | 34 #endif |
| 35 | 35 |
| 36 using message_center::Notifier; | 36 using message_center::Notifier; |
| 37 using message_center::NotifierId; | 37 using message_center::NotifierId; |
| 38 | 38 |
| 39 namespace message_center { | 39 namespace message_center { |
| 40 | 40 |
| 41 class ProfileNotifierGroup : public message_center::NotifierGroup { | 41 class ProfileNotifierGroup : public message_center::NotifierGroup { |
| 42 public: | 42 public: |
| 43 ProfileNotifierGroup(const gfx::Image& icon, | 43 ProfileNotifierGroup(const base::string16& display_name, |
| 44 const base::string16& display_name, | |
| 45 const base::string16& login_info, | 44 const base::string16& login_info, |
| 46 const base::FilePath& profile_path); | 45 const base::FilePath& profile_path); |
| 47 ProfileNotifierGroup(const gfx::Image& icon, | 46 ProfileNotifierGroup(const base::string16& display_name, |
| 48 const base::string16& display_name, | |
| 49 const base::string16& login_info, | 47 const base::string16& login_info, |
| 50 Profile* profile); | 48 Profile* profile); |
| 51 virtual ~ProfileNotifierGroup() {} | 49 virtual ~ProfileNotifierGroup() {} |
| 52 | 50 |
| 53 Profile* profile() const { return profile_; } | 51 Profile* profile() const { return profile_; } |
| 54 | 52 |
| 55 private: | 53 private: |
| 56 Profile* profile_; | 54 Profile* profile_; |
| 57 }; | 55 }; |
| 58 | 56 |
| 59 ProfileNotifierGroup::ProfileNotifierGroup(const gfx::Image& icon, | 57 ProfileNotifierGroup::ProfileNotifierGroup(const base::string16& display_name, |
| 60 const base::string16& display_name, | |
| 61 const base::string16& login_info, | 58 const base::string16& login_info, |
| 62 const base::FilePath& profile_path) | 59 const base::FilePath& profile_path) |
| 63 : message_center::NotifierGroup(icon, display_name, login_info), | 60 : message_center::NotifierGroup(display_name, login_info), profile_(NULL) { |
| 64 profile_(NULL) { | |
| 65 // Try to get the profile | 61 // Try to get the profile |
| 66 profile_ = | 62 profile_ = |
| 67 g_browser_process->profile_manager()->GetProfileByPath(profile_path); | 63 g_browser_process->profile_manager()->GetProfileByPath(profile_path); |
| 68 } | 64 } |
| 69 | 65 |
| 70 ProfileNotifierGroup::ProfileNotifierGroup(const gfx::Image& icon, | 66 ProfileNotifierGroup::ProfileNotifierGroup(const base::string16& display_name, |
| 71 const base::string16& display_name, | |
| 72 const base::string16& login_info, | 67 const base::string16& login_info, |
| 73 Profile* profile) | 68 Profile* profile) |
| 74 : message_center::NotifierGroup(icon, display_name, login_info), | 69 : message_center::NotifierGroup(display_name, login_info), |
| 75 profile_(profile) { | 70 profile_(profile) {} |
| 76 } | |
| 77 | 71 |
| 78 } // namespace message_center | 72 } // namespace message_center |
| 79 | 73 |
| 80 namespace { | 74 namespace { |
| 81 | 75 |
| 82 class NotifierComparator { | 76 class NotifierComparator { |
| 83 public: | 77 public: |
| 84 explicit NotifierComparator(icu::Collator* collator) : collator_(collator) {} | 78 explicit NotifierComparator(icu::Collator* collator) : collator_(collator) {} |
| 85 | 79 |
| 86 bool operator() (Notifier* n1, Notifier* n2) { | 80 bool operator() (Notifier* n1, Notifier* n2) { |
| (...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 350 if (!user_manager->IsLoggedInAsGuest()) | 344 if (!user_manager->IsLoggedInAsGuest()) |
| 351 return; | 345 return; |
| 352 | 346 |
| 353 user_manager::User* user = user_manager->GetActiveUser(); | 347 user_manager::User* user = user_manager->GetActiveUser(); |
| 354 Profile* profile = | 348 Profile* profile = |
| 355 chromeos::ProfileHelper::Get()->GetProfileByUserUnsafe(user); | 349 chromeos::ProfileHelper::Get()->GetProfileByUserUnsafe(user); |
| 356 DCHECK(profile); | 350 DCHECK(profile); |
| 357 | 351 |
| 358 std::unique_ptr<message_center::ProfileNotifierGroup> group( | 352 std::unique_ptr<message_center::ProfileNotifierGroup> group( |
| 359 new message_center::ProfileNotifierGroup( | 353 new message_center::ProfileNotifierGroup( |
| 360 gfx::Image(user->GetImage()), user->GetDisplayName(), | 354 user->GetDisplayName(), user->GetDisplayName(), profile)); |
| 361 user->GetDisplayName(), profile)); | |
| 362 | 355 |
| 363 notifier_groups_.push_back(std::move(group)); | 356 notifier_groups_.push_back(std::move(group)); |
| 364 DispatchNotifierGroupChanged(); | 357 DispatchNotifierGroupChanged(); |
| 365 } | 358 } |
| 366 #endif | 359 #endif |
| 367 | 360 |
| 368 void MessageCenterSettingsController::RebuildNotifierGroups(bool notify) { | 361 void MessageCenterSettingsController::RebuildNotifierGroups(bool notify) { |
| 369 notifier_groups_.clear(); | 362 notifier_groups_.clear(); |
| 370 current_notifier_group_ = 0; | 363 current_notifier_group_ = 0; |
| 371 | 364 |
| 372 std::vector<ProfileAttributesEntry*> entries = | 365 std::vector<ProfileAttributesEntry*> entries = |
| 373 profile_attributes_storage_.GetAllProfilesAttributes(); | 366 profile_attributes_storage_.GetAllProfilesAttributes(); |
| 374 for (auto* entry : entries) { | 367 for (auto* entry : entries) { |
| 375 std::unique_ptr<message_center::ProfileNotifierGroup> group( | 368 std::unique_ptr<message_center::ProfileNotifierGroup> group( |
| 376 new message_center::ProfileNotifierGroup( | 369 new message_center::ProfileNotifierGroup( |
| 377 entry->GetAvatarIcon(), entry->GetName(), entry->GetUserName(), | 370 entry->GetName(), entry->GetUserName(), entry->GetPath())); |
| 378 entry->GetPath())); | |
| 379 if (group->profile() == NULL) | 371 if (group->profile() == NULL) |
| 380 continue; | 372 continue; |
| 381 | 373 |
| 382 #if defined(OS_CHROMEOS) | 374 #if defined(OS_CHROMEOS) |
| 383 // Allows the active user only. | 375 // Allows the active user only. |
| 384 // UserManager may not exist in some tests. | 376 // UserManager may not exist in some tests. |
| 385 if (user_manager::UserManager::IsInitialized()) { | 377 if (user_manager::UserManager::IsInitialized()) { |
| 386 user_manager::UserManager* user_manager = | 378 user_manager::UserManager* user_manager = |
| 387 user_manager::UserManager::Get(); | 379 user_manager::UserManager::Get(); |
| 388 if (chromeos::ProfileHelper::Get()->GetUserByProfile(group->profile()) != | 380 if (chromeos::ProfileHelper::Get()->GetUserByProfile(group->profile()) != |
| (...skipping 28 matching lines...) Expand all Loading... |
| 417 FROM_HERE, | 409 FROM_HERE, |
| 418 base::Bind( | 410 base::Bind( |
| 419 &MessageCenterSettingsController::CreateNotifierGroupForGuestLogin, | 411 &MessageCenterSettingsController::CreateNotifierGroupForGuestLogin, |
| 420 weak_factory_.GetWeakPtr())); | 412 weak_factory_.GetWeakPtr())); |
| 421 } | 413 } |
| 422 #endif | 414 #endif |
| 423 | 415 |
| 424 if (notify) | 416 if (notify) |
| 425 DispatchNotifierGroupChanged(); | 417 DispatchNotifierGroupChanged(); |
| 426 } | 418 } |
| OLD | NEW |