123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- // Copyright 2022 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #include "ash/glanceables/glanceables_welcome_label.h"
- #include <string>
- #include "ash/public/cpp/session/session_types.h"
- #include "ash/session/session_controller_impl.h"
- #include "ash/shell.h"
- #include "ash/strings/grit/ash_strings.h"
- #include "base/check.h"
- #include "base/strings/utf_string_conversions.h"
- #include "third_party/skia/include/core/SkColor.h"
- #include "ui/base/l10n/l10n_util.h"
- #include "ui/base/metadata/metadata_impl_macros.h"
- #include "ui/gfx/font.h"
- #include "ui/gfx/font_list.h"
- #include "ui/views/controls/label.h"
- namespace ash {
- GlanceablesWelcomeLabel::GlanceablesWelcomeLabel() {
- SetAutoColorReadabilityEnabled(false);
- // TODO(crbug.com/1353488): Make font size customizable.
- SetFontList(gfx::FontList({"Google Sans"}, gfx::Font::FontStyle::NORMAL, 48,
- gfx::Font::Weight::BOLD));
- SetHorizontalAlignment(gfx::HorizontalAlignment::ALIGN_LEFT);
- SetMultiLine(false);
- // TODO(crbug.com/1353488): Change to dynamic greeting based on system time.
- SetText(l10n_util::GetStringFUTF16(IDS_GLANCEABLES_WELCOME_LABEL,
- GetUserGivenName()));
- }
- void GlanceablesWelcomeLabel::OnThemeChanged() {
- views::Label::OnThemeChanged();
- // TODO(crbug.com/1353488): Use color provider.
- SetEnabledColor(SK_ColorWHITE);
- }
- std::u16string GlanceablesWelcomeLabel::GetUserGivenName() const {
- DCHECK(Shell::Get());
- const auto* session_controller = Shell::Get()->session_controller();
- DCHECK(session_controller);
- const auto account_id = session_controller->GetActiveAccountId();
- if (account_id.empty()) {
- // Prevents failures in `GlanceablesViewTest` and
- // `GlanceablesControllerTest`.
- // TODO(crbug.com/1353119): Remove this after switching to `AshTestBase`.
- return u"";
- }
- const auto* user_session =
- session_controller->GetUserSessionByAccountId(account_id);
- DCHECK(user_session);
- return base::UTF8ToUTF16(user_session->user_info.given_name);
- }
- BEGIN_METADATA(GlanceablesWelcomeLabel, views::Label)
- END_METADATA
- } // namespace ash
|