Commit a5f57bae authored by Andre Le's avatar Andre Le Committed by Commit Bot

ash: update UnifiedManagedDeviceView to fit current UI state.

1. Fix padding and layout.
2. Make it a button that takes user to management setting page.

Change-Id: Iddc81f1b6b3762249e6046484cce96128e3651c3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2303050
Commit-Queue: Andre Le <leandre@chromium.org>
Reviewed-by: default avatarTim Song <tengs@chromium.org>
Cr-Commit-Position: refs/heads/master@{#789661}
parent 0916bc53
...@@ -102,7 +102,7 @@ constexpr int kSystemMenuCollapseExpandAnimationDurationMs = 500; ...@@ -102,7 +102,7 @@ constexpr int kSystemMenuCollapseExpandAnimationDurationMs = 500;
constexpr gfx::Insets kUnifiedMenuItemPadding(0, 16, 16, 16); constexpr gfx::Insets kUnifiedMenuItemPadding(0, 16, 16, 16);
constexpr gfx::Insets kUnifiedSystemInfoViewPadding(0, 16, 16, 16); constexpr gfx::Insets kUnifiedSystemInfoViewPadding(0, 16, 16, 16);
constexpr gfx::Insets kUnifiedManagedDeviceViewPadding(4, 19, 4, 16); constexpr gfx::Insets kUnifiedManagedDeviceViewPadding(0, 16, 11, 16);
constexpr gfx::Insets kUnifiedSliderRowPadding(0, 16, 8, 16); constexpr gfx::Insets kUnifiedSliderRowPadding(0, 16, 8, 16);
constexpr gfx::Insets kUnifiedSliderBubblePadding(12, 0, 4, 0); constexpr gfx::Insets kUnifiedSliderBubblePadding(12, 0, 4, 0);
constexpr gfx::Insets kUnifiedSliderPadding(0, 16); constexpr gfx::Insets kUnifiedSliderPadding(0, 16);
...@@ -137,7 +137,7 @@ constexpr gfx::Insets kStackingNotificationClearAllButtonPadding(8, 16); ...@@ -137,7 +137,7 @@ constexpr gfx::Insets kStackingNotificationClearAllButtonPadding(8, 16);
// A dark disc with |kTrayItemSize| diameter is drawn in the background. // A dark disc with |kTrayItemSize| diameter is drawn in the background.
constexpr int kTrayTopShortcutButtonIconSize = 20; constexpr int kTrayTopShortcutButtonIconSize = 20;
constexpr int kUnifiedManagedDeviceSpacing = 4; constexpr int kUnifiedManagedDeviceSpacing = 8;
constexpr int kUnifiedSystemInfoHeight = 16; constexpr int kUnifiedSystemInfoHeight = 16;
constexpr int kUnifiedSystemInfoSpacing = 8; constexpr int kUnifiedSystemInfoSpacing = 8;
constexpr gfx::Insets kUnifiedSystemInfoDateViewPadding(3); constexpr gfx::Insets kUnifiedSystemInfoDateViewPadding(3);
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
#include "ash/system/unified/unified_managed_device_view.h" #include "ash/system/unified/unified_managed_device_view.h"
#include "ash/public/cpp/ash_view_ids.h"
#include "ash/resources/vector_icons/vector_icons.h" #include "ash/resources/vector_icons/vector_icons.h"
#include "ash/session/session_controller_impl.h" #include "ash/session/session_controller_impl.h"
#include "ash/shell.h" #include "ash/shell.h"
...@@ -25,8 +26,12 @@ ...@@ -25,8 +26,12 @@
namespace ash { namespace ash {
UnifiedManagedDeviceView::UnifiedManagedDeviceView() UnifiedManagedDeviceView::UnifiedManagedDeviceView(
: icon_(new views::ImageView), label_(new views::Label) { UnifiedSystemTrayController* controller)
: Button(this),
icon_(new views::ImageView),
label_(new views::Label),
controller_(controller) {
auto* layout = SetLayoutManager(std::make_unique<views::BoxLayout>( auto* layout = SetLayoutManager(std::make_unique<views::BoxLayout>(
views::BoxLayout::Orientation::kHorizontal, views::BoxLayout::Orientation::kHorizontal,
kUnifiedManagedDeviceViewPadding, kUnifiedManagedDeviceSpacing)); kUnifiedManagedDeviceViewPadding, kUnifiedManagedDeviceSpacing));
...@@ -44,6 +49,8 @@ UnifiedManagedDeviceView::UnifiedManagedDeviceView() ...@@ -44,6 +49,8 @@ UnifiedManagedDeviceView::UnifiedManagedDeviceView()
AshColorProvider::AshColorMode::kDark)); AshColorProvider::AshColorMode::kDark));
AddChildView(label_); AddChildView(label_);
SetID(VIEW_ID_TRAY_ENTERPRISE);
Shell::Get()->session_controller()->AddObserver(this); Shell::Get()->session_controller()->AddObserver(this);
Shell::Get()->system_tray_model()->enterprise_domain()->AddObserver(this); Shell::Get()->system_tray_model()->enterprise_domain()->AddObserver(this);
Update(); Update();
...@@ -54,6 +61,11 @@ UnifiedManagedDeviceView::~UnifiedManagedDeviceView() { ...@@ -54,6 +61,11 @@ UnifiedManagedDeviceView::~UnifiedManagedDeviceView() {
Shell::Get()->session_controller()->RemoveObserver(this); Shell::Get()->session_controller()->RemoveObserver(this);
} }
void UnifiedManagedDeviceView::ButtonPressed(views::Button* sender,
const ui::Event& event) {
controller_->HandleEnterpriseInfoAction();
}
void UnifiedManagedDeviceView::OnLoginStatusChanged(LoginStatus status) { void UnifiedManagedDeviceView::OnLoginStatusChanged(LoginStatus status) {
Update(); Update();
} }
...@@ -80,20 +92,20 @@ void UnifiedManagedDeviceView::Update() { ...@@ -80,20 +92,20 @@ void UnifiedManagedDeviceView::Update() {
// Show enterpised managed UI. // Show enterpised managed UI.
icon_->SetImage(gfx::CreateVectorIcon(kSystemTrayManagedIcon, icon_color)); icon_->SetImage(gfx::CreateVectorIcon(kSystemTrayManagedIcon, icon_color));
if (!enterprise_domain_name.empty()) { base::string16 managed_string =
label_->SetText(l10n_util::GetStringFUTF16( enterprise_domain_name.empty()
? l10n_util::GetStringUTF16(IDS_ASH_ENTERPRISE_DEVICE_MANAGED)
: l10n_util::GetStringFUTF16(
IDS_ASH_ENTERPRISE_DEVICE_MANAGED_BY, IDS_ASH_ENTERPRISE_DEVICE_MANAGED_BY,
base::UTF8ToUTF16(enterprise_domain_name))); base::UTF8ToUTF16(enterprise_domain_name));
} else { label_->SetText(managed_string);
label_->SetText( SetAccessibleName(managed_string);
l10n_util::GetStringUTF16(IDS_ASH_ENTERPRISE_DEVICE_MANAGED));
}
SetVisible(true); SetVisible(true);
} else if (session->IsUserSupervised()) { } else if (session->IsUserSupervised()) {
// Show supervised user UI (locally supervised or Family Link). // Show supervised user UI (locally supervised or Family Link).
icon_->SetImage(gfx::CreateVectorIcon(GetSupervisedUserIcon(), icon_color)); icon_->SetImage(gfx::CreateVectorIcon(GetSupervisedUserIcon(), icon_color));
label_->SetText(GetSupervisedUserMessage()); label_->SetText(GetSupervisedUserMessage());
SetAccessibleName(GetSupervisedUserMessage());
SetVisible(true); SetVisible(true);
} else { } else {
SetVisible(false); SetVisible(false);
......
...@@ -8,7 +8,9 @@ ...@@ -8,7 +8,9 @@
#include "ash/ash_export.h" #include "ash/ash_export.h"
#include "ash/public/cpp/session/session_observer.h" #include "ash/public/cpp/session/session_observer.h"
#include "ash/system/enterprise/enterprise_domain_observer.h" #include "ash/system/enterprise/enterprise_domain_observer.h"
#include "ash/system/unified/unified_system_tray_controller.h"
#include "base/macros.h" #include "base/macros.h"
#include "ui/views/controls/button/button.h"
#include "ui/views/view.h" #include "ui/views/view.h"
namespace views { namespace views {
...@@ -20,13 +22,17 @@ namespace ash { ...@@ -20,13 +22,17 @@ namespace ash {
// Row in the unified system tray bubble shown when the device is currently // Row in the unified system tray bubble shown when the device is currently
// managed by an administrator (by a domain admin or FamilyLink). // managed by an administrator (by a domain admin or FamilyLink).
class ASH_EXPORT UnifiedManagedDeviceView : public views::View, class ASH_EXPORT UnifiedManagedDeviceView : public views::Button,
public views::ButtonListener,
public SessionObserver, public SessionObserver,
public EnterpriseDomainObserver { public EnterpriseDomainObserver {
public: public:
UnifiedManagedDeviceView(); explicit UnifiedManagedDeviceView(UnifiedSystemTrayController* controller);
~UnifiedManagedDeviceView() override; ~UnifiedManagedDeviceView() override;
// views::ButtonListener:
void ButtonPressed(views::Button* sender, const ui::Event& event) override;
// SessionObserver: // SessionObserver:
void OnLoginStatusChanged(LoginStatus status) override; void OnLoginStatusChanged(LoginStatus status) override;
...@@ -43,6 +49,8 @@ class ASH_EXPORT UnifiedManagedDeviceView : public views::View, ...@@ -43,6 +49,8 @@ class ASH_EXPORT UnifiedManagedDeviceView : public views::View,
views::ImageView* const icon_; views::ImageView* const icon_;
views::Label* const label_; views::Label* const label_;
UnifiedSystemTrayController* const controller_;
DISALLOW_COPY_AND_ASSIGN(UnifiedManagedDeviceView); DISALLOW_COPY_AND_ASSIGN(UnifiedManagedDeviceView);
}; };
......
...@@ -9,6 +9,8 @@ ...@@ -9,6 +9,8 @@
#include "ash/shell.h" #include "ash/shell.h"
#include "ash/system/model/enterprise_domain_model.h" #include "ash/system/model/enterprise_domain_model.h"
#include "ash/system/model/system_tray_model.h" #include "ash/system/model/system_tray_model.h"
#include "ash/system/unified/unified_system_tray_controller.h"
#include "ash/system/unified/unified_system_tray_model.h"
#include "ash/test/ash_test_base.h" #include "ash/test/ash_test_base.h"
#include "ash/system/unified/unified_system_tray_view.h" #include "ash/system/unified/unified_system_tray_view.h"
...@@ -22,11 +24,16 @@ class UnifiedManagedDeviceViewTest : public AshTestBase { ...@@ -22,11 +24,16 @@ class UnifiedManagedDeviceViewTest : public AshTestBase {
void SetUp() override { void SetUp() override {
AshTestBase::SetUp(); AshTestBase::SetUp();
managed_device_view_ = std::make_unique<UnifiedManagedDeviceView>(); model_ = std::make_unique<UnifiedSystemTrayModel>(nullptr);
controller_ = std::make_unique<UnifiedSystemTrayController>(model_.get());
managed_device_view_ =
std::make_unique<UnifiedManagedDeviceView>(controller_.get());
} }
void TearDown() override { void TearDown() override {
managed_device_view_.reset(); managed_device_view_.reset();
controller_.reset();
model_.reset();
AshTestBase::TearDown(); AshTestBase::TearDown();
} }
...@@ -34,6 +41,8 @@ class UnifiedManagedDeviceViewTest : public AshTestBase { ...@@ -34,6 +41,8 @@ class UnifiedManagedDeviceViewTest : public AshTestBase {
std::unique_ptr<UnifiedManagedDeviceView> managed_device_view_; std::unique_ptr<UnifiedManagedDeviceView> managed_device_view_;
private: private:
std::unique_ptr<UnifiedSystemTrayModel> model_;
std::unique_ptr<UnifiedSystemTrayController> controller_;
DISALLOW_COPY_AND_ASSIGN(UnifiedManagedDeviceViewTest); DISALLOW_COPY_AND_ASSIGN(UnifiedManagedDeviceViewTest);
}; };
...@@ -70,8 +79,12 @@ TEST_F(UnifiedManagedDeviceViewNoSessionTest, SupervisedUserDevice) { ...@@ -70,8 +79,12 @@ TEST_F(UnifiedManagedDeviceViewNoSessionTest, SupervisedUserDevice) {
ASSERT_FALSE(session->IsActiveUserSessionStarted()); ASSERT_FALSE(session->IsActiveUserSessionStarted());
// Before login the UnifiedManagedDeviceView is invisible. // Before login the UnifiedManagedDeviceView is invisible.
std::unique_ptr<UnifiedSystemTrayModel> model =
std::make_unique<UnifiedSystemTrayModel>(nullptr);
std::unique_ptr<UnifiedSystemTrayController> controller =
std::make_unique<UnifiedSystemTrayController>(model.get());
std::unique_ptr<UnifiedManagedDeviceView> managed_device_view = std::unique_ptr<UnifiedManagedDeviceView> managed_device_view =
std::make_unique<UnifiedManagedDeviceView>(); std::make_unique<UnifiedManagedDeviceView>(controller.get());
EXPECT_FALSE(managed_device_view->GetVisible()); EXPECT_FALSE(managed_device_view->GetVisible());
managed_device_view.reset(); managed_device_view.reset();
...@@ -85,7 +98,8 @@ TEST_F(UnifiedManagedDeviceViewNoSessionTest, SupervisedUserDevice) { ...@@ -85,7 +98,8 @@ TEST_F(UnifiedManagedDeviceViewNoSessionTest, SupervisedUserDevice) {
session->UpdateUserSession(std::move(user_session)); session->UpdateUserSession(std::move(user_session));
// Now the UnifiedManagedDeviceView is visible. // Now the UnifiedManagedDeviceView is visible.
managed_device_view = std::make_unique<UnifiedManagedDeviceView>(); managed_device_view =
std::make_unique<UnifiedManagedDeviceView>(controller.get());
ASSERT_TRUE(managed_device_view->GetVisible()); ASSERT_TRUE(managed_device_view->GetVisible());
} }
......
...@@ -241,15 +241,16 @@ UnifiedSystemTrayView::UnifiedSystemTrayView( ...@@ -241,15 +241,16 @@ UnifiedSystemTrayView::UnifiedSystemTrayView(
system_tray_container_->AddChildView(feature_pods_container_); system_tray_container_->AddChildView(feature_pods_container_);
system_tray_container_->AddChildView(page_indicator_view_); system_tray_container_->AddChildView(page_indicator_view_);
system_tray_container_->AddChildView(sliders_container_); system_tray_container_->AddChildView(sliders_container_);
add_layered_child(system_tray_container_, system_info_view_);
system_tray_container_->SetFlexForView(page_indicator_view_);
if (features::IsManagedDeviceUIRedesignEnabled()) { if (features::IsManagedDeviceUIRedesignEnabled()) {
managed_device_view_ = new UnifiedManagedDeviceView(); managed_device_view_ = new UnifiedManagedDeviceView(controller_);
system_tray_container_->AddChildView(managed_device_view_); add_layered_child(system_tray_container_, managed_device_view_);
} }
add_layered_child(system_tray_container_, system_info_view_);
system_tray_container_->SetFlexForView(page_indicator_view_);
detailed_view_container_->SetVisible(false); detailed_view_container_->SetVisible(false);
add_layered_child(this, detailed_view_container_); add_layered_child(this, detailed_view_container_);
...@@ -264,6 +265,10 @@ UnifiedSystemTrayView::~UnifiedSystemTrayView() = default; ...@@ -264,6 +265,10 @@ UnifiedSystemTrayView::~UnifiedSystemTrayView() = default;
void UnifiedSystemTrayView::SetMaxHeight(int max_height) { void UnifiedSystemTrayView::SetMaxHeight(int max_height) {
max_height_ = max_height; max_height_ = max_height;
int managed_device_view_height =
managed_device_view_ ? managed_device_view_->GetPreferredSize().height()
: 0;
// FeaturePodsContainer can adjust it's height by reducing the number of rows // FeaturePodsContainer can adjust it's height by reducing the number of rows
// it uses. It will calculate how many rows to use based on the max height // it uses. It will calculate how many rows to use based on the max height
// passed here. // passed here.
...@@ -271,7 +276,8 @@ void UnifiedSystemTrayView::SetMaxHeight(int max_height) { ...@@ -271,7 +276,8 @@ void UnifiedSystemTrayView::SetMaxHeight(int max_height) {
max_height - top_shortcuts_view_->GetPreferredSize().height() - max_height - top_shortcuts_view_->GetPreferredSize().height() -
page_indicator_view_->GetPreferredSize().height() - page_indicator_view_->GetPreferredSize().height() -
sliders_container_->GetExpandedHeight() - sliders_container_->GetExpandedHeight() -
system_info_view_->GetPreferredSize().height()); system_info_view_->GetPreferredSize().height() -
managed_device_view_height);
} }
void UnifiedSystemTrayView::AddFeaturePodButton(FeaturePodButton* button) { void UnifiedSystemTrayView::AddFeaturePodButton(FeaturePodButton* button) {
...@@ -343,6 +349,9 @@ void UnifiedSystemTrayView::SetExpandedAmount(double expanded_amount) { ...@@ -343,6 +349,9 @@ void UnifiedSystemTrayView::SetExpandedAmount(double expanded_amount) {
} }
int UnifiedSystemTrayView::GetExpandedSystemTrayHeight() const { int UnifiedSystemTrayView::GetExpandedSystemTrayHeight() const {
int managed_device_view_height =
managed_device_view_ ? managed_device_view_->GetPreferredSize().height()
: 0;
return (notification_hidden_view_->GetVisible() return (notification_hidden_view_->GetVisible()
? notification_hidden_view_->GetPreferredSize().height() ? notification_hidden_view_->GetPreferredSize().height()
: 0) + : 0) +
...@@ -350,16 +359,21 @@ int UnifiedSystemTrayView::GetExpandedSystemTrayHeight() const { ...@@ -350,16 +359,21 @@ int UnifiedSystemTrayView::GetExpandedSystemTrayHeight() const {
feature_pods_container_->GetExpandedHeight() + feature_pods_container_->GetExpandedHeight() +
page_indicator_view_->GetExpandedHeight() + page_indicator_view_->GetExpandedHeight() +
sliders_container_->GetExpandedHeight() + sliders_container_->GetExpandedHeight() +
system_info_view_->GetPreferredSize().height(); system_info_view_->GetPreferredSize().height() +
managed_device_view_height;
} }
int UnifiedSystemTrayView::GetCollapsedSystemTrayHeight() const { int UnifiedSystemTrayView::GetCollapsedSystemTrayHeight() const {
int managed_device_view_height =
managed_device_view_ ? managed_device_view_->GetPreferredSize().height()
: 0;
return (notification_hidden_view_->GetVisible() return (notification_hidden_view_->GetVisible()
? notification_hidden_view_->GetPreferredSize().height() ? notification_hidden_view_->GetPreferredSize().height()
: 0) + : 0) +
top_shortcuts_view_->GetPreferredSize().height() + top_shortcuts_view_->GetPreferredSize().height() +
feature_pods_container_->GetCollapsedHeight() + feature_pods_container_->GetCollapsedHeight() +
system_info_view_->GetPreferredSize().height(); system_info_view_->GetPreferredSize().height() +
managed_device_view_height;
} }
int UnifiedSystemTrayView::GetCurrentHeight() const { int UnifiedSystemTrayView::GetCurrentHeight() const {
......
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