Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(675)

Unified Diff: chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc

Issue 2931063004: Extract colors from wallpaper and dynamically update login screen overlay (Closed)
Patch Set: Address comments Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
diff --git a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
index 168c632f511766e5a7433c295925a78d8a9b1ad1..4f2f5a8eb135caf7650c00831d39300915c1f4d1 100644
--- a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
+++ b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
@@ -11,6 +11,7 @@
#include "ash/public/interfaces/constants.mojom.h"
#include "ash/public/interfaces/tray_action.mojom.h"
+#include "ash/shelf/shelf_constants.h"
#include "ash/shell.h"
#include "ash/system/devicetype_utils.h"
#include "ash/wm/lock_state_controller.h"
@@ -51,7 +52,6 @@
#include "chrome/browser/chromeos/login/ui/login_feedback.h"
#include "chrome/browser/chromeos/login/ui/webui_login_display.h"
#include "chrome/browser/chromeos/login/users/multi_profile_user_controller.h"
-#include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h"
#include "chrome/browser/chromeos/login/wizard_controller.h"
#include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
#include "chrome/browser/chromeos/policy/device_local_account.h"
@@ -101,6 +101,7 @@
#include "ui/base/ime/chromeos/input_method_manager.h"
#include "ui/base/ime/chromeos/input_method_util.h"
#include "ui/base/webui/web_ui_util.h"
+#include "ui/gfx/color_utils.h"
namespace {
@@ -352,6 +353,7 @@ SigninScreenHandler::SigninScreenHandler(
lock_screen_apps::StateController::IsEnabled()) {
lock_screen_apps_observer_.Add(lock_screen_apps::StateController::Get());
}
+ WallpaperManager::Get()->AddObserver(this);
}
SigninScreenHandler::~SigninScreenHandler() {
@@ -371,6 +373,7 @@ SigninScreenHandler::~SigninScreenHandler() {
network_state_informer_->RemoveObserver(this);
proximity_auth::ScreenlockBridge::Get()->SetLockHandler(nullptr);
proximity_auth::ScreenlockBridge::Get()->SetFocusedUser(EmptyAccountId());
+ WallpaperManager::Get()->RemoveObserver(this);
}
// static
@@ -977,6 +980,28 @@ void SigninScreenHandler::ReloadGaia(bool force_reload) {
gaia_screen_handler_->ReloadGaia(force_reload);
}
+void SigninScreenHandler::SetSigninScreenColors(const SkColor& dm_color) {
jdufault 2017/06/12 21:37:28 Just pass a SkColor dm_color parameter and mutate
Wenzhao (Colin) Zang 2017/06/12 23:40:35 Done. Originally I wanted to prevent mistakenly ch
+ // The dark muted color should have 100% opacity.
+ SkColor dm_sk_color = dm_color;
jdufault 2017/06/12 21:37:29 avoid non-obvious acronyms (dm). It makes the code
Wenzhao (Colin) Zang 2017/06/12 23:40:34 Done.
+ dm_sk_color = SkColorSetA(dm_sk_color, 0xFF);
jdufault 2017/06/12 21:37:29 FYI: naming here is confusing; what is the differe
Wenzhao (Colin) Zang 2017/06/12 23:40:35 Done.
+ SkColor base_sk_color = color_utils::GetResultingPaintColor(
+ SkColorSetA(ash::kShelfDefaultBaseColor,
+ ash::kShelfTranslucentColorDarkenAlpha),
+ dm_sk_color);
+ SkColor background_sk_color =
jdufault 2017/06/12 21:37:29 background_sk_color -> background_color
Wenzhao (Colin) Zang 2017/06/12 23:40:34 Done.
+ SkColorSetA(base_sk_color, ash::kShelfTranslucentAlpha);
+ // The alpha value for the signin screen background. This constant will be
+ // moved to a separate file when views-based signin screen is being
jdufault 2017/06/12 21:37:29 Add TODO and file a bug.
Wenzhao (Colin) Zang 2017/06/12 23:40:34 Done.
+ // developed.
+ constexpr int kLoginTranslucentAlpha = 76;
jdufault 2017/06/12 21:37:29 move to anonymous namespace
Wenzhao (Colin) Zang 2017/06/12 23:40:34 Done.
+ SkColor scroll_sk_color = SkColorSetA(base_sk_color, kLoginTranslucentAlpha);
jdufault 2017/06/12 21:37:29 scroll_sk_color -> scroll_color
Wenzhao (Colin) Zang 2017/06/12 23:40:35 Done.
+ // Transform SkColor values to rgba strings.
jdufault 2017/06/12 21:37:28 Remove comment, it is immediately obvious.
Wenzhao (Colin) Zang 2017/06/12 23:40:34 Done.
+ CallJS("login.AccountPickerScreen.setOverlayColors",
+ color_utils::SkColorToRgbaString(dm_sk_color),
+ color_utils::SkColorToRgbaString(scroll_sk_color),
+ color_utils::SkColorToRgbaString(background_sk_color));
+}
+
void SigninScreenHandler::Initialize() {
// Preload PIN keyboard if any of the users can authenticate via PIN.
if (user_manager::UserManager::IsInitialized()) {
@@ -1017,6 +1042,14 @@ void SigninScreenHandler::OnCurrentScreenChanged(OobeScreen current_screen,
}
}
+void SigninScreenHandler::OnColorCalculationComplete() {
+ SkColor dm_color = WallpaperManager::Get()->prominent_color();
+ SetSigninScreenColors(dm_color);
+}
+
+void SigninScreenHandler::OnWallpaperAnimationFinished(
+ const AccountId& account_id) {}
+
void SigninScreenHandler::ClearAndEnablePassword() {
core_oobe_view_->ResetSignInUI(false);
}

Powered by Google App Engine
This is Rietveld 408576698