Commit 3fac86d9 authored by Wenzhao Zang's avatar Wenzhao Zang Committed by Commit Bot

cros: Change virtual keyboard icon color in OOBE

This is a follow up for crbug.com/857221

Bug: 873594
Change-Id: I8a5ab4fd2762b48b0b1fdd3d2f9d499673658d6d
Reviewed-on: https://chromium-review.googlesource.com/1175145Reviewed-by: default avatarYoshiki Iguchi <yoshiki@chromium.org>
Commit-Queue: Wenzhao (Colin) Zang <wzang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#583177}
parent 0f15b4f5
......@@ -8,12 +8,14 @@
#include "ash/keyboard/keyboard_ui.h"
#include "ash/resources/vector_icons/vector_icons.h"
#include "ash/session/session_controller.h"
#include "ash/shelf/shelf.h"
#include "ash/shelf/shelf_constants.h"
#include "ash/shell.h"
#include "ash/strings/grit/ash_strings.h"
#include "ash/system/tray/tray_constants.h"
#include "ash/system/tray/tray_container.h"
#include "ash/system/tray/tray_utils.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/display/display.h"
#include "ui/display/screen.h"
......@@ -29,13 +31,7 @@ VirtualKeyboardTray::VirtualKeyboardTray(Shelf* shelf)
: TrayBackgroundView(shelf), icon_(new views::ImageView), shelf_(shelf) {
SetInkDropMode(InkDropMode::ON);
gfx::ImageSkia image =
gfx::CreateVectorIcon(kShelfKeyboardIcon, kShelfIconColor);
icon_->SetImage(image);
const int vertical_padding = (kTrayItemSize - image.height()) / 2;
const int horizontal_padding = (kTrayItemSize - image.width()) / 2;
icon_->SetBorder(views::CreateEmptyBorder(
gfx::Insets(vertical_padding, horizontal_padding)));
UpdateIcon();
tray_container()->AddChildView(icon_);
// The Shell may not exist in some unit tests.
......@@ -103,6 +99,11 @@ void VirtualKeyboardTray::OnKeyboardControllerCreated() {
ObserveKeyboardController();
}
void VirtualKeyboardTray::OnSessionStateChanged(
session_manager::SessionState state) {
UpdateIcon();
}
void VirtualKeyboardTray::ObserveKeyboardController() {
auto* keyboard_controller = keyboard::KeyboardController::Get();
if (keyboard_controller->enabled() && !keyboard_controller->HasObserver(this))
......@@ -115,4 +116,15 @@ void VirtualKeyboardTray::UnobserveKeyboardController() {
keyboard_controller->RemoveObserver(this);
}
void VirtualKeyboardTray::UpdateIcon() {
gfx::ImageSkia image = gfx::CreateVectorIcon(
kShelfKeyboardIcon,
TrayIconColor(Shell::Get()->session_controller()->GetSessionState()));
icon_->SetImage(image);
const int vertical_padding = (kTrayItemSize - image.height()) / 2;
const int horizontal_padding = (kTrayItemSize - image.width()) / 2;
icon_->SetBorder(views::CreateEmptyBorder(
gfx::Insets(vertical_padding, horizontal_padding)));
}
} // namespace ash
......@@ -6,6 +6,7 @@
#define ASH_SYSTEM_VIRTUAL_KEYBOARD_VIRTUAL_KEYBOARD_TRAY_H_
#include "ash/keyboard/keyboard_ui_observer.h"
#include "ash/session/session_observer.h"
#include "ash/shell_observer.h"
#include "ash/system/tray/tray_background_view.h"
#include "base/macros.h"
......@@ -21,7 +22,8 @@ namespace ash {
class VirtualKeyboardTray : public TrayBackgroundView,
public KeyboardUIObserver,
public keyboard::KeyboardControllerObserver,
public ShellObserver {
public ShellObserver,
public SessionObserver {
public:
explicit VirtualKeyboardTray(Shelf* shelf);
~VirtualKeyboardTray() override;
......@@ -41,15 +43,23 @@ class VirtualKeyboardTray : public TrayBackgroundView,
// ShellObserver:
void OnKeyboardControllerCreated() override;
// SessionObserver:
void OnSessionStateChanged(session_manager::SessionState state) override;
private:
void ObserveKeyboardController();
void UnobserveKeyboardController();
// Updates the icon UI.
void UpdateIcon();
// Weak pointer, will be parented by TrayContainer for its lifetime.
views::ImageView* icon_;
Shelf* shelf_;
ScopedSessionObserver session_observer_{this};
DISALLOW_COPY_AND_ASSIGN(VirtualKeyboardTray);
};
......
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