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

Side by Side Diff: ui/message_center/message_center_impl.cc

Issue 2018063002: Revert of Show message center on lock screen (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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
« no previous file with comments | « ui/message_center/message_center_impl.h ('k') | ui/message_center/message_center_observer.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "ui/message_center/message_center_impl.h" 5 #include "ui/message_center/message_center_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <deque> 8 #include <deque>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after
349 } 349 }
350 } 350 }
351 351
352 //////////////////////////////////////////////////////////////////////////////// 352 ////////////////////////////////////////////////////////////////////////////////
353 // MessageCenterImpl 353 // MessageCenterImpl
354 354
355 MessageCenterImpl::MessageCenterImpl() 355 MessageCenterImpl::MessageCenterImpl()
356 : MessageCenter(), 356 : MessageCenter(),
357 popup_timers_controller_(new PopupTimersController(this)), 357 popup_timers_controller_(new PopupTimersController(this)),
358 settings_provider_(NULL) { 358 settings_provider_(NULL) {
359 notification_list_.reset(new NotificationList(this)); 359 notification_list_.reset(new NotificationList());
360 360
361 bool enable_message_center_changes_while_open = true; // enable by default 361 bool enable_message_center_changes_while_open = true; // enable by default
362 std::string arg = base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( 362 std::string arg = base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
363 switches::kMessageCenterChangesWhileOpen); 363 switches::kMessageCenterChangesWhileOpen);
364 if (!arg.empty()) { 364 if (!arg.empty()) {
365 if (arg == "enabled") 365 if (arg == "enabled")
366 enable_message_center_changes_while_open = true; 366 enable_message_center_changes_while_open = true;
367 else if (arg == "disabled") 367 else if (arg == "disabled")
368 enable_message_center_changes_while_open = false; 368 enable_message_center_changes_while_open = false;
369 } 369 }
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 void MessageCenterImpl::NotifierGroupChanged() {} 433 void MessageCenterImpl::NotifierGroupChanged() {}
434 434
435 void MessageCenterImpl::NotifierEnabledChanged( 435 void MessageCenterImpl::NotifierEnabledChanged(
436 const NotifierId& notifier_id, bool enabled) { 436 const NotifierId& notifier_id, bool enabled) {
437 if (!enabled) { 437 if (!enabled) {
438 RemoveNotificationsForNotifierId(notifier_id); 438 RemoveNotificationsForNotifierId(notifier_id);
439 } 439 }
440 } 440 }
441 441
442 void MessageCenterImpl::SetVisibility(Visibility visibility) { 442 void MessageCenterImpl::SetVisibility(Visibility visibility) {
443 visible_ = (visibility == VISIBILITY_MESSAGE_CENTER); 443 std::set<std::string> updated_ids;
444 notification_list_->SetMessageCenterVisible(
445 (visibility == VISIBILITY_MESSAGE_CENTER), &updated_ids);
446 notification_cache_.RecountUnread();
444 447
445 if (visible_ && !locked_) { 448 for (const auto& id : updated_ids) {
446 std::set<std::string> updated_ids; 449 FOR_EACH_OBSERVER(
447 notification_list_->SetNotificationsShown(blockers_, &updated_ids); 450 MessageCenterObserver, observer_list_, OnNotificationUpdated(id));
448 notification_cache_.RecountUnread();
449
450 for (const auto& id : updated_ids) {
451 FOR_EACH_OBSERVER(
452 MessageCenterObserver, observer_list_, OnNotificationUpdated(id));
453 }
454 } 451 }
455 452
456 if (notification_queue_ && 453 if (notification_queue_ &&
457 visibility == VISIBILITY_TRANSIENT) { 454 visibility == VISIBILITY_TRANSIENT) {
458 notification_queue_->ApplyChanges(this); 455 notification_queue_->ApplyChanges(this);
459 } 456 }
460 457
461 FOR_EACH_OBSERVER(MessageCenterObserver, 458 FOR_EACH_OBSERVER(MessageCenterObserver,
462 observer_list_, 459 observer_list_,
463 OnCenterVisibilityChanged(visibility)); 460 OnCenterVisibilityChanged(visibility));
464 } 461 }
465 462
466 bool MessageCenterImpl::IsMessageCenterVisible() const { 463 bool MessageCenterImpl::IsMessageCenterVisible() const {
467 return visible_; 464 return notification_list_->is_message_center_visible();
468 } 465 }
469 466
470 size_t MessageCenterImpl::NotificationCount() const { 467 size_t MessageCenterImpl::NotificationCount() const {
471 return notification_cache_.visible_notifications.size(); 468 return notification_cache_.visible_notifications.size();
472 } 469 }
473 470
474 size_t MessageCenterImpl::UnreadNotificationCount() const { 471 size_t MessageCenterImpl::UnreadNotificationCount() const {
475 return notification_cache_.unread_count; 472 return notification_cache_.unread_count;
476 } 473 }
477 474
478 bool MessageCenterImpl::HasPopupNotifications() const { 475 bool MessageCenterImpl::HasPopupNotifications() const {
479 return !IsMessageCenterVisible() && 476 return !IsMessageCenterVisible() &&
480 notification_list_->HasPopupNotifications(blockers_); 477 notification_list_->HasPopupNotifications(blockers_);
481 } 478 }
482 479
483 bool MessageCenterImpl::IsQuietMode() const { 480 bool MessageCenterImpl::IsQuietMode() const {
484 return notification_list_->quiet_mode(); 481 return notification_list_->quiet_mode();
485 } 482 }
486 483
487 bool MessageCenterImpl::IsLockedState() const {
488 return locked_;
489 }
490
491 bool MessageCenterImpl::HasClickedListener(const std::string& id) { 484 bool MessageCenterImpl::HasClickedListener(const std::string& id) {
492 scoped_refptr<NotificationDelegate> delegate = 485 scoped_refptr<NotificationDelegate> delegate =
493 notification_list_->GetNotificationDelegate(id); 486 notification_list_->GetNotificationDelegate(id);
494 return delegate.get() && delegate->HasClickedListener(); 487 return delegate.get() && delegate->HasClickedListener();
495 } 488 }
496 489
497 message_center::Notification* MessageCenterImpl::FindVisibleNotificationById( 490 message_center::Notification* MessageCenterImpl::FindVisibleNotificationById(
498 const std::string& id) { 491 const std::string& id) {
499 return notification_list_->GetNotificationById(id); 492 return notification_list_->GetNotificationById(id);
500 } 493 }
(...skipping 15 matching lines...) Expand all
516 509
517 //------------------------------------------------------------------------------ 510 //------------------------------------------------------------------------------
518 // Client code interface. 511 // Client code interface.
519 void MessageCenterImpl::AddNotification( 512 void MessageCenterImpl::AddNotification(
520 std::unique_ptr<Notification> notification) { 513 std::unique_ptr<Notification> notification) {
521 DCHECK(notification); 514 DCHECK(notification);
522 const std::string id = notification->id(); 515 const std::string id = notification->id();
523 for (size_t i = 0; i < blockers_.size(); ++i) 516 for (size_t i = 0; i < blockers_.size(); ++i)
524 blockers_[i]->CheckState(); 517 blockers_[i]->CheckState();
525 518
526 if (notification_queue_ && visible_) { 519 if (notification_queue_ &&
520 notification_list_->is_message_center_visible()) {
527 notification_queue_->AddNotification(std::move(notification)); 521 notification_queue_->AddNotification(std::move(notification));
528 return; 522 return;
529 } 523 }
530 524
531 AddNotificationImmediately(std::move(notification)); 525 AddNotificationImmediately(std::move(notification));
532 } 526 }
533 527
534 void MessageCenterImpl::AddNotificationImmediately( 528 void MessageCenterImpl::AddNotificationImmediately(
535 std::unique_ptr<Notification> notification) { 529 std::unique_ptr<Notification> notification) {
536 const std::string id = notification->id(); 530 const std::string id = notification->id();
(...skipping 14 matching lines...) Expand all
551 MessageCenterObserver, observer_list_, OnNotificationAdded(id)); 545 MessageCenterObserver, observer_list_, OnNotificationAdded(id));
552 } 546 }
553 } 547 }
554 548
555 void MessageCenterImpl::UpdateNotification( 549 void MessageCenterImpl::UpdateNotification(
556 const std::string& old_id, 550 const std::string& old_id,
557 std::unique_ptr<Notification> new_notification) { 551 std::unique_ptr<Notification> new_notification) {
558 for (size_t i = 0; i < blockers_.size(); ++i) 552 for (size_t i = 0; i < blockers_.size(); ++i)
559 blockers_[i]->CheckState(); 553 blockers_[i]->CheckState();
560 554
561 if (notification_queue_ && visible_) { 555 if (notification_queue_ &&
556 notification_list_->is_message_center_visible()) {
562 // We will allow notifications that are progress types (and stay progress 557 // We will allow notifications that are progress types (and stay progress
563 // types) to be updated even if the message center is open. There are 3 558 // types) to be updated even if the message center is open. There are 3
564 // requirements here: 559 // requirements here:
565 // * Notification of type PROGRESS exists with same ID in the center 560 // * Notification of type PROGRESS exists with same ID in the center
566 // * There are no queued updates for this notification (they imply a change 561 // * There are no queued updates for this notification (they imply a change
567 // that violates the PROGRESS invariant 562 // that violates the PROGRESS invariant
568 // * The new notification is type PROGRESS. 563 // * The new notification is type PROGRESS.
569 // TODO(dewittj): Ensure this works when the ID is changed by the caller. 564 // TODO(dewittj): Ensure this works when the ID is changed by the caller.
570 // This shouldn't be an issue in practice since only W3C notifications 565 // This shouldn't be an issue in practice since only W3C notifications
571 // change the ID on update, and they don't have progress type notifications. 566 // change the ID on update, and they don't have progress type notifications.
(...skipping 27 matching lines...) Expand all
599 } else { 594 } else {
600 FOR_EACH_OBSERVER(MessageCenterObserver, observer_list_, 595 FOR_EACH_OBSERVER(MessageCenterObserver, observer_list_,
601 OnNotificationRemoved(old_id, false)); 596 OnNotificationRemoved(old_id, false));
602 FOR_EACH_OBSERVER(MessageCenterObserver, observer_list_, 597 FOR_EACH_OBSERVER(MessageCenterObserver, observer_list_,
603 OnNotificationAdded(new_id)); 598 OnNotificationAdded(new_id));
604 } 599 }
605 } 600 }
606 601
607 void MessageCenterImpl::RemoveNotification(const std::string& id, 602 void MessageCenterImpl::RemoveNotification(const std::string& id,
608 bool by_user) { 603 bool by_user) {
609 if (notification_queue_ && !by_user && visible_) { 604 if (notification_queue_ && !by_user &&
605 notification_list_->is_message_center_visible()) {
610 notification_queue_->EraseNotification(id, by_user); 606 notification_queue_->EraseNotification(id, by_user);
611 return; 607 return;
612 } 608 }
613 609
614 RemoveNotificationImmediately(id, by_user); 610 RemoveNotificationImmediately(id, by_user);
615 } 611 }
616 612
617 void MessageCenterImpl::RemoveNotificationImmediately( 613 void MessageCenterImpl::RemoveNotificationImmediately(
618 const std::string& id, bool by_user) { 614 const std::string& id, bool by_user) {
619 if (FindVisibleNotificationById(id) == NULL) 615 if (FindVisibleNotificationById(id) == NULL)
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
851 void MessageCenterImpl::SetQuietMode(bool in_quiet_mode) { 847 void MessageCenterImpl::SetQuietMode(bool in_quiet_mode) {
852 if (in_quiet_mode != notification_list_->quiet_mode()) { 848 if (in_quiet_mode != notification_list_->quiet_mode()) {
853 notification_list_->SetQuietMode(in_quiet_mode); 849 notification_list_->SetQuietMode(in_quiet_mode);
854 FOR_EACH_OBSERVER(MessageCenterObserver, 850 FOR_EACH_OBSERVER(MessageCenterObserver,
855 observer_list_, 851 observer_list_,
856 OnQuietModeChanged(in_quiet_mode)); 852 OnQuietModeChanged(in_quiet_mode));
857 } 853 }
858 quiet_mode_timer_.reset(); 854 quiet_mode_timer_.reset();
859 } 855 }
860 856
861 void MessageCenterImpl::SetLockedState(bool locked) {
862 if (locked != locked_) {
863 locked_ = locked;
864 FOR_EACH_OBSERVER(MessageCenterObserver, observer_list_,
865 OnLockedStateChanged(locked));
866 }
867 }
868
869 void MessageCenterImpl::EnterQuietModeWithExpire( 857 void MessageCenterImpl::EnterQuietModeWithExpire(
870 const base::TimeDelta& expires_in) { 858 const base::TimeDelta& expires_in) {
871 if (quiet_mode_timer_) { 859 if (quiet_mode_timer_) {
872 // Note that the capital Reset() is the method to restart the timer, not 860 // Note that the capital Reset() is the method to restart the timer, not
873 // scoped_ptr::reset(). 861 // scoped_ptr::reset().
874 quiet_mode_timer_->Reset(); 862 quiet_mode_timer_->Reset();
875 } else { 863 } else {
876 notification_list_->SetQuietMode(true); 864 notification_list_->SetQuietMode(true);
877 FOR_EACH_OBSERVER( 865 FOR_EACH_OBSERVER(
878 MessageCenterObserver, observer_list_, OnQuietModeChanged(true)); 866 MessageCenterObserver, observer_list_, OnQuietModeChanged(true));
(...skipping 22 matching lines...) Expand all
901 } 889 }
902 890
903 void MessageCenterImpl::EnableChangeQueueForTest(bool enable) { 891 void MessageCenterImpl::EnableChangeQueueForTest(bool enable) {
904 if (enable) 892 if (enable)
905 notification_queue_.reset(new internal::ChangeQueue()); 893 notification_queue_.reset(new internal::ChangeQueue());
906 else 894 else
907 notification_queue_.reset(); 895 notification_queue_.reset();
908 } 896 }
909 897
910 } // namespace message_center 898 } // namespace message_center
OLDNEW
« no previous file with comments | « ui/message_center/message_center_impl.h ('k') | ui/message_center/message_center_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698