OLD | NEW |
---|---|
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/ui/toolbar/media_router_action.h" | 5 #include "chrome/browser/ui/toolbar/media_router_action.h" |
6 | 6 |
7 #include "base/metrics/user_metrics.h" | 7 #include "base/metrics/user_metrics.h" |
8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
9 #include "chrome/browser/media/router/issue.h" | 9 #include "chrome/browser/media/router/issue.h" |
10 #include "chrome/browser/media/router/media_route.h" | 10 #include "chrome/browser/media/router/media_route.h" |
(...skipping 18 matching lines...) Expand all Loading... | |
29 | 29 |
30 namespace { | 30 namespace { |
31 | 31 |
32 media_router::MediaRouter* GetMediaRouter(Browser* browser) { | 32 media_router::MediaRouter* GetMediaRouter(Browser* browser) { |
33 return media_router::MediaRouterFactory::GetApiForBrowserContext( | 33 return media_router::MediaRouterFactory::GetApiForBrowserContext( |
34 browser->profile()); | 34 browser->profile()); |
35 } | 35 } |
36 | 36 |
37 } // namespace | 37 } // namespace |
38 | 38 |
39 MediaRouterAction::MediaRouterAction(Browser* browser) | 39 MediaRouterAction::MediaRouterAction(Browser* browser, |
40 ToolbarActionsBar* toolbar_actions_bar) | |
40 : media_router::IssuesObserver(GetMediaRouter(browser)), | 41 : media_router::IssuesObserver(GetMediaRouter(browser)), |
41 media_router::LocalMediaRoutesObserver(GetMediaRouter(browser)), | 42 media_router::LocalMediaRoutesObserver(GetMediaRouter(browser)), |
42 media_router_active_icon_( | 43 media_router_active_icon_( |
43 ui::ResourceBundle::GetSharedInstance() | 44 ui::ResourceBundle::GetSharedInstance() |
44 .GetImageNamed(IDR_MEDIA_ROUTER_ACTIVE_ICON)), | 45 .GetImageNamed(IDR_MEDIA_ROUTER_ACTIVE_ICON)), |
45 media_router_error_icon_(ui::ResourceBundle::GetSharedInstance() | 46 media_router_error_icon_(ui::ResourceBundle::GetSharedInstance() |
46 .GetImageNamed(IDR_MEDIA_ROUTER_ERROR_ICON)), | 47 .GetImageNamed(IDR_MEDIA_ROUTER_ERROR_ICON)), |
47 media_router_idle_icon_(ui::ResourceBundle::GetSharedInstance() | 48 media_router_idle_icon_(ui::ResourceBundle::GetSharedInstance() |
48 .GetImageNamed(IDR_MEDIA_ROUTER_IDLE_ICON)), | 49 .GetImageNamed(IDR_MEDIA_ROUTER_IDLE_ICON)), |
49 media_router_warning_icon_( | 50 media_router_warning_icon_( |
50 ui::ResourceBundle::GetSharedInstance() | 51 ui::ResourceBundle::GetSharedInstance() |
51 .GetImageNamed(IDR_MEDIA_ROUTER_WARNING_ICON)), | 52 .GetImageNamed(IDR_MEDIA_ROUTER_WARNING_ICON)), |
52 current_icon_(&media_router_idle_icon_), | 53 current_icon_(&media_router_idle_icon_), |
53 has_local_display_route_(false), | 54 has_local_display_route_(false), |
54 delegate_(nullptr), | 55 delegate_(nullptr), |
55 browser_(browser), | 56 browser_(browser), |
57 toolbar_actions_bar_(toolbar_actions_bar), | |
56 platform_delegate_(MediaRouterActionPlatformDelegate::Create(browser)), | 58 platform_delegate_(MediaRouterActionPlatformDelegate::Create(browser)), |
57 contextual_menu_(browser), | 59 contextual_menu_(browser), |
58 tab_strip_model_observer_(this), | 60 tab_strip_model_observer_(this), |
59 weak_ptr_factory_(this) { | 61 weak_ptr_factory_(this) { |
60 DCHECK(browser_); | 62 DCHECK(browser_); |
63 DCHECK(toolbar_actions_bar_); | |
61 tab_strip_model_observer_.Add(browser_->tab_strip_model()); | 64 tab_strip_model_observer_.Add(browser_->tab_strip_model()); |
62 | 65 |
63 RegisterObserver(); | 66 RegisterObserver(); |
64 OnHasLocalDisplayRouteUpdated( | 67 OnHasLocalDisplayRouteUpdated( |
65 GetMediaRouter(browser)->HasLocalDisplayRoute()); | 68 GetMediaRouter(browser)->HasLocalDisplayRoute()); |
66 } | 69 } |
67 | 70 |
68 MediaRouterAction::~MediaRouterAction() { | 71 MediaRouterAction::~MediaRouterAction() { |
69 UnregisterObserver(); | 72 UnregisterObserver(); |
70 } | 73 } |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
185 delegate_->OnPopupShown(true); | 188 delegate_->OnPopupShown(true); |
186 } | 189 } |
187 | 190 |
188 void MediaRouterAction::UpdatePopupState() { | 191 void MediaRouterAction::UpdatePopupState() { |
189 MediaRouterDialogControllerImpl* controller = | 192 MediaRouterDialogControllerImpl* controller = |
190 GetMediaRouterDialogController(); | 193 GetMediaRouterDialogController(); |
191 | 194 |
192 if (!controller) | 195 if (!controller) |
193 return; | 196 return; |
194 | 197 |
195 // Immediately keep track of MediaRouterAction in the controller. If it was | 198 // Only call SetMediaRouterAction() if |this| lives on the toolbar rather |
196 // already set, this should be a no-op. | 199 // than the overflow menu. If it was already set, this should be a no-op. |
Peter Kasting
2015/12/03 04:48:53
This first sentence restates what the code does.
apacible
2015/12/03 21:53:10
Done.
| |
197 controller->SetMediaRouterAction(weak_ptr_factory_.GetWeakPtr()); | 200 if (!toolbar_actions_bar_->in_overflow_mode()) |
201 controller->SetMediaRouterAction(weak_ptr_factory_.GetWeakPtr()); | |
198 | 202 |
199 // Update the button in case the pressed state is out of sync with dialog | 203 // Update the button in case the pressed state is out of sync with dialog |
200 // visibility. | 204 // visibility. |
201 if (controller->IsShowingMediaRouterDialog()) | 205 if (controller->IsShowingMediaRouterDialog()) |
202 OnPopupShown(); | 206 OnPopupShown(); |
203 else | 207 else |
204 OnPopupHidden(); | 208 OnPopupHidden(); |
205 } | 209 } |
206 | 210 |
207 MediaRouterDialogControllerImpl* | 211 MediaRouterDialogControllerImpl* |
(...skipping 28 matching lines...) Expand all Loading... | |
236 if (issue_) { | 240 if (issue_) { |
237 if (issue_->severity() == media_router::Issue::FATAL) | 241 if (issue_->severity() == media_router::Issue::FATAL) |
238 return &media_router_error_icon_; | 242 return &media_router_error_icon_; |
239 if (issue_->severity() == media_router::Issue::WARNING) | 243 if (issue_->severity() == media_router::Issue::WARNING) |
240 return &media_router_warning_icon_; | 244 return &media_router_warning_icon_; |
241 } | 245 } |
242 | 246 |
243 return has_local_display_route_ ? &media_router_active_icon_ | 247 return has_local_display_route_ ? &media_router_active_icon_ |
244 : &media_router_idle_icon_; | 248 : &media_router_idle_icon_; |
245 } | 249 } |
OLD | NEW |