easy_unlock_screenlock_state_handler.cc revision 6e8cce623b6e4fe0c9e4af605d675dd9d0338c38
1aed1cc94c105736a5e6010e9c84cc32910b865d6mikhal@webrtc.org// Copyright 2014 The Chromium Authors. All rights reserved.
2b0c97975894a5eebebf9d93147cdd941a3accb63fbarchard@google.com// Use of this source code is governed by a BSD-style license that can be
3aed1cc94c105736a5e6010e9c84cc32910b865d6mikhal@webrtc.org// found in the LICENSE file.
4aed1cc94c105736a5e6010e9c84cc32910b865d6mikhal@webrtc.org
5aed1cc94c105736a5e6010e9c84cc32910b865d6mikhal@webrtc.org#include "chrome/browser/signin/easy_unlock_screenlock_state_handler.h"
6aed1cc94c105736a5e6010e9c84cc32910b865d6mikhal@webrtc.org
7aed1cc94c105736a5e6010e9c84cc32910b865d6mikhal@webrtc.org#include "base/bind.h"
8aed1cc94c105736a5e6010e9c84cc32910b865d6mikhal@webrtc.org#include "base/prefs/pref_service.h"
9aed1cc94c105736a5e6010e9c84cc32910b865d6mikhal@webrtc.org#include "base/strings/string16.h"
10aed1cc94c105736a5e6010e9c84cc32910b865d6mikhal@webrtc.org#include "base/strings/utf_string_conversions.h"
11142f6c4ed5eaeec0176f255e64bac8d8c70b42e1fbarchard@google.com#include "chrome/browser/chromeos/chromeos_utils.h"
12aed1cc94c105736a5e6010e9c84cc32910b865d6mikhal@webrtc.org#include "chrome/common/pref_names.h"
13c82af4a59ce299da67084916317266a33c2868e1frkoenig@google.com#include "grit/generated_resources.h"
14c82af4a59ce299da67084916317266a33c2868e1frkoenig@google.com#include "ui/base/l10n/l10n_util.h"
15fe5ff7ed5451496281697bda9cb85084c532926cfbarchard@google.com
16fe5ff7ed5451496281697bda9cb85084c532926cfbarchard@google.comnamespace {
17aed1cc94c105736a5e6010e9c84cc32910b865d6mikhal@webrtc.org
18fe5ff7ed5451496281697bda9cb85084c532926cfbarchard@google.comsize_t kIconSize = 27u;
19aed1cc94c105736a5e6010e9c84cc32910b865d6mikhal@webrtc.orgsize_t kOpaqueIconOpacity = 50u;
202d11d43a6e21865b904705acce6535ae4c2d3caffbarchard@google.comsize_t kSpinnerResourceWidth = 1215u;
21d2f4413d29d15b94d971630ba555dd0cd8fcc8c2fbarchard@google.comsize_t kSpinnerIntervalMs = 50u;
222d11d43a6e21865b904705acce6535ae4c2d3caffbarchard@google.com
23714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.comstd::string GetIconURLForState(EasyUnlockScreenlockStateHandler::State state) {
24714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com  switch (state) {
25373cdbdc58d6e7b7e4653840677ef01468607e84fbarchard@google.com    case EasyUnlockScreenlockStateHandler::STATE_NO_BLUETOOTH:
26373cdbdc58d6e7b7e4653840677ef01468607e84fbarchard@google.com    case EasyUnlockScreenlockStateHandler::STATE_NO_PHONE:
27373cdbdc58d6e7b7e4653840677ef01468607e84fbarchard@google.com    case EasyUnlockScreenlockStateHandler::STATE_PHONE_NOT_AUTHENTICATED:
28373cdbdc58d6e7b7e4653840677ef01468607e84fbarchard@google.com    case EasyUnlockScreenlockStateHandler::STATE_PHONE_LOCKED:
29373cdbdc58d6e7b7e4653840677ef01468607e84fbarchard@google.com    case EasyUnlockScreenlockStateHandler::STATE_PHONE_NOT_NEARBY:
30373cdbdc58d6e7b7e4653840677ef01468607e84fbarchard@google.com    case EasyUnlockScreenlockStateHandler::STATE_PHONE_UNLOCKABLE:
31714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com      return "chrome://theme/IDR_EASY_UNLOCK_LOCKED";
32714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com    case EasyUnlockScreenlockStateHandler::STATE_BLUETOOTH_CONNECTING:
33714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com      return "chrome://theme/IDR_EASY_UNLOCK_SPINNER";
34714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com    case EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED:
35714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com      return "chrome://theme/IDR_EASY_UNLOCK_UNLOCKED";
36714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com    default:
37714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com      return "";
38373cdbdc58d6e7b7e4653840677ef01468607e84fbarchard@google.com  }
39b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com}
40b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com
41b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.combool UseOpaqueIcon(EasyUnlockScreenlockStateHandler::State state) {
42714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com  return state == EasyUnlockScreenlockStateHandler::STATE_NO_BLUETOOTH ||
43714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com         state == EasyUnlockScreenlockStateHandler::STATE_NO_PHONE ||
44b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com         state == EasyUnlockScreenlockStateHandler::STATE_PHONE_NOT_NEARBY ||
452430e04e0a262f8919f61cf1e64304c69ea94127fbarchard@google.com         state == EasyUnlockScreenlockStateHandler::STATE_PHONE_UNLOCKABLE;
46714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com}
47714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com
48714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.combool HasAnimation(EasyUnlockScreenlockStateHandler::State state) {
49b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com  return state == EasyUnlockScreenlockStateHandler::STATE_BLUETOOTH_CONNECTING;
50b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com}
51714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com
52714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.comsize_t GetTooltipResourceId(EasyUnlockScreenlockStateHandler::State state) {
53714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com  switch (state) {
54228bdc24e44264baf3402124aaa6d4d81c8896f5fbarchard@google.com    case EasyUnlockScreenlockStateHandler::STATE_NO_BLUETOOTH:
55714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com      return IDS_EASY_UNLOCK_SCREENLOCK_TOOLTIP_NO_BLUETOOTH;
56714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com    case EasyUnlockScreenlockStateHandler::STATE_NO_PHONE:
57714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com      return IDS_EASY_UNLOCK_SCREENLOCK_TOOLTIP_NO_PHONE;
58714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com    case EasyUnlockScreenlockStateHandler::STATE_PHONE_NOT_AUTHENTICATED:
59714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com      return IDS_EASY_UNLOCK_SCREENLOCK_TOOLTIP_PHONE_NOT_AUTHENTICATED;
60714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com    case EasyUnlockScreenlockStateHandler::STATE_PHONE_LOCKED:
61714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com      return IDS_EASY_UNLOCK_SCREENLOCK_TOOLTIP_PHONE_LOCKED;
62714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com    case EasyUnlockScreenlockStateHandler::STATE_PHONE_UNLOCKABLE:
63714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com      return IDS_EASY_UNLOCK_SCREENLOCK_TOOLTIP_PHONE_UNLOCKABLE;
64714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com    case EasyUnlockScreenlockStateHandler::STATE_PHONE_NOT_NEARBY:
65714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com      return IDS_EASY_UNLOCK_SCREENLOCK_TOOLTIP_PHONE_NOT_NEARBY;
66714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com    case EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED:
67714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com      // TODO(tbarzic): When hard lock is enabled change this to
68714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com      // IDS_EASY_UNLOCK_SCREENLOCK_TOOLTIP_HARDLOCK_INSTRUCTIONS.
69714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com      return 0;
70228bdc24e44264baf3402124aaa6d4d81c8896f5fbarchard@google.com    default:
71228bdc24e44264baf3402124aaa6d4d81c8896f5fbarchard@google.com      return 0;
72373cdbdc58d6e7b7e4653840677ef01468607e84fbarchard@google.com  }
73228bdc24e44264baf3402124aaa6d4d81c8896f5fbarchard@google.com}
74228bdc24e44264baf3402124aaa6d4d81c8896f5fbarchard@google.com
75228bdc24e44264baf3402124aaa6d4d81c8896f5fbarchard@google.com}  // namespace
76714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com
77714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com
78714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.comEasyUnlockScreenlockStateHandler::EasyUnlockScreenlockStateHandler(
79714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com    const std::string& user_email,
80714050a29dea9ab6aebb54acb8f79edf9b9f337dfbarchard@google.com    PrefService* pref_service,
81ba1f52692605bbf8fedb8a915275c71fa186d291fbarchard@google.com    ScreenlockBridge* screenlock_bridge)
82ba1f52692605bbf8fedb8a915275c71fa186d291fbarchard@google.com    : state_(STATE_INACTIVE),
839394ed99fcc9802a068ba4a44c36aed79ce87157fbarchard@google.com      user_email_(user_email),
849394ed99fcc9802a068ba4a44c36aed79ce87157fbarchard@google.com      pref_service_(pref_service),
859394ed99fcc9802a068ba4a44c36aed79ce87157fbarchard@google.com      screenlock_bridge_(screenlock_bridge) {
869394ed99fcc9802a068ba4a44c36aed79ce87157fbarchard@google.com  DCHECK(screenlock_bridge_);
87373cdbdc58d6e7b7e4653840677ef01468607e84fbarchard@google.com  screenlock_bridge_->AddObserver(this);
889394ed99fcc9802a068ba4a44c36aed79ce87157fbarchard@google.com}
899394ed99fcc9802a068ba4a44c36aed79ce87157fbarchard@google.com
909394ed99fcc9802a068ba4a44c36aed79ce87157fbarchard@google.comEasyUnlockScreenlockStateHandler::~EasyUnlockScreenlockStateHandler() {
91b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com  screenlock_bridge_->RemoveObserver(this);
92373cdbdc58d6e7b7e4653840677ef01468607e84fbarchard@google.com  // Make sure the screenlock state set by this gets cleared.
93b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com  ChangeState(STATE_INACTIVE);
94b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com}
95b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com
96b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.comvoid EasyUnlockScreenlockStateHandler::ChangeState(State new_state) {
97373cdbdc58d6e7b7e4653840677ef01468607e84fbarchard@google.com  if (state_ == new_state)
98b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com    return;
99b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com
100b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com  state_ = new_state;
101b8eabfea6487a4be3c1497a7ba7c9e2ab2f5f46dfbarchard@google.com
102b8eabfea6487a4be3c1497a7ba7c9e2ab2f5f46dfbarchard@google.com  // If lock screen is not active, just cache the current state.
103b8eabfea6487a4be3c1497a7ba7c9e2ab2f5f46dfbarchard@google.com  // The screenlock state will get refreshed in |ScreenDidLock|.
104b8eabfea6487a4be3c1497a7ba7c9e2ab2f5f46dfbarchard@google.com  if (!screenlock_bridge_->IsLocked())
105b8eabfea6487a4be3c1497a7ba7c9e2ab2f5f46dfbarchard@google.com    return;
106a2cc341b6c18dd40e67de88f194a466d75d8b1e0fbarchard@google.com
107a2cc341b6c18dd40e67de88f194a466d75d8b1e0fbarchard@google.com  UpdateScreenlockAuthType();
108a2cc341b6c18dd40e67de88f194a466d75d8b1e0fbarchard@google.com
109a2cc341b6c18dd40e67de88f194a466d75d8b1e0fbarchard@google.com  ScreenlockBridge::UserPodCustomIconOptions icon_options;
110a2cc341b6c18dd40e67de88f194a466d75d8b1e0fbarchard@google.com
111f1b6063f50ced6f1b5f9b735011b382a5c1c963ffbarchard@google.com  std::string icon_url = GetIconURLForState(state_);
112f1b6063f50ced6f1b5f9b735011b382a5c1c963ffbarchard@google.com  if (icon_url.empty()) {
113f1b6063f50ced6f1b5f9b735011b382a5c1c963ffbarchard@google.com    screenlock_bridge_->lock_handler()->HideUserPodCustomIcon(user_email_);
114f1b6063f50ced6f1b5f9b735011b382a5c1c963ffbarchard@google.com    return;
115f1b6063f50ced6f1b5f9b735011b382a5c1c963ffbarchard@google.com  }
116f1b6063f50ced6f1b5f9b735011b382a5c1c963ffbarchard@google.com  icon_options.SetIconAsResourceURL(icon_url);
117f1b6063f50ced6f1b5f9b735011b382a5c1c963ffbarchard@google.com
118f3fb7b692068862b1091c02b41ac48bfa9258d51fbarchard@google.com  UpdateTooltipOptions(&icon_options);
119f1b6063f50ced6f1b5f9b735011b382a5c1c963ffbarchard@google.com
120f1b6063f50ced6f1b5f9b735011b382a5c1c963ffbarchard@google.com  if (UseOpaqueIcon(state_))
121b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com    icon_options.SetOpacity(kOpaqueIconOpacity);
122e14b2abba48ba88dba26b40773e98714d295b1acfbarchard@google.com
123e5f3fd4cc870b9b22112b3b2f25af06e067c8b7dfbarchard@google.com  icon_options.SetSize(kIconSize, kIconSize);
124e5f3fd4cc870b9b22112b3b2f25af06e067c8b7dfbarchard@google.com
1255bf29b59db8f0efc294d969c4ad90910ff319324fbarchard@google.com  if (HasAnimation(state_))
126e5f3fd4cc870b9b22112b3b2f25af06e067c8b7dfbarchard@google.com    icon_options.SetAnimation(kSpinnerResourceWidth, kSpinnerIntervalMs);
127e5f3fd4cc870b9b22112b3b2f25af06e067c8b7dfbarchard@google.com
128e5f3fd4cc870b9b22112b3b2f25af06e067c8b7dfbarchard@google.com  screenlock_bridge_->lock_handler()->ShowUserPodCustomIcon(user_email_,
129e5f3fd4cc870b9b22112b3b2f25af06e067c8b7dfbarchard@google.com                                                            icon_options);
130e5f3fd4cc870b9b22112b3b2f25af06e067c8b7dfbarchard@google.com}
131e5f3fd4cc870b9b22112b3b2f25af06e067c8b7dfbarchard@google.com
132e5f3fd4cc870b9b22112b3b2f25af06e067c8b7dfbarchard@google.comvoid EasyUnlockScreenlockStateHandler::OnScreenDidLock() {
133e5f3fd4cc870b9b22112b3b2f25af06e067c8b7dfbarchard@google.com  State last_state = state_;
134e5f3fd4cc870b9b22112b3b2f25af06e067c8b7dfbarchard@google.com  // This should force updating screenlock state.
135e5f3fd4cc870b9b22112b3b2f25af06e067c8b7dfbarchard@google.com  state_ = STATE_INACTIVE;
136e5f3fd4cc870b9b22112b3b2f25af06e067c8b7dfbarchard@google.com  ChangeState(last_state);
137e5f3fd4cc870b9b22112b3b2f25af06e067c8b7dfbarchard@google.com}
138e5f3fd4cc870b9b22112b3b2f25af06e067c8b7dfbarchard@google.com
13918184fd19dba08d6567357e3913285a779e4b9f3fbarchard@google.comvoid EasyUnlockScreenlockStateHandler::OnScreenDidUnlock() {
140b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com}
141b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com
142b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.comvoid EasyUnlockScreenlockStateHandler::UpdateTooltipOptions(
143b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com    ScreenlockBridge::UserPodCustomIconOptions* icon_options) {
144b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com  bool show_tutorial = ShouldShowTutorial();
145b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com
146b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com  size_t resource_id = 0;
147b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com  base::string16 device_name;
148f1b6063f50ced6f1b5f9b735011b382a5c1c963ffbarchard@google.com  if (show_tutorial) {
149585a126140be298e60a4daa26140ead0e94eaaa1fbarchard@google.com    resource_id = IDS_EASY_UNLOCK_SCREENLOCK_TOOLTIP_TUTORIAL;
150b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com  } else {
151b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com    resource_id = GetTooltipResourceId(state_);
152e14b2abba48ba88dba26b40773e98714d295b1acfbarchard@google.com    if (state_ == STATE_AUTHENTICATED || state_ == STATE_PHONE_UNLOCKABLE)
153e5f3fd4cc870b9b22112b3b2f25af06e067c8b7dfbarchard@google.com      device_name = GetDeviceName();
15418184fd19dba08d6567357e3913285a779e4b9f3fbarchard@google.com  }
1555bf29b59db8f0efc294d969c4ad90910ff319324fbarchard@google.com
156e5f3fd4cc870b9b22112b3b2f25af06e067c8b7dfbarchard@google.com  if (!resource_id)
157e5f3fd4cc870b9b22112b3b2f25af06e067c8b7dfbarchard@google.com    return;
158e5f3fd4cc870b9b22112b3b2f25af06e067c8b7dfbarchard@google.com
159e5f3fd4cc870b9b22112b3b2f25af06e067c8b7dfbarchard@google.com  base::string16 tooltip;
16018184fd19dba08d6567357e3913285a779e4b9f3fbarchard@google.com  if (device_name.empty()) {
16118184fd19dba08d6567357e3913285a779e4b9f3fbarchard@google.com    tooltip = l10n_util::GetStringUTF16(resource_id);
16218184fd19dba08d6567357e3913285a779e4b9f3fbarchard@google.com  } else {
16318184fd19dba08d6567357e3913285a779e4b9f3fbarchard@google.com    tooltip = l10n_util::GetStringFUTF16(resource_id, device_name);
164b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com  }
165b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com
166b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com  if (tooltip.empty())
167b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com    return;
168b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com
169b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com  if (show_tutorial)
170b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com    MarkTutorialShown();
171585a126140be298e60a4daa26140ead0e94eaaa1fbarchard@google.com
172f1b6063f50ced6f1b5f9b735011b382a5c1c963ffbarchard@google.com  icon_options->SetTooltip(tooltip, show_tutorial /* autoshow tooltip */);
173b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com}
174b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com
175b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.combool EasyUnlockScreenlockStateHandler::ShouldShowTutorial() {
176e14b2abba48ba88dba26b40773e98714d295b1acfbarchard@google.com  if (state_ != STATE_AUTHENTICATED)
177e5f3fd4cc870b9b22112b3b2f25af06e067c8b7dfbarchard@google.com    return false;
17818184fd19dba08d6567357e3913285a779e4b9f3fbarchard@google.com  return pref_service_ &&
1795bf29b59db8f0efc294d969c4ad90910ff319324fbarchard@google.com         pref_service_->GetBoolean(prefs::kEasyUnlockShowTutorial);
180e5f3fd4cc870b9b22112b3b2f25af06e067c8b7dfbarchard@google.com}
181e5f3fd4cc870b9b22112b3b2f25af06e067c8b7dfbarchard@google.com
182e5f3fd4cc870b9b22112b3b2f25af06e067c8b7dfbarchard@google.comvoid EasyUnlockScreenlockStateHandler::MarkTutorialShown() {
183e5f3fd4cc870b9b22112b3b2f25af06e067c8b7dfbarchard@google.com  if (!pref_service_)
18418184fd19dba08d6567357e3913285a779e4b9f3fbarchard@google.com    return;
18518184fd19dba08d6567357e3913285a779e4b9f3fbarchard@google.com  pref_service_->SetBoolean(prefs::kEasyUnlockShowTutorial, false);
18618184fd19dba08d6567357e3913285a779e4b9f3fbarchard@google.com}
187b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com
188b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.combase::string16 EasyUnlockScreenlockStateHandler::GetDeviceName() {
189b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com#if defined(OS_CHROMEOS)
190b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com  return chromeos::GetChromeDeviceType();
191b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com#else
192b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com  // TODO(tbarzic): Figure out the name for non Chrome OS case.
193b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com  return base::ASCIIToUTF16("Chrome");
194b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com#endif
195f1b6063f50ced6f1b5f9b735011b382a5c1c963ffbarchard@google.com}
196b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.com
197b61497636a648c771ac55d184a80b17aca7414f5fbarchard@google.comvoid EasyUnlockScreenlockStateHandler::UpdateScreenlockAuthType() {
198b8eabfea6487a4be3c1497a7ba7c9e2ab2f5f46dfbarchard@google.com  if (state_ == STATE_AUTHENTICATED) {
199b8eabfea6487a4be3c1497a7ba7c9e2ab2f5f46dfbarchard@google.com    screenlock_bridge_->lock_handler()->SetAuthType(
200b8eabfea6487a4be3c1497a7ba7c9e2ab2f5f46dfbarchard@google.com        user_email_,
201b8eabfea6487a4be3c1497a7ba7c9e2ab2f5f46dfbarchard@google.com        ScreenlockBridge::LockHandler::USER_CLICK,
202b8eabfea6487a4be3c1497a7ba7c9e2ab2f5f46dfbarchard@google.com        l10n_util::GetStringUTF16(
203b8eabfea6487a4be3c1497a7ba7c9e2ab2f5f46dfbarchard@google.com            IDS_EASY_UNLOCK_SCREENLOCK_USER_POD_AUTH_VALUE));
204b8eabfea6487a4be3c1497a7ba7c9e2ab2f5f46dfbarchard@google.com  } else if (screenlock_bridge_->lock_handler()->GetAuthType(user_email_) !=
205b8eabfea6487a4be3c1497a7ba7c9e2ab2f5f46dfbarchard@google.com                 ScreenlockBridge::LockHandler::OFFLINE_PASSWORD) {
206b8eabfea6487a4be3c1497a7ba7c9e2ab2f5f46dfbarchard@google.com    screenlock_bridge_->lock_handler()->SetAuthType(
207b8eabfea6487a4be3c1497a7ba7c9e2ab2f5f46dfbarchard@google.com        user_email_,
208b8eabfea6487a4be3c1497a7ba7c9e2ab2f5f46dfbarchard@google.com        ScreenlockBridge::LockHandler::OFFLINE_PASSWORD,
209b8eabfea6487a4be3c1497a7ba7c9e2ab2f5f46dfbarchard@google.com        base::string16());
210b8eabfea6487a4be3c1497a7ba7c9e2ab2f5f46dfbarchard@google.com  }
211b8eabfea6487a4be3c1497a7ba7c9e2ab2f5f46dfbarchard@google.com}
212b8eabfea6487a4be3c1497a7ba7c9e2ab2f5f46dfbarchard@google.com