Chromium Code Reviews| Index: chrome/browser/resources/settings/people_page/lock_state_behavior.js |
| diff --git a/chrome/browser/resources/settings/people_page/lock_state_behavior.js b/chrome/browser/resources/settings/people_page/lock_state_behavior.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..e96c2af3453100799a6f718d6cd4e454ed97a4d4 |
| --- /dev/null |
| +++ b/chrome/browser/resources/settings/people_page/lock_state_behavior.js |
| @@ -0,0 +1,76 @@ |
| +// Copyright 2016 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. |
| + |
| +/** |
| + * @fileoverview |
| + * Contains utilities that help identify the current way that the lock screen |
| + * will be displayed. |
| + */ |
| + |
| +/** @enum {string} */ |
| +var LockScreenUnlockType = { |
| + VALUE_PENDING: 'value_pending', |
| + PASSWORD: 'password', |
| + PIN_PASSWORD: 'pin+password' |
| +}; |
| + |
| +/** @polymerBehavior */ |
| +var LockStateBehavior = { |
| + properties: { |
| + /** |
| + * The currently selected unlock type. |
| + * @type {!LockScreenUnlockType} |
| + */ |
| + selectedUnlockType: { |
| + type: String, |
| + notify: true, |
| + value: LockScreenUnlockType.VALUE_PENDING |
| + }, |
| + |
| + /** |
| + * True/false if there is a PIN set; undefined if the computation is still |
| + * pending. This is a separate value from selectedUnlockType because the UI |
| + * can change the selectedUnlockType before setting up a PIN. |
| + * @type {boolean|undefined} |
| + */ |
| + hasPin: { |
|
tommycli
2016/08/05 17:46:19
Maybe this is no longer needed if selecting the la
jdufault
2016/08/05 20:59:52
Right! But unfortunately that's not the desired be
|
| + type: Boolean, |
| + notify: true |
| + } |
| + }, |
| + |
| + /** @override */ |
| + attached: function() { |
| + this.boundOnActiveModesChanged_ = this.updateUnlockType_.bind(this); |
| + chrome.quickUnlockPrivate.onActiveModesChanged.addListener( |
| + this.boundOnActiveModesChanged_); |
| + |
| + this.updateUnlockType_(); |
| + }, |
| + |
| + /** @override */ |
| + detached: function() { |
| + chrome.quickUnlockPrivate.onActiveModesChanged.removeListener( |
| + this.boundOnActiveModesChanged_); |
| + }, |
| + |
| + /** |
| + * Updates the selected unlock type radio group. This function will get called |
| + * after preferences are initialized, after the quick unlock mode has been |
| + * changed, and after the lockscreen preference has changed. |
| + * |
| + * @private |
| + */ |
| + updateUnlockType_: function() { |
| + chrome.quickUnlockPrivate.getActiveModes(function(modes) { |
| + if (modes.includes(chrome.quickUnlockPrivate.QuickUnlockMode.PIN)) { |
| + this.hasPin = true; |
| + this.selectedUnlockType = LockScreenUnlockType.PIN_PASSWORD; |
| + } else { |
| + this.hasPin = false; |
| + this.selectedUnlockType = LockScreenUnlockType.PASSWORD; |
| + } |
| + }.bind(this)); |
| + }, |
| +}; |