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

Unified Diff: ash/common/system/user/user_card_view.cc

Issue 2563643003: mash: Change the MediaDelegate to a Media{Controller,Client}. (Closed)
Patch Set: Comment fixes Created 4 years 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ash/common/system/user/user_card_view.h ('k') | ash/common/wm_shell.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/common/system/user/user_card_view.cc
diff --git a/ash/common/system/user/user_card_view.cc b/ash/common/system/user/user_card_view.cc
index 157d07e5f1bc83f8a2cc78dc52b59d85ec209609..83ca4e39f597a1c2f1b484140c7e028b0e6b7da0 100644
--- a/ash/common/system/user/user_card_view.cc
+++ b/ash/common/system/user/user_card_view.cc
@@ -7,12 +7,13 @@
#include <algorithm>
#include <vector>
+#include "ash/common/ash_view_ids.h"
#include "ash/common/login_status.h"
#include "ash/common/material_design/material_design_controller.h"
+#include "ash/common/media_controller.h"
#include "ash/common/session/session_state_delegate.h"
#include "ash/common/system/tray/system_tray_controller.h"
#include "ash/common/system/tray/system_tray_delegate.h"
-#include "ash/common/system/tray/system_tray_notifier.h"
#include "ash/common/system/tray/tray_constants.h"
#include "ash/common/system/tray/tray_popup_item_style.h"
#include "ash/common/system/tray/tray_utils.h"
@@ -48,11 +49,6 @@
#include "ui/views/layout/box_layout.h"
#include "ui/views/layout/fill_layout.h"
-#if defined(OS_CHROMEOS)
-#include "ash/common/ash_view_ids.h"
-#include "ash/common/media_delegate.h"
-#endif
-
namespace ash {
namespace tray {
@@ -93,7 +89,6 @@ views::View* CreateUserAvatarView(LoginStatus login_status, int user_index) {
return image_view;
}
-#if defined(OS_CHROMEOS)
class MediaIndicator : public views::View, public MediaCaptureObserver {
public:
explicit MediaIndicator(UserIndex index)
@@ -108,31 +103,37 @@ class MediaIndicator : public views::View, public MediaCaptureObserver {
label_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
label_->SetFontList(ui::ResourceBundle::GetSharedInstance().GetFontList(
ui::ResourceBundle::SmallFont));
- OnMediaCaptureChanged();
- WmShell::Get()->system_tray_notifier()->AddMediaCaptureObserver(this);
+ WmShell::Get()->media_controller()->AddObserver(this);
+ SetVisible(false);
+ WmShell::Get()->media_controller()->RequestCaptureState();
set_id(VIEW_ID_USER_VIEW_MEDIA_INDICATOR);
}
~MediaIndicator() override {
- WmShell::Get()->system_tray_notifier()->RemoveMediaCaptureObserver(this);
+ WmShell::Get()->media_controller()->RemoveObserver(this);
}
// MediaCaptureObserver:
- void OnMediaCaptureChanged() override {
- MediaCaptureState state =
- WmShell::Get()->media_delegate()->GetMediaCaptureState(index_);
+ void OnMediaCaptureChanged(
+ const std::vector<mojom::MediaCaptureState>& capture_states) override {
+ if (static_cast<size_t>(index_) >= capture_states.size()) {
+ NOTREACHED();
+ return;
+ }
+
+ mojom::MediaCaptureState state = capture_states[index_];
int res_id = 0;
switch (state) {
- case MEDIA_CAPTURE_AUDIO_VIDEO:
+ case mojom::MediaCaptureState::AUDIO_VIDEO:
res_id = IDS_ASH_STATUS_TRAY_MEDIA_RECORDING_AUDIO_VIDEO;
break;
- case MEDIA_CAPTURE_AUDIO:
+ case mojom::MediaCaptureState::AUDIO:
res_id = IDS_ASH_STATUS_TRAY_MEDIA_RECORDING_AUDIO;
break;
- case MEDIA_CAPTURE_VIDEO:
+ case mojom::MediaCaptureState::VIDEO:
res_id = IDS_ASH_STATUS_TRAY_MEDIA_RECORDING_VIDEO;
break;
- case MEDIA_CAPTURE_NONE:
+ case mojom::MediaCaptureState::NONE:
break;
}
SetMessage(res_id ? l10n_util::GetStringUTF16(res_id) : base::string16());
@@ -152,7 +153,6 @@ class MediaIndicator : public views::View, public MediaCaptureObserver {
DISALLOW_COPY_AND_ASSIGN(MediaIndicator);
};
-#endif
// The user details shown in public account mode. This is essentially a label
// but with custom painting code as the text is styled with multiple colors and
@@ -389,9 +389,7 @@ UserCardView::UserCardView(LoginStatus login_status,
views::CreateEmptyBorder(0, kMenuExtraMarginFromLeftEdge, 0, 0));
}
-#if defined(OS_CHROMEOS)
- WmShell::Get()->system_tray_notifier()->AddMediaCaptureObserver(this);
-#endif
+ WmShell::Get()->media_controller()->AddObserver(this);
}
if (login_status == LoginStatus::PUBLIC)
@@ -403,10 +401,8 @@ UserCardView::UserCardView(LoginStatus login_status,
}
UserCardView::~UserCardView() {
-#if defined(OS_CHROMEOS)
if (UseMd())
- WmShell::Get()->system_tray_notifier()->RemoveMediaCaptureObserver(this);
-#endif
+ WmShell::Get()->media_controller()->RemoveObserver(this);
}
void UserCardView::PaintChildren(const ui::PaintContext& context) {
@@ -426,25 +422,24 @@ void UserCardView::GetAccessibleNodeData(ui::AXNodeData* node_data) {
node_data->SetName(base::JoinString(labels, base::ASCIIToUTF16(" ")));
}
-void UserCardView::OnMediaCaptureChanged() {
-#if defined(OS_CHROMEOS)
+void UserCardView::OnMediaCaptureChanged(
+ const std::vector<mojom::MediaCaptureState>& capture_states) {
if (is_active_user())
return;
- MediaCaptureState state =
- WmShell::Get()->media_delegate()->GetMediaCaptureState(user_index_);
+ mojom::MediaCaptureState state = capture_states[user_index_];
int res_id = 0;
switch (state) {
- case MEDIA_CAPTURE_AUDIO_VIDEO:
+ case mojom::MediaCaptureState::AUDIO_VIDEO:
res_id = IDS_ASH_STATUS_TRAY_MEDIA_RECORDING_AUDIO_VIDEO;
break;
- case MEDIA_CAPTURE_AUDIO:
+ case mojom::MediaCaptureState::AUDIO:
res_id = IDS_ASH_STATUS_TRAY_MEDIA_RECORDING_AUDIO;
break;
- case MEDIA_CAPTURE_VIDEO:
+ case mojom::MediaCaptureState::VIDEO:
res_id = IDS_ASH_STATUS_TRAY_MEDIA_RECORDING_VIDEO;
break;
- case MEDIA_CAPTURE_NONE:
+ case mojom::MediaCaptureState::NONE:
break;
}
if (res_id)
@@ -453,7 +448,6 @@ void UserCardView::OnMediaCaptureChanged() {
media_capture_icon_->SetVisible(!!res_id);
user_name_->SetVisible(!res_id);
Layout();
-#endif
}
void UserCardView::AddPublicModeUserContent(int max_width) {
@@ -520,7 +514,6 @@ void UserCardView::AddUserContent(LoginStatus login_status) {
if (user_name)
AddChildView(user_name);
if (user_email) {
-#if defined(OS_CHROMEOS)
// Only non active user can have a media indicator.
MediaIndicator* media_indicator = new MediaIndicator(user_index_);
views::View* email_indicator_view = new views::View;
@@ -535,9 +528,6 @@ void UserCardView::AddUserContent(LoginStatus login_status) {
details->AddChildView(email_indicator_view);
details->AddChildView(media_indicator->GetMessageView());
AddChildView(details);
-#else
- AddChildView(user_email);
-#endif
}
}
}
@@ -609,12 +599,11 @@ void UserCardView::AddUserContentMd(views::BoxLayout* layout,
gfx::Insets(0, (media_capture_width -
media_capture_icon_->GetPreferredSize().width()) /
2)));
-#if defined(OS_CHROMEOS)
+
media_capture_icon_->set_id(VIEW_ID_USER_VIEW_MEDIA_INDICATOR);
-#endif
AddChildView(media_capture_icon_);
- OnMediaCaptureChanged();
+ WmShell::Get()->media_controller()->RequestCaptureState();
}
}
« no previous file with comments | « ash/common/system/user/user_card_view.h ('k') | ash/common/wm_shell.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698