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 21 matching lines...) Expand all Loading... | |
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 ToolbarActionsBar* toolbar_actions_bar) |
41 : media_router::IssuesObserver(GetMediaRouter(browser)), | 41 : media_router::IssuesObserver(GetMediaRouter(browser)), |
42 media_router::LocalMediaRoutesObserver(GetMediaRouter(browser)), | 42 media_router::MediaRoutesObserver(GetMediaRouter(browser)), |
43 media_router_active_icon_( | 43 media_router_active_icon_( |
44 ui::ResourceBundle::GetSharedInstance() | 44 ui::ResourceBundle::GetSharedInstance().GetImageNamed( |
45 .GetImageNamed(IDR_MEDIA_ROUTER_ACTIVE_ICON)), | 45 IDR_MEDIA_ROUTER_ACTIVE_ICON)), |
46 media_router_error_icon_(ui::ResourceBundle::GetSharedInstance() | 46 media_router_error_icon_( |
47 .GetImageNamed(IDR_MEDIA_ROUTER_ERROR_ICON)), | 47 ui::ResourceBundle::GetSharedInstance().GetImageNamed( |
48 media_router_idle_icon_(ui::ResourceBundle::GetSharedInstance() | 48 IDR_MEDIA_ROUTER_ERROR_ICON)), |
49 .GetImageNamed(IDR_MEDIA_ROUTER_IDLE_ICON)), | 49 media_router_idle_icon_( |
50 ui::ResourceBundle::GetSharedInstance().GetImageNamed( | |
51 IDR_MEDIA_ROUTER_IDLE_ICON)), | |
50 media_router_warning_icon_( | 52 media_router_warning_icon_( |
51 ui::ResourceBundle::GetSharedInstance() | 53 ui::ResourceBundle::GetSharedInstance().GetImageNamed( |
52 .GetImageNamed(IDR_MEDIA_ROUTER_WARNING_ICON)), | 54 IDR_MEDIA_ROUTER_WARNING_ICON)), |
53 current_icon_(&media_router_idle_icon_), | 55 current_icon_(&media_router_idle_icon_), |
54 has_local_display_route_(false), | 56 has_local_display_route_(false), |
55 delegate_(nullptr), | 57 delegate_(nullptr), |
56 browser_(browser), | 58 browser_(browser), |
57 toolbar_actions_bar_(toolbar_actions_bar), | 59 toolbar_actions_bar_(toolbar_actions_bar), |
58 platform_delegate_(MediaRouterActionPlatformDelegate::Create(browser)), | 60 platform_delegate_(MediaRouterActionPlatformDelegate::Create(browser)), |
59 contextual_menu_(browser), | 61 contextual_menu_(browser), |
60 tab_strip_model_observer_(this), | 62 tab_strip_model_observer_(this), |
61 weak_ptr_factory_(this) { | 63 weak_ptr_factory_(this) { |
62 DCHECK(browser_); | 64 DCHECK(browser_); |
63 DCHECK(toolbar_actions_bar_); | 65 DCHECK(toolbar_actions_bar_); |
64 tab_strip_model_observer_.Add(browser_->tab_strip_model()); | 66 tab_strip_model_observer_.Add(browser_->tab_strip_model()); |
65 | 67 |
66 RegisterObserver(); | 68 RegisterObserver(); |
67 OnHasLocalDisplayRouteUpdated( | |
68 GetMediaRouter(browser)->HasLocalDisplayRoute()); | |
69 } | 69 } |
70 | 70 |
71 MediaRouterAction::~MediaRouterAction() { | 71 MediaRouterAction::~MediaRouterAction() { |
72 UnregisterObserver(); | 72 UnregisterObserver(); |
73 } | 73 } |
74 | 74 |
75 std::string MediaRouterAction::GetId() const { | 75 std::string MediaRouterAction::GetId() const { |
76 return ComponentToolbarActionsFactory::kMediaRouterActionId; | 76 return ComponentToolbarActionsFactory::kMediaRouterActionId; |
77 } | 77 } |
78 | 78 |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
156 bool MediaRouterAction::DisabledClickOpensMenu() const { | 156 bool MediaRouterAction::DisabledClickOpensMenu() const { |
157 return false; | 157 return false; |
158 } | 158 } |
159 | 159 |
160 void MediaRouterAction::OnIssueUpdated(const media_router::Issue* issue) { | 160 void MediaRouterAction::OnIssueUpdated(const media_router::Issue* issue) { |
161 issue_.reset(issue ? new media_router::Issue(*issue) : nullptr); | 161 issue_.reset(issue ? new media_router::Issue(*issue) : nullptr); |
162 | 162 |
163 MaybeUpdateIcon(); | 163 MaybeUpdateIcon(); |
164 } | 164 } |
165 | 165 |
166 void MediaRouterAction::OnHasLocalDisplayRouteUpdated( | 166 void MediaRouterAction::OnRoutesUpdated( |
167 bool has_local_display_route) { | 167 const std::vector<media_router::MediaRoute>& routes, |
168 has_local_display_route_ = has_local_display_route; | 168 const std::vector<media_router::MediaRoute::Id>& joinable_route_ids) { |
169 has_local_display_route_ = | |
170 std::find_if(routes.begin(), routes.end(), | |
Peter Kasting
2016/01/30 00:52:19
Nit: Prefer std::any_of() to (std::find_if() != en
imcheng
2016/02/01 18:48:06
I was going to use that, but it looks like it's a
| |
171 [](const media_router::MediaRoute& route) { | |
172 return route.is_local() && route.for_display(); | |
173 }) != routes.end(); | |
169 MaybeUpdateIcon(); | 174 MaybeUpdateIcon(); |
170 } | 175 } |
171 | 176 |
172 void MediaRouterAction::ActiveTabChanged(content::WebContents* old_contents, | 177 void MediaRouterAction::ActiveTabChanged(content::WebContents* old_contents, |
173 content::WebContents* new_contents, | 178 content::WebContents* new_contents, |
174 int index, | 179 int index, |
175 int reason) { | 180 int reason) { |
176 UpdatePopupState(); | 181 UpdatePopupState(); |
177 } | 182 } |
178 | 183 |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
243 if (issue_) { | 248 if (issue_) { |
244 if (issue_->severity() == media_router::Issue::FATAL) | 249 if (issue_->severity() == media_router::Issue::FATAL) |
245 return &media_router_error_icon_; | 250 return &media_router_error_icon_; |
246 if (issue_->severity() == media_router::Issue::WARNING) | 251 if (issue_->severity() == media_router::Issue::WARNING) |
247 return &media_router_warning_icon_; | 252 return &media_router_warning_icon_; |
248 } | 253 } |
249 | 254 |
250 return has_local_display_route_ ? &media_router_active_icon_ | 255 return has_local_display_route_ ? &media_router_active_icon_ |
251 : &media_router_idle_icon_; | 256 : &media_router_idle_icon_; |
252 } | 257 } |
OLD | NEW |