Commit 54ac2905 authored by Noah Rose Ledesma's avatar Noah Rose Ledesma Committed by Commit Bot

GMC: Don't show audio device selector for cast notifications

Currently we do not support device switching for Cast sessions via the
audio device selector in the zenith dialog. As such, the audio device
selector view should not be added to cast zenith notifications.

In order to distinguish cast notifications from local ones, a method was
added to the MediaNotificationItem base class.

Bug: 1104270
Change-Id: I16d57849b4370e6313c3cc8b4733d97d79af177f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2321050
Commit-Queue: Noah Rose Ledesma <noahrose@google.com>
Reviewed-by: default avatarTommy Steimel <steimel@chromium.org>
Cr-Commit-Position: refs/heads/master@{#795316}
parent f930daf6
...@@ -200,6 +200,10 @@ void CastMediaNotificationItem::Dismiss() { ...@@ -200,6 +200,10 @@ void CastMediaNotificationItem::Dismiss() {
notification_controller_->HideNotification(media_route_id_); notification_controller_->HideNotification(media_route_id_);
} }
bool CastMediaNotificationItem::SourceIsCast() {
return true;
}
void CastMediaNotificationItem::OnMediaStatusUpdated( void CastMediaNotificationItem::OnMediaStatusUpdated(
media_router::mojom::MediaStatusPtr status) { media_router::mojom::MediaStatusPtr status) {
metadata_.title = base::UTF8ToUTF16(status->title); metadata_.title = base::UTF8ToUTF16(status->title);
......
...@@ -52,6 +52,7 @@ class CastMediaNotificationItem ...@@ -52,6 +52,7 @@ class CastMediaNotificationItem
void OnMediaSessionActionButtonPressed( void OnMediaSessionActionButtonPressed(
media_session::mojom::MediaSessionAction action) override; media_session::mojom::MediaSessionAction action) override;
void Dismiss() override; void Dismiss() override;
bool SourceIsCast() override;
// media_router::mojom::MediaStatusObserver: // media_router::mojom::MediaStatusObserver:
void OnMediaStatusUpdated( void OnMediaStatusUpdated(
......
...@@ -116,13 +116,15 @@ MediaNotificationContainerImplView::MediaNotificationContainerImplView( ...@@ -116,13 +116,15 @@ MediaNotificationContainerImplView::MediaNotificationContainerImplView(
dismiss_button_container_->AddChildView(std::move(dismiss_button)); dismiss_button_container_->AddChildView(std::move(dismiss_button));
UpdateDismissButtonIcon(); UpdateDismissButtonIcon();
bool is_cast_notification = item ? item->SourceIsCast() : false;
auto view = std::make_unique<media_message_center::MediaNotificationViewImpl>( auto view = std::make_unique<media_message_center::MediaNotificationViewImpl>(
this, std::move(item), std::move(dismiss_button_placeholder), this, std::move(item), std::move(dismiss_button_placeholder),
base::string16(), kWidth, /*should_show_icon=*/false); base::string16(), kWidth, /*should_show_icon=*/false);
view_ = swipeable_container_->AddChildView(std::move(view)); view_ = swipeable_container_->AddChildView(std::move(view));
if (base::FeatureList::IsEnabled( if (base::FeatureList::IsEnabled(
media::kGlobalMediaControlsSeamlessTransfer)) { media::kGlobalMediaControlsSeamlessTransfer) &&
!is_cast_notification) {
auto audio_device_selector_view = auto audio_device_selector_view =
std::make_unique<MediaNotificationAudioDeviceSelectorView>( std::make_unique<MediaNotificationAudioDeviceSelectorView>(
this, service_, gfx::Size(kWidth, kAudioDeviceSelectorViewHeight), this, service_, gfx::Size(kWidth, kAudioDeviceSelectorViewHeight),
......
...@@ -57,6 +57,9 @@ class COMPONENT_EXPORT(MEDIA_MESSAGE_CENTER) MediaNotificationItem { ...@@ -57,6 +57,9 @@ class COMPONENT_EXPORT(MEDIA_MESSAGE_CENTER) MediaNotificationItem {
// Hides the media notification. // Hides the media notification.
virtual void Dismiss() = 0; virtual void Dismiss() = 0;
// Return true if this item belongs to a cast media session, false otherwise.
virtual bool SourceIsCast() = 0;
}; };
} // namespace media_message_center } // namespace media_message_center
......
...@@ -165,6 +165,10 @@ void MediaSessionNotificationItem::Dismiss() { ...@@ -165,6 +165,10 @@ void MediaSessionNotificationItem::Dismiss() {
controller_->RemoveItem(request_id_); controller_->RemoveItem(request_id_);
} }
bool MediaSessionNotificationItem::SourceIsCast() {
return false;
}
void MediaSessionNotificationItem::SetController( void MediaSessionNotificationItem::SetController(
mojo::Remote<media_session::mojom::MediaController> controller, mojo::Remote<media_session::mojom::MediaController> controller,
media_session::mojom::MediaSessionInfoPtr session_info) { media_session::mojom::MediaSessionInfoPtr session_info) {
......
...@@ -68,6 +68,7 @@ class COMPONENT_EXPORT(MEDIA_MESSAGE_CENTER) MediaSessionNotificationItem ...@@ -68,6 +68,7 @@ class COMPONENT_EXPORT(MEDIA_MESSAGE_CENTER) MediaSessionNotificationItem
// This will stop the media session associated with this item. The item will // This will stop the media session associated with this item. The item will
// then call |MediaNotificationController::RemoveItem()| to ensure removal. // then call |MediaNotificationController::RemoveItem()| to ensure removal.
void Dismiss() override; void Dismiss() override;
bool SourceIsCast() override;
base::WeakPtr<MediaSessionNotificationItem> GetWeakPtr() { base::WeakPtr<MediaSessionNotificationItem> GetWeakPtr() {
return weak_ptr_factory_.GetWeakPtr(); return weak_ptr_factory_.GetWeakPtr();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment