// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ash/system/nearby_share/nearby_share_detailed_view_impl.h"
#include "ash/public/cpp/system_tray_client.h"
#include "ash/shell.h"
#include "ash/strings/grit/ash_strings.h"
#include "ash/system/model/system_tray_model.h"
#include "ash/system/tray/tray_popup_utils.h"
#include "ash/system/tray/tri_view.h"
#include "base/functional/bind.h"
#include "ui/base/metadata/metadata_impl_macros.h"
namespace ash {
NearbyShareDetailedViewImpl::NearbyShareDetailedViewImpl(
DetailedViewDelegate* detailed_view_delegate)
: TrayDetailedView(detailed_view_delegate) {
// TODO(brandosocarras, b/360150790): Create and use a Quick Share string.
CreateTitleRow(IDS_ASH_STATUS_TRAY_NEARBY_SHARE_TILE_LABEL);
}
NearbyShareDetailedViewImpl::~NearbyShareDetailedViewImpl() = default;
views::View* NearbyShareDetailedViewImpl::GetAsView() {
return this;
}
void NearbyShareDetailedViewImpl::CreateExtraTitleRowButtons() {
DCHECK(!settings_button_);
tri_view()->SetContainerVisible(TriView::Container::END, /*visible=*/true);
settings_button_ = CreateSettingsButton(
base::BindRepeating(&NearbyShareDetailedViewImpl::OnSettingsButtonClicked,
weak_factory_.GetWeakPtr()),
IDS_ASH_STATUS_TRAY_NEARBY_SHARE_BUTTON_LABEL);
settings_button_->SetState(TrayPopupUtils::CanOpenWebUISettings()
? views::Button::STATE_NORMAL
: views::Button::STATE_DISABLED);
tri_view()->AddView(TriView::Container::END, settings_button_);
}
void NearbyShareDetailedViewImpl::OnSettingsButtonClicked() {
CloseBubble();
Shell::Get()->system_tray_model()->client()->ShowNearbyShareSettings();
}
BEGIN_METADATA(NearbyShareDetailedViewImpl)
END_METADATA
} // namespace ash