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